Lingo (programming language)

Last updated

Lingo is a verbose object-oriented (OO) scripting language developed by John H. Thompson for use in Adobe Director (formerly Macromedia Director). Lingo is used to develop desktop application software, interactive kiosks, CD-ROMs and Adobe Shockwave content. [1] [2]

Contents

Lingo is the primary programming language on the Adobe Shockwave platform, which dominated the interactive multimedia product market during the 1990s. [3] Various graphic adventure games were developed with Lingo during the 1990s, including The Journeyman Project, Total Distortion, Mia's Language Adventure, Mia's Science Adventure, and the Didi & Ditto series. Hundreds of free online video games were developed using Lingo, and published on websites such as Miniclip and Shockwave.com.

Lingo can be used to build user interfaces, to manipulate raster graphics, vector graphics and 3D computer graphics, and other data processing tasks. [4] [5] Lingo supports specialized syntax for image processing and 3D object manipulation. [6] 3D meshes can also be created on the fly using Lingo. [6]

History

Lingo was invented by John H. Thompson at MacroMind in 1989, and first released with Director 2.2. Jeff Tanner developed and tested Lingo for Director 2.2 and 3.0, created custom XObjects for various media device producers, language extension examples using XFactory including the XFactory application programming interface (API), and wrote the initial tutorials on how to use Lingo. Dave Shields tested and documented Object-based Lingo for Director 3.13 and 4.0. He ran build scripts to create weekly releases for testing, originated the Macromedia KnowledgeBase, created examples of how to write Lingo XTRA plug-ins in C++, and assembled the Golden Master disks of Macromedia Director that were shipped to the duplicator.

Lingo was quickly adopted by burgeoning multimedia community during the 1990s and the already popular Director product. Initially, about 90% of the users only used 10% of Lingo's features; primarily go to the frame by multimedia authors of tutorials and presentations.[ citation needed ] However, 10% of the users were game developers [ citation needed ] who took a wider interest in the other 90% of its abilities, including their own function extensions by creating their own XFactories/XObjects. The Journeyman Project is a prominent example of this.

Features

Lingo is embedded into Adobe Director, and can be added as scripts on objects or on the timeline. Lingo is an object-oriented programming (OOP) language, and supports Smalltalk-like verbose syntax, OO dot syntax, and inheritance.

Verbose syntax

When Lingo was created, a verbose syntax was designed to mimic spoken language, so it would be easy for new users. Users could write HyperTalk-like sentences such as:

ifthevisibilityofsprite5thengototheframe

In go to statements, the "to" is optional, and unlike other programming languages, go statements reference frames in Director's Score, not specific code lines.

Lingo was also initially very robust by providing object generation through a notion called factory, which led to the language's extensibility through External Factories (XFactories) or XObjects. For Director 3.13 and later versions, extensibility occurred via a different type of plug-in called an XTRA, based upon the Microsoft Component Object Model (COM).

Dot syntax

Although it is still possible to use the verbose syntax, the current version of the language fully supports OO dot syntax, so that the code looks more like standard programming languages such as JavaScript or C++.

The equivalent in new scripting style would be:

ifsprite(5).visiblethen_movie.go(_movie.frame)

This format uses elements of the Director Object Model, introduced in Director MX 2004. The syntax in prior versions would be like:

ifsprite(5).visiblethengotheframe

Scripting

There are 4 types of Lingo scripts in Director, each with a specific purpose. Each type of script may be added to certain types of compatible objects.

Behavior and parent scripts encourage good object-oriented programming. Movie scripts are not as OOP-oriented. However, they can still be used to make black-box handlers, where other objects can input raw data and receive answers back, without knowing the inner workings of the box. Using the strengths and ease-of-use of Director's programming methodology, with the advantages of OOP makes for a powerful and fast programming environment.

Inheritance

Lingo supports object inheritance by a slightly idiosyncratic system: a script can have an ancestor property which references another object (usually also a script, although other objects such as cast members can also be ancestors). Properties and methods of the ancestor are inherited by the parent. Behavior scripts are also a kind of ancestor of the sprites to which they are attached, since properties and methods of the behavior can be accessed by reference to the sprite itself. In this case, it is a kind of multiple inheritance, as one sprite may have several behaviors.

Extensibility

XObjects

Lingo 3.0 was also extensible through External Factories (XFactories) or XObjects (later replaced by Lingo Xtras), which provided programmatic extensions to Director. For example, controlling external media devices such as CD-ROM and Video tape players through Macintosh SerialPort. XObject API was openly available to developers and media device producers, which added to the popularity and versatility of Lingo. Macromind was very active in positioning the XObject API as standard for external media devices to collaborate through Lingo; and its interest as a standard achieved a lot of involvement from prominent and burgeoning media product companies through an ad hoc group called the Multimedia Association.

Xtras

Starting with Director version 4.0, Lingo was extensible through a new improved class of external plugin called Xtras. Xtras were developed in C++ using the Microsoft Component Object Model (COM). The standardization with COM helped attract developers to creating a market for such plug-ins.

Imaging Lingo

Imaging Lingo was introduced with Director 8.0, and allowed developers to write high-performance image manipulation commands using a simple syntax. There are some similarities to functions of image applications (like Photoshop), that make it easy to create dynamic, code-based visual effects. Image manipulation was also added into ActionScript 3.0 with the BitmapData class. As this included more sophisticated commands, Director was also updated to allow conversion between the BitmapData object and its own Image objects.

3D

Director 8.5 introduced a DirectX 3D engine that could be scripted with Lingo. Lingo was updated substantially to support the new 3D objects and now includes a full-featured set of 3D commands. An Xtra was also created to enable use of the Havok 3D Physics engine, and later the AGEIA PhysX engine, in Director 11.

Other languages

These other languages are perhaps not as well known as the Macromedia language. However, a legal anomaly remains in the UK that the trademark of the word 'Lingo' is held by Linn Smart Computing.

Related Research Articles

<span class="mw-page-title-main">Adobe Flash</span> Deprecated multimedia platform used to add animation and interactivity to websites

Adobe Flash is, except in China, a discontinued multimedia software platform used for production of animations, rich internet applications, desktop applications, mobile apps, mobile games, and embedded web browser video players.

<span class="mw-page-title-main">Macromedia</span> American software company

Macromedia, Inc., was an American graphics, multimedia, and web development software company (1992–2005) headquartered in San Francisco, California, that made products such as Flash and Dreamweaver. It was purchased by its rival Adobe Systems on December 3, 2005.

<span class="mw-page-title-main">Adobe GoLive</span> WYSIWYG HTML editor and web site management application

Adobe GoLive was a WYSIWYG HTML editor and web site management application from Adobe Systems. It replaced Adobe PageMill as Adobe's primary HTML editor and was itself discontinued in favor of Dreamweaver. The last version of GoLive that Adobe released was GoLive 9.

<span class="mw-page-title-main">Adobe Authorware</span>

Adobe Authorware was an elearning authoring tool with its own interpreted, flowchart-based, graphical programming language. Authorware was used for creating interactive elearning programs that could integrate a range of multimedia content, particularly electronic educational technology applications. The flowchart model differentiated Authorware from other authoring tools, such as Adobe Flash and Adobe Director, which rely on a visual stage, time-line and script structure.

<span class="mw-page-title-main">Adobe Dreamweaver</span> Proprietary web development software

Adobe Dreamweaver is a proprietary web development tool from Adobe Inc. It was created by Macromedia in 1997 and developed by them until Macromedia was acquired by Adobe Systems in 2005.

<span class="mw-page-title-main">Adobe ColdFusion</span> Rapid Web app development platform

Adobe ColdFusion is a commercial rapid web-application development computing platform created by J. J. Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database. By version 2 (1996) it had become a full platform that included an IDE in addition to a full scripting language.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

<span class="mw-page-title-main">ActionScript</span> Object-oriented programming language created for the Flash multimedia platform

ActionScript is an object-oriented programming language originally developed by Macromedia Inc.. It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript, though it originally arose as a sibling, both being influenced by HyperTalk. ActionScript code is usually converted to byte-code format by a compiler.

SWF is a defunct Adobe Flash file format that was used for multimedia, vector graphics and ActionScript.

MXML is an XML-based user interface markup language first introduced by Macromedia in March 2004. Application developers use MXML in combination with ActionScript to develop rich web applications, with products such as Apache Flex.

<span class="mw-page-title-main">Adobe Shockwave</span> Multimedia platform

Adobe Shockwave is a discontinued multimedia platform for building interactive multimedia applications and video games. Developers originate content using Adobe Director and publish it on the Internet. Such content could be viewed in a web browser on any computer with the Shockwave Player plug-in installed. MacroMind originated the technology; Macromedia acquired MacroMind and developed it further, releasing Shockwave Player in 1995. Adobe then acquired Shockwave with Macromedia in 2005. Shockwave supports raster graphics, basic vector graphics, 3D graphics, audio, and an embedded scripting language called Lingo.

ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the Java virtual machine (JVM), the .NET framework, and Google App Engine. Several commercial and free and open-source software implementations of CFML engines are available, including Adobe ColdFusion, Lucee, New Atlanta BlueDragon, Railo, Open BlueDragon, and other CFML server engines.

<span class="mw-page-title-main">Kaleida Labs</span> Defunct American software company (1991–1996)

Kaleida Labs formed in 1991 to produce the multimedia cross-platform Kaleida Media Player and the object oriented scripting language ScriptX that was used to program its behavior. The system was aimed at the production of interactive CD ROM titles, an area of major effort in the early 1990s. When the system was delivered in 1994, it had relatively high system requirements and memory footprint, and lacked a native PowerPC version on the Mac platform. Around the same time, rapid changes in the market, especially the expansion of the World Wide Web and the Java programming language, pushed the interactive CD market into a niche role. The Kaleida platform failed to gain significant traction and the company was closed in 1996.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

MacroMind was an Apple Macintosh software company founded in Chicago in 1984 by Marc Canter, Jamie Fenton and Mark Stephen Pierce. The company's first product was SoundVision, a combined music and graphics editor. Before the release, the graphics editor was removed, and SoundVision became MusicWorks and the animation creativiy tool VideoWorks. Along with other early programs, MusicWorks and VideoWorks were originally published and distributed by Hayden Software.

<span class="mw-page-title-main">Adobe Director</span> Deprecated multimedia application authoring platform

Adobe Director was a multimedia application authoring platform created by Macromedia and managed by Adobe Systems until its discontinuation.

<span class="mw-page-title-main">Adobe FreeHand</span> Discontinued graphics software

Adobe FreeHand is a discontinued computer application for creating two-dimensional vector graphics oriented primarily to professional illustration, desktop publishing and content creation for the Web. FreeHand was similar in scope, intended market, and functionality to Adobe Illustrator, CorelDRAW and Xara Designer Pro. Because of FreeHand's dedicated page layout and text control features, it also compares to Adobe InDesign and QuarkXPress. Professions using FreeHand include graphic design, illustration, cartography, fashion and textile design, product design, architects, scientific research, and multimedia production.

<span class="mw-page-title-main">Object-oriented programming</span> Programming paradigm based on the concept of objects

Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields, and code in the form of procedures. In OOP, computer programs are designed by making them out of objects that interact with one another.

<span class="mw-page-title-main">Adobe Shockwave Player</span>

Adobe Shockwave Player is a discontinued freeware software plug-in for viewing multimedia and video games created on the Adobe Shockwave platform in web pages. Content was developed with Adobe Director and published on the Internet. Such content could be viewed in a web browser on any computer with the Shockwave Player plug-in installed. It was first developed by Macromedia and released in 1995; it was later acquired by Adobe Systems in 2005.

References

  1. Macromedia Shockwave for Director User's Guide, Volume 1, New Riders Pub., 01-Jan-1996
  2. Macromedia Shockwave for Director, Volume 1, Hayden Books, 1996
  3. Kelly Hart; Mitch Geller (2008). New Perspectives on Dreamweaver CS3, Comprehensive. Cengage Learning. p. 429. ISBN   1-4239-2531-9.
  4. Macromedia Director 8: Creating Powerful Multimedia, Prentice Hall, 2001
  5. Inside Macromedia Director 6 with Lingo, New Riders Pub., 01-Jan-1997
  6. 1 2 Macromedia Director 8.5 Shockwave Studio for 3D: Training from the Source, Macromedia Press, 2002
  7. "Rekursiv Project - Lingo Language". June 7, 2007. Archived from the original on 7 June 2007.