Articulo de referencia

Lingo (lenguaje de programación)

Lingo es un lenguaje de scripting orientado a objetos (OO) detallado , desarrollado por John H. Thompson para su uso en Adobe Director (anteriormente Macromedia Director). Lingo...

Lingo es un lenguaje de scripting 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 en la plataforma Adobe Shockwave, que dominó el mercado de productos multimedia interactivos durante la década de 1990. [ 3 ] Se desarrollaron varios juegos de aventuras gráficas con Lingo durante la década de 1990, incluyendo The Journeyman Project , Total Distortion , Mia's Language Adventure , Mia's Science Adventure , la serie Didi & Ditto y toda una flota de juegos de Headbone Interactive . Cientos de videojuegos en línea gratuitos se desarrollaron usando Lingo y se publicaron en sitios web como Miniclip y Shockwave.com .

Lingo se puede usar para construir interfaces de usuario, manipular gráficos rasterizados , gráficos vectoriales y gráficos 3D por computadora , y otras tareas de procesamiento de datos. [ 4 ] [ 5 ] Lingo admite 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 usando Lingo. [ 6 ]

Historia

Lingo fue inventado por John H. Thompson en MacroMind en 1989 y lanzado 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 fabricantes de dispositivos multimedia, ejemplos de extensión de lenguaje usando XFactory, incluyendo 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, creó la base de conocimientos de Macromedia , 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 floreciente comunidad multimedia durante la década de 1990, junto con el ya popular producto Director. Inicialmente, alrededor del 90 % de los usuarios solo utilizaban el 10 % de las funciones de Lingo; principalmente go to the frameautores multimedia de tutoriales y presentaciones. Sin embargo, otro 10 % de los usuarios eran desarrolladores de videojuegos que mostraron un mayor interés en el 90 % restante de sus capacidades, incluyendo la extensión de funciones mediante la creación de sus propios XFactories/XObjects. El proyecto Journeyman es un ejemplo destacado de esto.

Características

Lingo está integrado en Adobe Director y se puede añadir como script a objetos o a la línea de tiempo. Lingo es un lenguaje de programación orientada a objetos (POO) y admite una sintaxis detallada similar a la de Smalltalk , la sintaxis de punto de la POO y la herencia.

Sintaxis verbosa

Cuando se creó Lingo, se diseñó una sintaxis detallada para imitar el lenguaje hablado, de modo que resultara fácil para los nuevos usuarios. Los usuarios podían escribir frases similares a las de HyperTalk, como por ejemplo:

Si la visibilidad del sprite 5 es nula , entonces ve al fotograma

En las instrucciones go to , el "to" es opcional y, a diferencia de otros lenguajes de programación, las instrucciones 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 una noción llamada factory, lo que llevó a la extensibilidad del lenguaje a través de External Factories (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 detallada, la versión actual del lenguaje es totalmente compatible con la sintaxis de punto orientada a objetos, de modo que el código se parece más a lenguajes de programación estándar como JavaScript o C++ .

El equivalente en un nuevo estilo de scripting sería:

if sprite ( 5 ). visible then _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 sprite ( 5 ). visible entonces ir al fotograma

Programación de scripts

En Director existen 4 tipos de scripts Lingo, cada uno con una finalidad específica. Cada tipo de script se puede añadir a determinados tipos de objetos compatibles.

  • Los scripts de reparto solo funcionan con su miembro; no todos los eventos pueden utilizarse con ellos.
  • Los scripts de comportamiento se adjuntan a un sprite o se insertan en un fotograma. Los comportamientos de sprite se utilizan a menudo para controlar sus propiedades y movimiento. Los comportamientos de fotograma permiten crear pausas o retrasos dentro de un fotograma específico de la partitura. Los comportamientos facilitan la programación orientada a objetos, ya que permiten visualizar directamente la relación entre la programación y el elemento al que están asociados. Además, pueden controlar o interactuar con otros sprites, convirtiéndose así en objetos reales.
  • Los scripts de película no están asociados a los sprites ni pueden instanciarse como objetos. Están disponibles durante todo el programa (película) y son especialmente útiles para gestionar variables globales e inicializarlas al principio 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 elementos multimedia de forma remota, sin estar asociados a ningún sprite en particular; pueden utilizarse para controlar datos u otros elementos no visibles; y son útiles para rutinas recursivas como la búsqueda de rutas. Un script padre puede utilizarse para crear o destruir un objeto en cualquier momento, liberándolo de las limitaciones de la puntuación a la que está restringido un comportamiento.

En Director, los scripts de comportamiento y los scripts principales son compatibles con las prácticas de programación orientada a objetos, mientras que los scripts de películas suelen tener una estructura menos orientada a objetos. Aun así, los scripts de películas pueden utilizarse para crear manejadores que reciben información de otros objetos y devuelven resultados sin exponer sus procesos internos. Este enfoque combina el modelo de scripting de Director con algunos principios de la programación orientada a objetos.

Herencia

Lingo admite la herencia de objetos mediante un sistema algo peculiar: un script puede tener una ancestorpropiedad que hace referencia a otro objeto (normalmente también un script, aunque otros objetos como los miembros del elenco 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 ancestros de los sprites a los que están asociados, ya que se puede acceder a las propiedades y los métodos del comportamiento haciendo referencia al propio sprite. En este caso, se trata de una herencia múltiple , ya que un sprite puede tener varios comportamientos.

Extensibilidad

XObjects

Lingo 3.0 también era extensible mediante External Factories (XFactories) u XObjects (posteriormente reemplazados por Lingo Xtras ), que proporcionaban extensiones programáticas a Director. Por ejemplo, el control de dispositivos multimedia externos como reproductores de CD-ROM y cintas de vídeo a través del puerto serie de Macintosh. La API de XObject estaba disponible abiertamente para desarrolladores y fabricantes de dispositivos multimedia, lo que contribuyó a la popularidad y versatilidad de Lingo. Macromind fue muy activo en el posicionamiento de la API de XObject como estándar para la colaboración de dispositivos multimedia externos a través de Lingo; y su interés como estándar logró una gran participación de importantes y emergentes 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 volvió extensible mediante una nueva clase mejorada de complementos externos llamada Xtras. Los Xtras se desarrollaron en C++ utilizando el Modelo de Objetos Componentes (COM) de Microsoft. La estandarización con COM contribuyó a atraer desarrolladores y a crear un mercado para este tipo de 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 con una sintaxis sencilla. Presenta algunas similitudes con funciones de aplicaciones de edición de imágenes (como Photoshop ), lo que facilita la creación de efectos visuales dinámicos basados ​​en código. La manipulación de imágenes también se incorporó a ActionScript 3.0 con la clase BitmapData. Dado que esta incluía comandos más sofisticados, Director se actualizó para permitir la conversión entre el objeto BitmapData y sus propios objetos Image.

3D

Director 8.5 introdujo un motor 3D DirectX que podía programarse 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 módulo adicional para habilitar el uso del motor de física 3D Havok y, posteriormente, del motor AGEIA PhysX en Director 11.

Otros idiomas

Estos otros lenguajes quizás no sean tan conocidos como el lenguaje de Macromedia. Sin embargo, persiste una anomalía legal en el Reino Unido, ya que 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 de alto nivel compilable.
  • 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 significativo porque sus creadores obtuvieron con éxito una marca registrada en el Reino Unido.
  • LINGO es también 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 se utiliza.

Referencias

  1. Guía del usuario de Macromedia Shockwave para Director, Volumen 1 , New Riders Pub., 1 de enero de 1996
  2. Macromedia Shockwave para Director, Volumen 1 , Hayden Books, 1996
  3. Kelly Hart; Mitch Geller (2008). Nuevas perspectivas sobre Dreamweaver CS3, Comprehensive . Cengage Learning. pág.  429. ISBN 1-4239-2531-9.
  4. Macromedia Director 8: Creación de multimedia potente , Prentice Hall, 2001
  5. Dentro de Macromedia Director 6 con Lingo , New Riders Pub., 1 de enero de 1997
  6. 1 2 Macromedia Director 8.5 Shockwave Studio para 3D: Formación desde la fuente , Macromedia Press, 2002
  7. "Proyecto Rekursiv - Lingo Language" . 7 de junio de 2007. Archivado del original el 7 de junio de 2007.
  • Sitio web oficial , en Adobe.com, Centro de soporte del director