Kaleida laboratorios formó en 1991 para producir los multimedia multiplataforma Kaleida Media Player y el orientado a objetos del lenguaje de scripts ScriptX que se utilizó para programar su comportamiento. El sistema estaba destinado a la producción de títulos en CD ROM interactivos , un área de gran esfuerzo a principios de la década de 1990. Cuando se entregó el sistema en 1994, tenía requisitos de sistema y espacio de memoria relativamente altos, y carecía de una versión nativa de PowerPC en la plataforma Mac . Casi al mismo tiempo, cambios rápidos en el mercado, especialmente la expansión de la World Wide Web y el lenguaje de programación Java., empujó el mercado de CD interactivos a un nicho de mercado. La plataforma Kaleida no logró una tracción significativa y la empresa se cerró en 1996.
Kaleida fue una de las tres empresas conjuntas de la década de 1990 entre Apple e IBM, incluido el sistema operativo Taligent y la alianza AIM con Motorola para la plataforma PowerPC. ScriptX fue una de varias plataformas de software similares que comenzaron en Apple en ese período de tiempo. El sistema SK8 también estaba dirigido al mercado multimedia, aunque evolucionó de lo que originalmente era una actualización importante a HyperCard . El lenguaje de programación Dylan era una plataforma más completa, dirigida a la programación general, no solo a la multimedia. El desarrollo de todos estos proyectos de software finalizó aproximadamente al mismo tiempo.
Historia
Formación
Anunciada en 1991, la compañía comenzó a operar en el verano de 1992 con Nat Goldhaber como su primer CEO. [1] La compañía estaba compuesta por miembros de selección manual del equipo QuickTime de Apple , junto con miembros del lado de entrega de contenido de gran hierro en IBM. [2] Las oficinas corporativas de Kaleida estaban ubicadas en Mountain View, California, en sitios cerca del Anfiteatro Shoreline en el lado este de la US 101. Kaleida fue una de las primeras compañías en publicar un sitio web corporativo.
El primer modelo del sistema fue Kaleida Media Player , o KMP. Se trataba esencialmente de una versión interactiva multiplataforma del QuickTime Player que se ejecutaría en Apple Macintosh , clones de IBM PC , así como decodificadores y otras plataformas. Se pretendía que fuera un único sistema multimedia universal. [2] Además de este modelo, estaba el lenguaje de programación ScriptX y la biblioteca de objetos , que permitía a los desarrolladores hacer que los archivos multimedia fueran completamente interactivos.
Según declaraciones hechas en la Conferencia Mundial Digital, Goldhaber declaró que ScriptX permitiría a los desarrolladores distribuir su trabajo en prácticamente cualquier dispositivo simplemente "presionando un botón en una pantalla y seleccionando 'Guardar como ScriptX'". [3] Las declaraciones grandiosas eran típicas , y Goldhaber declaró más tarde que "en realidad tiene una importancia social genuina". [4]
El estilo extravagante de Goldhaber, la costosa nómina de la empresa y la falta de progreso obvio llevaron a historias negativas en la prensa. Un ejecutivo que describió que "la compañía ha gastado alrededor de $ 20 millones en su primer año de existencia y que Apple e IBM son reacios a seguir gastando dinero a ese ritmo. Dijo que los salarios de Kaleida son altos y que la compañía tiene demasiados empleados para su etapa actual de desarrollo ". [5]
A principios de 1993, Goldhaber y la junta comenzaron a pelear por las opciones sobre acciones y si la empresa debería cotizar en bolsa. El 18 de julio de 1993, la compañía anunció que Goldhaber estaba siendo reemplazado como CEO por Mike Braun, antes de IBM. La compañía declaró que Goldhaber permanecería en la junta en los esfuerzos por construir asociaciones de la industria, pero culpó a la falta de progreso en este frente, ya la gestión de "no intervención" de Goldhaber, como las principales razones del cambio. [6] Al despedirse, Goldhaber bromeó diciendo que las diferentes culturas y maniobras políticas en IBM y Apple condenaron a la empresa desde el principio. [2]
Reenfocar y soltar
Tras la destitución de Goldhaber, el enfoque de la empresa se redujo. Los planes para construir un sistema para decodificadores se abandonaron oficialmente en abril de 1994. [7] La misión de Kaleida a partir de ese momento fue completar y soportar el lenguaje ScriptX y la biblioteca de objetos multimedia, que en ese momento llegaban muy tarde. Kaleida buscó agrupar el KMP como software de sistema con nuevas computadoras personales. Al mismo tiempo, los desarrolladores de CD-ROM podrían enviar el KMP con contenido para admitir los sistemas Windows y Macintosh existentes. Como parte del nuevo enfoque, se redujo el tamaño de la empresa y los despidos representaron entre el 20 y el 25% de la fuerza laboral. [7] [8]
A finales de 1993 y principios de 1994, el objetivo de la empresa era que el Kaleida Media Player se ejecutara en una plataforma de referencia que consistiera en un procesador Motorola 68030 de 25 MHz o un procesador Intel 80486 de 25 MHz con 4 MB de memoria de acceso aleatorio. Ese sistema era típico de la base instalada en ese momento, y la mayoría de las computadoras nuevas se enviaban con una unidad de CD-ROM de solo lectura. Toshiba, que había apoyado el esfuerzo del decodificador de Kaleida, se convirtió en un accionista minoritario. A lo largo de su breve historia, Kaleida mantuvo los esfuerzos de desarrollo multiplataforma para Windows (tanto Windows 3.1 como Windows 95), Macintosh (compatible con las plataformas 68000 y PowerPC) y OS / 2.
El kit de desarrollo de ScriptX y la versión 1.0 del Kaleida Media Player se lanzaron finalmente el 19 de diciembre de 1994, ahora bastante tarde. [9] Sin embargo, las revisiones fueron en general positivas, calificándolo de "notable por su facilidad de uso" y declarando que el núcleo es "clases que proporcionan un conjunto de características de alto denominador común para el desarrollo basado en ScriptX". [10] Sin embargo, el rendimiento fue otro problema por completo. La versión 1.0 del KMP requería 3.3 MB de RAM en Windows y 2.9 MB en Mac, y esto fue solo para el tiempo de ejecución básico, no para el contenido real que se ejecutaba en él. [10] Para poner esto en perspectiva, una Mac de gama media de la época era la LC 475, que se enviaba con solo 4 MB de RAM estándar, de los cuales el sistema operativo usaba una cantidad significativa. Además, el sistema no se lanzó en formato PowerPC , aunque en este punto el PPC ya había formado la gama alta de la línea Mac durante ocho meses. [10]
Mercado cambiante
Kaleida se fundó en parte como un entorno de creación de aplicaciones basadas en CD-ROM. Pero el ciclo de vida del producto de los CD-ROM, que se había anunciado durante años como un sistema de distribución de contenido, resultó ser sorprendentemente corto. Para 1995 se hizo evidente que la World Wide Web ofrecería muchos de los sistemas interactivos livianos que anteriormente se entregaban en CD-ROM, y aunque los sistemas de video y similares de gran ancho de banda aún no eran adecuados para la Web, no necesitaban el entorno de desarrollo o la interactividad que ofrece algo como Kaleida.
Kaleida también se había formado, hasta cierto punto, para ofrecer una alternativa a la plataforma Wintel para lo que en ese momento parecía ser un mercado emergente en el mundo de los CD. Goldhaber había mencionado esto en muchas ocasiones, describiendo la próxima "guerra" por multimedia. [3] Después de la oferta pública de Netscape a principios de 1995, muchos desarrolladores de software reconocieron que el navegador en sí supondría un desafío para Windows y que el navegador se convertiría en una plataforma multimedia por derecho propio. La plataforma independiente para atacar a Wintel ya existía. Luego, Kaleida inició un esfuerzo para entregar objetos a través de Internet y entregar contenido web. [11]
La mayoría de los desarrolladores potenciales de Kaleida habían estado adoptando un enfoque de esperar y observar en el sistema, esperando que Kaleida resolviera los problemas de rendimiento y enviara una versión más estable de ScriptX. Sin embargo, la empresa no había podido demostrar un sistema que funcionara aceptablemente en menos de 16 MB de RAM, que en ese momento era el "high-end" del mercado. El director de Macromedia y el programa asociado de Lingo aprovecharon el vacío para establecer un mercado sólido. [12] Mientras tanto, Sun Microsystems estaba promocionando su nuevo lenguaje de programación Java como un sistema dedicado a la Web diseñado específicamente para ejecutarse incluso en las plataformas más pequeñas.
Cierre
A finales de 1995, estaba claro que ScriptX había perdido su impulso en el mercado, a pesar de que la empresa estaba a punto de lanzar la versión 1.5 de ScriptX. En noviembre de 1995, Apple Computer e IBM anunciaron el cierre de Kaleida Labs, a partir de enero de 1996. [13] Las empresas matrices anunciaron que enviarían ScriptX 1.5 de todos modos. El desarrollo futuro de ScriptX se trasladaría a un grupo dentro de Apple Computer, y Apple ofreció puestos de trabajo a la mayoría de los miembros del equipo de ingeniería de ScriptX.
ScriptX Versión 1.5 se envió casi al mismo tiempo que el cierre de Kaleida Labs, en enero de 1996. [12] Al enviar ScriptX, Apple e IBM cumplieron los compromisos contractuales que habían hecho con los desarrolladores y evitaron dificultades legales. En última instancia, solo se enviaron dos proyectos de contenido multimedia con ScriptX 1.5. Una era una versión en CD-ROM de la Enciclopedia Nacional Sueca, Nationalencyklopedin , desarrollada por Linné Data de Gotemburgo, Suecia. El otro era un título musical interactivo, Crazy for Ragtime de Robert Winter .
Después de Kaleida
En unos pocos meses, el desarrollo de ScriptX se desvaneció dentro de Apple, y los empleados restantes habían migrado a otros trabajos en Apple o se habían ido a otras empresas de la industria. La aplicación Director siguió siendo una fuerza importante en el mercado multimedia durante un tiempo, pero fue suplantada y luego reemplazada por Flash . Las primeras versiones de Flash son en muchos sentidos un clon de ScriptX, utilizando un pequeño tiempo de ejecución de complemento con un lenguaje controlado por eventos y requisitos de recursos similares.
Descripción
ScriptX
El principal arquitecto de software de ScriptX fue John Wainwright , un informático nacido en Australia. ScriptX se implementó en C, utilizando una extensa biblioteca llamada Objetos en C que Wainwright había desarrollado antes de unirse a Kaleida y se vendió a la empresa en sus inicios. Los objetos en C usaban directivas de preprocesador para simular un sistema de objetos dentro de las bibliotecas. La biblioteca contó con más de 240 clases, muchas de ellas diseñadas para admitir multimedia, así como para crear interfaces de usuario personalizadas. Las estructuras de datos comunes, como matrices y listas vinculadas, se implementaron como clases de colección en la biblioteca.
ScriptX era un lenguaje de programación orientado a objetos, que utilizaba elementos de diseño de "Smalltalk, Dylan, Hypertalk, Lisp, Object Logo, C ++ y Pascal". [14] Con Smalltalk, compartía el concepto de clases, objetos y herencia, pero también presentaba herencia múltiple tanto en clases como en objetos, y enlace dinámico de objetos en tiempo de ejecución. ScriptX no tenía tipos de datos primitivos; incluso los enteros se definieron como objetos. Todos los objetos eran instancias de una clase y las clases mismas eran instancias de un objeto MetaClass. Como en LISP, no había declaraciones y cada línea en un programa ScriptX era una expresión que devolvía un valor. [14]
ScriptX usó la recolección de basura que se ejecuta en un hilo separado para manejar la memoria y presentó un almacén de objetos para las colecciones permanentes. ScriptX admitía múltiples subprocesos, pero no multiprocesamiento, y ofrecía un control de secuencias de comandos de las características del sistema operativo de nivel inferior, como eventos y subprocesos que se ejecutan simultáneamente. Las primeras herramientas de desarrollo multimedia carecían de técnicas para sincronizar presentaciones, excepto mediante el sondeo del propio reloj del sistema operativo. Ray Valdés, escribiendo en el Dr. Dobb's Journal , señaló que "una característica clave de ScriptX es una clase de Reloj , que proporciona facilidades para sincronizar secuencias cronometradas de acciones requeridas por aplicaciones multimedia". [14]
Tras el cierre de Kaleida Labs, Wainwright pasó a ser el arquitecto principal de MaxScript , un lenguaje de scripting para 3D Studio Max que se ha utilizado para procesar contenido para juegos y aplicaciones 3D como los programas Maxis Sims. [15] Por lo tanto, ScriptX puede considerarse un progenitor de MaxScript, que se parece mucho a ScriptX.
Ejemplo
El siguiente código ilustra la sintaxis única del lenguaje ScriptX. Es parte de una clase que maneja el seguimiento del mouse en un programa más grande escrito por Don Hopkins . [16] : el método sendTrackDrop envía un mensaje trackDrop a otro objeto.
método sendTrackDrop self {class Tracker} servicio objetivo xy datos doit -> ( coordenadas locales: = nuevo puntorepetir mientras (verdadero) hacer (si (canObjectDo target trackDrop) entonces (return (trackDrop target service xy data doit)) demás (coords.x: = xcoords.y: = yt local: = coordenadas de destino findFirstAtPointsi (t == vacío) devuelve falsox: = x - txy: = y - tyobjetivo: = t)) )
Este código es responsable de reenviar mensajes trackDrop entre objetos e ilustra una serie de características poco comunes del lenguaje ScriptX. De menor interés es el :=
operador de asignación, como el de Pascal.
Las variables están marcadas local
para determinar su alcance . [14] Esto es lo opuesto a la mayoría de los lenguajes modernos, donde "local" es el alcance predeterminado, y tal declaración sería redundante. En los lenguajes convencionales, la visibilidad del alcance se define por la ubicación en el archivo de código fuente : las variables declaradas dentro de un método son locales para ese método, las definidas fuera de los métodos u otras declaraciones son globales para la clase (o programa).
Esta falta de alcance basado en archivos es una característica básica del lenguaje ScriptX y otros similares, especialmente Dylan . En lenguajes convencionales como Java , las clases y construcciones similares se definen dentro de un solo archivo, o al menos un "archivo maestro". El alcance está definido por el sistema de archivos y la ubicación del código dentro de él. Por el contrario, en ScriptX cualquier método se puede definir en cualquier clase en cualquier archivo. En este ejemplo, el método sendTrackDrop
se aplica a la Tracker
clase y se puede colocar dentro de cualquier archivo al que se accederá durante el tiempo de ejecución. Esto permite a los programadores organizar su código por clase o por funcionalidad, a costa de una sintaxis adicional.
ScriptX frente a Java
Java tiene muchas similitudes con ScriptX. Como ScriptX, es un lenguaje basado en objetos con elementos de sintaxis similares a C y C ++. Las clases de Java admiten una forma limitada de herencia múltiple a través de interfaces , y el entorno de ejecución de Java utiliza un recolector de basura para la gestión de la memoria con una arquitectura de "rastreo" similar a la de ScriptX. Tanto Java como ScriptX traducen programas a un código de bytes independiente de la plataforma.
A diferencia de ScriptX, Java no es un sistema de objetos puro y tiene tipos de datos primitivos. A diferencia de las expresiones de ScriptX, los programas Java siempre se escriben dentro de una definición de clase y devuelven un valor o un vacío . Esto hace que el código Java sea mucho más fácil de proteger, para protegerlo de manipulaciones e interferencias maliciosas. Java fue capaz desde el principio de admitir aplicaciones multiproceso y multiproceso y, por lo tanto, fue naturalmente escalable. Estas características y otros atributos de Java lo hicieron más adecuado para un entorno distribuido y de red que ScriptX.
Aunque tanto ScriptX como Java se diseñaron como entornos de máquina virtual independientes de la plataforma, su filosofía e implementación fueron bastante diferentes. Kaleida Media Player era un intérprete complejo que requería varios megabytes para ejecutarse, y Kaleida nunca logró un rendimiento efectivo en un sistema con menos de 16 MB de memoria de acceso aleatorio . Por el contrario, Java fue diseñado para ejecutar código de bytes compilado en una máquina virtual simplificada que podría implementarse en prácticamente cualquier procesador de 16 bits o más. De esta manera, Java podría usarse en cualquier lugar, desde dispositivos portátiles o dispositivos de consumo hasta computadoras mainframe.
En 1995, Java se estaba demostrando principalmente como un entorno de ejecución para pequeños subprogramas, como código que se podía incrustar en páginas web y descargar para ejecutar en el navegador. Sun Microsystems proporcionó especificaciones detalladas para Java, lanzó muchas clases de código abierto y formó agresivamente alianzas para distribuirlo y compartir su desarrollo con otras compañías en las industrias de hardware y software de computadoras.
Referencias
- ^ Lawrence Fisher, "Se nombra al jefe de empresa de Apple-IBM" , New York Times , 24 de junio de 1992
- ^ a b c "Strep Throat", "Mortalidad infantil y otras tragedias" , suck.com, 22 de noviembre de 1995
- ^ a b Janice Maloney, "A Multimedia Standard to Bring About 'Universal Compatibility'" Archivado el 4 de marzo de 2016 en Wayback Machine , Digital Media , julio de 1993
- ^ Jonathan Weber, "Kaleida Labs, una empresa conjunta Apple-IBM, está buscando formas de desarrollar tecnologías multimedia". , Los Angeles Times , 27 de septiembre de 1992
- ^ Jonathan Weber, "Los laboratorios multimedia de Kaleida estarán a cargo de un veterano de IBM en medio de informes de retrasos y altos costos" , Los Angeles Times , 16 de julio de 1993
- ^ Ralph King, "Multimedia Kaleida cambia a altos ejecutivos en medio de retrasos" , Wall Street Journal , 18 de julio de 1993
- ^ a b Laurie Flynn, "Bytes de sonido; Maverick remakes Kaleida" , The New York Times , 15 de mayo de 1994
- ^ Ray Valdés, "¿Qué pasa en Kaleida?" , Dr. Dobbs Developer Update , 1 de septiembre de 1994
- ^ "Kaleida Labs envía programas multimedia ScriptS" , New York Times , 20 de diciembre de 1994
- ^ a b c Stephan Somogyi, "ScriptX de Kaleida: es tarde pero adelantado a su tiempo" , Perspectiva de medios digitales , 23 de diciembre de 1994
- ^ "ScriptX y la World Wide Web: vincular globalmente, interactuar localmente"
- ^ a b Donald Emerick y Kimberlee Round, "Explorando el marketing web y la gestión de proyectos" , MIT Press, p. 558
- ^ Julie Pitta, "IBM, Apple cerrará la puerta a Kaleida Labs" Los Angeles Times , 18 de noviembre de 1995
- ^ a b c d Ray Valdés, "Introducing ScriptX" , Dr. Dobb's Journal , noviembre de 1994
- ^ Don Hopkins, "Automatización de la canalización de animación de personajes de los Sims con MaxScript"
- ^ Don Hopkins, "TrackService: otro controlador de eventos para ScriptX" , Kaleida Labs
Otras lecturas
- Kaleida Labs Inc. (1994). Guía de arquitectura Scriptx . Addison Wesley . ISBN 0-201-40729-9 . Documentación que acompaña a ScriptX Versión 1.0.
- Kaleida Labs Inc. (1994). Referencia de las clases principales de ScriptX . Addison Wesley . ISBN 0-201-40730-2 . Documentación que acompaña a ScriptX Versión 1.0.
- Kaleida Labs Inc. (1996). Guía de componentes y arquitectura de ScriptX . Documentación que acompaña a ScriptX Versión 1.5.
- Kaleida Labs Inc. (1996). Referencia de las clases principales de ScriptX . Documentación que acompaña a ScriptX Versión 1.5.
- Kaleida Labs Inc. (1996). Referencia del lenguaje ScriptX . Documentación que acompaña a ScriptX Versión 1.5.
- Kaleida Labs Inc. (1995). Descripción general técnica de ScriptX .
enlaces externos
- Página de descripción general de ScriptX
- Patente de EE.UU. 5.907.704 Encapsulación jerárquica de objetos instanciados en un sistema de autoría multimedia que incluye objetos accesibles a través de Internet. (La patente ahora está asignada a Quark, Inc. )
- Lista de patentes aún asignadas actualmente a Kaleida