Lingo es un lenguaje de programación orientado a objetos (OO) detallado desarrollado por John H. Thompson para su uso en Adobe Director (anteriormente Macromedia Director). Lingo se utiliza para desarrollar software de aplicaciones de escritorio , quioscos interactivos , CD-ROM y contenido de Adobe Shockwave . [1] [2]
Lingo es el lenguaje de programación principal de la plataforma Adobe Shockwave, que dominó el mercado de productos multimedia interactivos durante la década de 1990. [3] Varios juegos de aventuras gráficas se desarrollaron con Lingo durante la década de 1990, incluidos The Journeyman Project , Total Distortion , Mia's Language Adventure , Mia's Science Adventure y la serie Didi & Ditto . Cientos de videojuegos en línea gratuitos se desarrollaron utilizando Lingo y se publicaron en sitios web como Miniclip y Shockwave.com.
Lingo se puede utilizar para crear interfaces de usuario, manipular gráficos rasterizados , gráficos vectoriales y gráficos de computadora 3D , y otras tareas de procesamiento de datos. [4] [5] Lingo admite una sintaxis especializada para el procesamiento de imágenes y la manipulación de objetos 3D. [6] También se pueden crear mallas 3D sobre la marcha utilizando Lingo. [6]
Historia
Lingo fue inventado por John H. Thompson en MacroMind en 1989 y se lanzó por primera vez con Director 2.2. Jeff Tanner desarrolló y probó Lingo para Director 2.2 y 3.0, creó XObjects personalizados para varios productores de dispositivos multimedia, ejemplos de extensión de lenguaje utilizando XFactory, incluida la interfaz de programación de aplicaciones (API) de XFactory, y escribió los tutoriales iniciales sobre cómo usar Lingo. Dave Shields probó y documentó Lingo basado en objetos para Director 3.13 y 4.0. Ejecutó scripts de compilación para crear versiones semanales para pruebas, originó la Macromedia KnowledgeBase, creó ejemplos de cómo escribir complementos Lingo XTRA en C++ y ensambló los discos Golden Master de Macromedia Director que se enviaron a la duplicadora.
Lingo fue rápidamente adoptado por la creciente comunidad multimedia durante la década de 1990 y el ya popular producto Director. Inicialmente, alrededor del 90% de los usuarios solo usaban el 10% de las características de Lingo; principalmente go to the framepor autores multimedia de tutoriales y presentaciones. [ cita requerida ] Sin embargo, el 10% de los usuarios eran desarrolladores de juegos [ cita requerida ] que se interesaron más en el otro 90% de sus capacidades, incluidas sus propias extensiones de funciones mediante la creación de sus propias XFactories/XObjects. El Proyecto Journeyman es un ejemplo destacado de esto.
Características
Lingo está integrado en Adobe Director y se puede agregar como scripts en objetos o en la línea de tiempo. Lingo es un lenguaje de programación orientado a objetos (OOP) y admite sintaxis verbosa similar a Smalltalk , sintaxis de puntos OO y herencia.
Sintaxis verbosa
Cuando se creó Lingo, se diseñó una sintaxis detallada para imitar el lenguaje hablado, de modo que fuera fácil para los nuevos usuarios. Los usuarios podían escribir oraciones similares a las de HyperTalk, como:
Si la visibilidad del sprite es 5 entonces pasa al marco
En las declaraciones go to , el "to" es opcional y, a diferencia de otros lenguajes de programación, las declaraciones go hacen referencia a marcos en Director's Score, no a líneas de código específicas.
Lingo también fue inicialmente muy robusto al proporcionar generación de objetos a través de un concepto llamado factory, lo que llevó a la extensibilidad del lenguaje a través de Factories Externos (XFactories) o XObjects. Para Director 3.13 y versiones posteriores, la extensibilidad se produjo a través de un tipo diferente de complemento llamado XTRA, basado en el Modelo de Objetos Componentes de Microsoft (COM).
Sintaxis de puntos
Aunque todavía es posible utilizar la sintaxis verbosa, la versión actual del lenguaje admite totalmente la sintaxis de puntos OO, de modo que el código se parece más a los lenguajes de programación estándar como JavaScript o C++ .
El equivalente en el nuevo estilo de scripting sería:
si sprite ( 5 ). visible entonces _movie . go ( _movie . frame )
Este formato utiliza elementos del Modelo de objetos de Director, introducido en Director MX 2004. La sintaxis en versiones anteriores sería la siguiente:
Si el sprite ( 5 ) es visible , entonces vaya al marco.
Creación de guiones
Hay 4 tipos de scripts de Lingo en Director, cada uno con un propósito específico. Cada tipo de script puede agregarse a ciertos tipos de objetos compatibles.
- Los scripts de reparto solo funcionan con sus miembros, no todos los eventos se pueden usar con ellos.
- Los scripts de comportamiento se adjuntan a un sprite o se insertan en un cuadro. Los comportamientos de sprite se utilizan a menudo para dar control sobre las propiedades y el movimiento del sprite. Los comportamientos de cuadro se pueden utilizar para crear una pausa o un retraso dentro de un determinado cuadro de la partitura. Los comportamientos facilitan la programación de forma orientada a objetos, ya que se puede ver directamente la relación entre la programación y el elemento al que están adjuntos. También pueden controlar o interactuar con otros sprites, lo que los convierte en un verdadero objeto.
- Los guiones de películas no están asociados a sprites ni se pueden instanciar como objetos. Están disponibles en todo el programa (película) y son especialmente útiles para contener controladores globales e inicializar variables globales al comienzo o al final de la película.
- Los scripts padre se utilizan para crear instancias de un objeto en una variable mediante el comando new . Estos objetos pueden controlar sprites y otros medios de forma remota, sin estar asociados a ningún sprite, pueden utilizarse para controlar datos u otros elementos no mostrados y son útiles para rutinas de recursión como la búsqueda de rutas. Un script padre se puede utilizar para crear o destruir un objeto en cualquier momento, liberándolos de los confines de la partitura a la que está limitado un comportamiento.
Los scripts de comportamiento y de padres fomentan una buena programación orientada a objetos. Los scripts de películas no están tan orientados a la POO. Sin embargo, se pueden utilizar para crear controladores de caja negra , donde otros objetos pueden ingresar datos sin procesar y recibir respuestas, sin conocer el funcionamiento interno de la caja. El uso de las fortalezas y la facilidad de uso de la metodología de programación de Director, junto con las ventajas de la POO, crea un entorno de programación potente y rápido.
Herencia
Lingo admite la herencia de objetos mediante un sistema ligeramente idiosincrásico: un script puede tener una ancestorpropiedad que hace referencia a otro objeto (normalmente también un script, aunque otros objetos como los miembros del reparto también pueden ser ancestros). Las propiedades y los métodos del ancestro son heredados por el padre. Los scripts de comportamiento también son una especie de ancestro de los sprites a los que están asociados, ya que se puede acceder a las propiedades y los métodos del comportamiento por referencia al propio sprite. En este caso, es un tipo de herencia múltiple , ya que un sprite puede tener varios comportamientos.
Extensibilidad
XObjetos
Lingo 3.0 también era extensible a través de Factories Externas (XFactories) o XObjects (posteriormente reemplazados por Lingo Xtras ), que proporcionaban extensiones programáticas a Director. Por ejemplo, se podían controlar dispositivos multimedia externos como reproductores de CD-ROM y de cintas de vídeo a través del puerto serie de Macintosh. La API de XObject estaba abiertamente disponible para desarrolladores y productores de dispositivos multimedia, lo que aumentó la popularidad y versatilidad de Lingo. Macromind fue muy activa en el posicionamiento de la API de XObject como estándar para que los dispositivos multimedia externos colaboraran a través de Lingo; y su interés como estándar logró una gran participación de importantes y florecientes empresas de productos multimedia a través de un grupo ad hoc llamado Multimedia Association.
Extras
A partir de la versión 4.0 de Director, Lingo se podía ampliar a través de una nueva clase mejorada de complemento externo llamada Xtras. Los Xtras se desarrollaron en C++ utilizando el Modelo de objetos componentes (COM) de Microsoft. La estandarización con COM ayudó a atraer a los desarrolladores para crear un mercado para dichos complementos.
Jerga de imágenes
Imaging Lingo se introdujo con Director 8.0 y permitió a los desarrolladores escribir comandos de manipulación de imágenes de alto rendimiento utilizando una sintaxis sencilla. Existen algunas similitudes con las funciones de las aplicaciones de imágenes (como Photoshop ), que facilitan la creación de efectos visuales dinámicos basados en código. La manipulación de imágenes también se agregó a ActionScript 3.0 con la clase BitmapData. Como esto incluía comandos más sofisticados, Director también se actualizó para permitir la conversión entre el objeto BitmapData y sus propios objetos Image.
3D
Director 8.5 introdujo un motor DirectX 3D que podía ejecutarse con Lingo. Lingo se actualizó sustancialmente para admitir los nuevos objetos 3D y ahora incluye un conjunto completo de comandos 3D. También se creó un Xtra para permitir el uso del motor Havok 3D Physics y, más tarde, el motor AGEIA PhysX en Director 11.
Otros idiomas
Estos otros lenguajes quizás no sean tan conocidos como el lenguaje de Macromedia. Sin embargo, en el Reino Unido sigue existiendo una anomalía legal: la marca registrada de la palabra "Lingo" pertenece a Linn Smart Computing .
- Se lanzó un lenguaje llamado Lingo para el desarrollo de software en Windows. Esta versión fue diseñada como un lenguaje de programación compilable de alto nivel.
- Se desarrolló un lenguaje de programación basado en Smalltalk para el procesador Rekursiv desarrollado por Linn Smart Computing en Escocia , Reino Unido . Este lenguaje se denominó Lingo [7] y es importante porque sus creadores obtuvieron con éxito una marca registrada en el Reino Unido.
- LINGO también es un lenguaje de programación para resolver problemas de optimización lineal, no lineal y entera, desarrollado por primera vez en 1988 por LINDO Systems Inc. Este lenguaje todavía está en producción.
Referencias
- ^ Guía del usuario de Macromedia Shockwave for Director, volumen 1, New Riders Pub., 01-ene-1996
- ^ Macromedia Shockwave para Director, Volumen 1, Hayden Books, 1996
- ^ Kelly Hart; Mitch Geller (2008). Nuevas perspectivas sobre Dreamweaver CS3, integral. Cengage Learning. pág. 429. ISBN 1-4239-2531-9.
- ^ Macromedia Director 8: Cómo crear multimedia potente, Prentice Hall, 2001
- ^ Macromedia Director 6 en detalle con Lingo, New Riders Pub., 01-Ene-1997
- ^ ab Macromedia Director 8.5 Shockwave Studio para 3D: capacitación desde la fuente, Macromedia Press, 2002
- ^ "Proyecto Rekursiv - Lingo Language". 7 de junio de 2007. Archivado desde el original el 7 de junio de 2007.
Enlaces externos
- Sitio web oficial , en Adobe.com, Centro de soporte de Director