Lingo (programming language)
From Seo Wiki - Search Engine Optimization and Programming Languages
The name Lingo has been used by several unrelated programming languages. Its most common version is a scripting language developed by John H. Thompson for use in Macromedia Director. HyperTalk is likely to have been one of the inspirations for Lingo.
When Lingo was created, a verbose syntax was designed to mimic spoken language, so it would be easy for beginners to get started. You could write whole HyperTalk-like sentences like:
if sprite 5 is visible then go to the frame
Note that in "go to" statements the "to" is optional. Also note that unlike other programming languages, "go" statements reference frames in Director's Score, not particular lines of code.
The equivalent in new scripting style would be:
if sprite(5).visible then _movie.go(_movie.frame)
if sprite(5).visible then go the frame
Lingo is embedded into Adobe Director. Lingo is an object-oriented programming (OOP) language.
There are 3 types of scripts in Lingo:
- behavior scripts are attached to a sprite or inserted into a frame. Sprite behaviors are often used to give control 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 anytime, 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.
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, we have a kind of multiple inheritance, as one sprite may have several behaviors.
A very powerful part of the language is Imaging Lingo. It was introduced when Director version 8.0 arrived. It gives the user the power of image manipulation with simple commands. There are some similarities to functions of image applications (like Photoshop), that make it easy to create visual effects. Since then imaging has also been added to Adobe Flash's ActionScript language with the Flash BitmapData object. As this included more sophisticated commands, Director was also updated to allow conversion between the BitmapData object and its own Image objects.
In Director 8.5, a full 3D engine was included for the first time. Lingo was updated substantially to support the new 3D objects and now includes a well-featured (if by now slightly out of date) set of 3D commands. An Xtra was also created to enable use of the Havok 3D Physics engine. Director 11 introduced a new physics Xtra using the Ageia physics engine.
Other languages called Lingo
- 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 was developed for the Rekursiv processor developed by Linn Smart Computing in Scotland, UK. This language was called Lingo and is significant because the manufacturers successfully obtained a trade mark 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.
These other languages are perhaps not as well known as the Macromedia language. However, a legal anomaly remains in that the legal trademark of the word 'Lingo' in the UK is not held by Macromedia, but by Linn.
- Animation Math in Lingo - Tutorials for beginners and experts.
- Dean's Director Tutorials - Tutorials ranging from the basics of Director to advanced programming with Lingo.
- Directorforum - Director User Group
- Director Online - Articles and forums on various Director topics.
- DirectorWeb - One of the oldest Director resource sites. Exists in archive mode now.
- Lingoworkshop - Multiple demos with source code available.
- MediaMacros - Hundreds of free scripts, opens source games, and a database of Xtras (Plugins).
- Direct-L - Biggest Lingo mailing list