HOME

TheInfoList



OR:

Lingo is a verbose
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
(OO)
scripting language A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled. A scripting ...
developed by John H. Thompson for use in
Adobe Director Adobe Director (formerly Macromedia Director, MacroMind Director, and MacroMind VideoWorks) was a multimedia application authoring platform created by Macromedia and managed by Adobe Systems until its discontinuation. Director was the primary edi ...
(formerly Macromedia Director). Lingo is used to develop desktop
application software Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
,
interactive kiosk An interactive kiosk is a computer terminal featuring specialized hardware and software that provides access to information and applications for communication, commerce, entertainment, or education. By 2010, the largest bill pay kiosk network ...
s,
CD-ROM A CD-ROM (, compact disc read-only memory) is a type of read-only memory consisting of a pre-pressed optical compact disc that contains data. Computers can read—but not write or erase—CD-ROMs. Some CDs, called enhanced CDs, hold both comput ...
s and
Adobe Shockwave Adobe Shockwave (formerly Macromedia Shockwave and MacroMind Shockwave) is a discontinued multimedia platform for building interactive multimedia applications and video games. Developers originate content using Adobe Director and publish it on ...
content. Lingo is the primary programming language on the Adobe Shockwave platform, which dominated the interactive multimedia product market during the 1990s. Various
graphic adventure game An adventure game is a video game genre in which the player assumes the role of a protagonist in an interactive story driven by exploration and/or Puzzle video game, puzzle-solving. The Video game genres, genre's focus on story allows it to draw ...
s were developed with Lingo during the 1990s, including
The Journeyman Project ''The Journeyman Project'' is a series of award-winning first-person science fiction adventure games, created by Presto Studios and released by various publishers, including Bandai, Sanctuary Woods, and Red Orb Entertainment. Plot The central ...
,
Total Distortion ''Total Distortion'' is a 1995 full motion video adventure game for Mac and Windows, developed by Pop Rocket. Gameplay The gameplay has the player as a music video entrepreneur in the "Distortion Dimension", a place where they fight "Guitar ...
, Mia's Language Adventure, Mia's Science Adventure, and the
Didi & Ditto Didi & Ditto is an edutainment software series created in 2003 by Kutoka Interactive. The series consists in three grade-based titles for preschool (ages 2 to 4), kindergarten (ages 4 to 6) and first grade (ages 5 to 7). Gameplay After the play ...
series. Hundreds of free online video games were developed using Lingo, and published on websites such as
Miniclip Miniclip SA is a mobile game publisher and former browser game website that launched in 2001. It was started by Robert Small and Tihan Presbie with a budget of £40,000. In 2008, the company was valued at over £275 million. In 2009, Miniclip ...
and Shockwave.com. Lingo can be used to build user interfaces, to manipulate
raster graphics upright=1, The Smiley, smiley face in the top left corner is a raster image. When enlarged, individual pixels appear as squares. Enlarging further, each pixel can be analyzed, with their colors constructed through combination of the values for ...
,
vector graphics Vector graphics is a form of computer graphics in which visual images are created directly from geometric shapes defined on a Cartesian plane, such as points, lines, curves and polygons. The associated mechanisms may include vector display a ...
and
3D computer graphics 3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for th ...
, and other data processing tasks. Lingo supports specialized syntax for
image processing An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensiona ...
and 3D object manipulation.Macromedia Director 8.5 Shockwave Studio for 3D: Training from the Source
Macromedia Press, 2002
3D meshes can also be created on the fly using Lingo.


History

Lingo was invented by John H. Thompson at
MacroMind 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 graphic ...
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 An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
(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 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 ...
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. However, 10% of the users were game developers 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 ''The Journeyman Project'' is a series of award-winning first-person science fiction adventure games, created by Presto Studios and released by various publishers, including Bandai, Sanctuary Woods, and Red Orb Entertainment. Plot The central ...
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 Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pr ...
(OOP) language, and supports
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan Ka ...
-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 HyperTalk is a discontinued high-level, procedural programming language created in 1987 by Dan Winkler and used in conjunction with Apple Computer's HyperCard hypermedia program by Bill Atkinson. Because the main target audience of HyperTalk ...
-like sentences such as: if sprite 5 is visible then go to the frame 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 JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
or
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
. The equivalent in new scripting style would be: if sprite(5).visible then _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: if sprite(5).visible then go the frame


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. *''Cast'' scripts work only with their member, not all events can be used with them. *''Behavior'' scripts are attached to a sprite or inserted into a frame. Sprite behaviors are often used to give control of the sprite's properties and movement. Frame behaviors can be used to create a pause or delay within a certain frame in the score. Behaviors make it easy to program in an object-oriented way, as you can directly see the relationship between the programming and the item they are attached to. They can also control or interact with other sprites, making them a true object. *''Movie'' scripts are not attached to sprites nor can they be instantiated as Objects. They are available throughout the program (movie) and are especially useful for holding global handlers and initializing global variables at the start or end of the movie. *''Parent'' scripts are used to ''birth'' (create instances of) an object into a variable using the ''new'' command. These objects can control sprites and other media remotely, without being attached to any one sprite, may be used to control data or other non-displayed items, and are useful for recursion routines such as pathfinding. A Parent script can be used to create or destroy an object at any time, freeing them from the confines of the score that a Behavior is limited to. 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 Inheritance is the practice of receiving private property, Title (property), titles, debts, entitlements, Privilege (law), privileges, rights, and Law of obligations, obligations upon the death of an individual. The rules of inheritance differ ...
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 Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit features from more than one parent object or parent class. It is distinct from single inheritance, where an object or ...
, 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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
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 Adobe Photoshop is a raster graphics editor developed and published by Adobe Inc. for Windows and macOS. It was originally created in 1988 by Thomas and John Knoll. Since then, the software has become the industry standard not only in raster ...
), that make it easy to create dynamic, code-based visual effects. Image manipulation was also added into
ActionScript ActionScript is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (meaning i ...
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 Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct", ...
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 PhysX is an open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite. Initially, video games supporting PhysX were meant to be accelerated by PhysX PPU (expansion cards designed by Ag ...
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''. * A language called Lingo was released for software development under Windows. This version was designed as a compilable high level programming language. * A programming language based on
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan Ka ...
was developed for the
Rekursiv Rekursiv was a computer processor designed by David M. Harland in the mid-1980s at a division of hi-fi manufacturer Linn Products. It was one of the few computer architectures intended to implement object-oriented concepts directly in hardware, a f ...
processor developed by Linn Smart Computing in
Scotland Scotland (, ) is a country that is part of the United Kingdom. Covering the northern third of the island of Great Britain, mainland Scotland has a border with England to the southeast and is otherwise surrounded by the Atlantic Ocean to the ...
, UK. This language was named Lingo and is significant because its makers successfully obtained a trademark in the UK. * LINGO is also a programming language for solving linear, nonlinear and integer optimization problems, first developed in 1988 by LINDO Systems Inc. This language is still in production.


References


External links

*, at Adobe.com, Director Support Center {{Authority control Scripting languages