# Hollywood (lenguaje de programación)

Hollywood es un lenguaje de programación distribuido comercialmente y desarrollado por Andreas Falkenhahn (Airsoft Softwair) que se centra esencialmente en la creación de aplicaciones con orientación multimedia. Hollywood está disponible para AmigaOS, MorphOS, WarpOS, AROS, Windows, macOS, Linux, Android e iOS. Hollywood incluye un compilador cruzado interno que puede guardar automáticamente ejecutables para todas las plataformas que soporta. Los ejecutables generados son completamente autónomos y no tienen dependencias externas, así que pueden ser puestos en marcha desde un lápiz o llave USB. Un complemento adicional permite a los usuarios compilar proyectos y generar ficheros APK.
Hollywood Designer es una herramienta adicional para Hollywood que le permite utilizarlo como un programa de presentaciones y un sistema de autoría.

## Historia

Hollywood hunde sus raíces en la plataforma Amiga. Inspirado por los lenguajes de programación para Amiga como AMOS, Blitz BASIC y Amiga E, el autor de Hollywood, Andreas Falkenhahn, inició el desarrollo de Hollywood en la primavera de 2002 tras terminar sus exámenes de la selectividad. La versión 1.0 fue lanzada en noviembre de 2002, pero únicamente para los ordenadores Amiga basados en la gama de microprocesadores 68000. Un mes más tarde, le siguió una versión nativa PowerPC para MorphOS. El soporte para WarpOS se incluyó con Hollywood 1.9 que apareció en primavera de 2004 junto con el lanzamiento de la primera versión de Hollywood Designer, una herramienta que puede ser utilizada para crear presentaciones con Hollywood. El soporte del AmigaOS 4 está disponible desde marzo de 2005. Con el inicio de la versión 2.0 (lanzada en enero de 2006), Hollywood pasa a utilizar el lenguaje de programación Lua como una máquina virtual, pero con modificaciones significativas de la sintaxis y funcionalidad. A partir de la versión 3.0 (enero de 2008), Hollywood por primera vez también se ejecuta en dos sistemas operativos ajenos al Amiga: Microsoft Windows y macOS. Tras la versión 4.5 (enero de 2010), Hollywood está también disponible con un entorno de desarrollo integrado para Windows. Desde la versión 4.8 (abril de 2011), Hollywood también puede generar ejecutables para Linux. La versión 5.0 de Hollywood fue lanzada en febrero de 2012 e introdujo soporte para la reproducción de video y formatos de imágenes vectoriales como el SVG. Desde la versión 5.2, Hollywood también soporta el sistema Android. La versión 6.0 fue lanzada en febrero de 2015 y con ella se introdujo el soporte de programación para OpenGL así como soporte para la Raspberry Pi. Hollywood 7.0 ha sido lanzado en marzo de 2017 e introduce el soporte de Unicode y de las arquitecturas de 64 bits.

## Información general

Hollywood se centra en la facilidad de uso y en la independencia de la plataforma. Ha sido diseñado principalmente para la creación de juegos y aplicaciones multimedia. El juego de instrucciones del lenguaje abarca aproximadamente 1000 comandos de los siguientes campos: gráficos 2D, sonido, operaciones del sistema de ficheros, salida de texto, animaciones, duendecillos gráficos, capas, efectos de transición, manipulación de imágenes, guardado de imágenes y ficheros de video, funciones de hora y fecha, funciones de entrada de datos (teclado, palanca de juegos, ratón) así como operaciones matemáticas y funciones de cadena. La programación en Hollywood se realiza a través de los llamados guiones de Hollywood (con extensión *.hws). Estos guiones son compilados dinámicamente y pueden ser convertidos en ejecutables autónomos. Todos los programas de Hollywood se ejecutan en un cajón de arena (área para aislamiento de procesos), lo que hace imposible que se bloqueen.

### Independencia de la plataforma

Hollywood ha sido diseñado para ser lenguaje de programación completamente independiente de la plataforma. Debido a ello, los guiones no pueden llamar a ninguna función de la interfaz de desarrollo del sistema operativo anfitrión directamente y están limitados al juego de comandos integrados. La generación del texto también está implementada a través de un sistema tipográfico independiente de la plataforma que asegura que el texto con tipos de impresión TrueType tiene el mismo aspecto en cada una de las plataformas. Además, todas las versiones de Hollywood soportan los formatos específicos del Amiga como las imágenes IFF ILBM, los sonidos IFF 8SVX o los ficheros de animación IFF ANIM, para así ser totalmente compatibles con los guiones escritos en un sistema Amiga.

### Desarrollo de la interfaz gráfica del usuario

Existen múltiples paquetes de herramientas para crear interfaces para Hollywood. RapaGUI es un complemento multiplataforma de este tipo que soporta Windows, macOS, Linux y AmigaOS: Utiliza los controles nativos de las respectivas plataformas anfitrionas para dar a todas las aplicaciones que lo usan una sensación nativa completa. MUI Royale es otro complemento similar que permite crear interfaces basadas en el sistema gráfico MUI, la "interfaz mágica del usuario" de Stefan Stunz. Otro más disponible es HGui: En contraste con RapaGUI y MUI Royale, HGui genera sus propios elementos de la interfaz gráfica, consiguiendo que el aspecto sea idéntico en todas las plataformas.

### Compilador

Una prestación especial del compilador cruzado entre plataformas que incluye Hollywood es la habilidad de incrustar automáticamente todos los ficheros externos (incluyendo los tipos de impresión) dentro del ejecutable creado. Ello hace posible crear programas que consistan en un único fichero y que pueden ser transportados y distribuidos fácilmente. Además, el compilador de Hollywood puede compilar guiones como miniaplicaciones (o como los denomina su creador en inglés, "applets"; utilizan como extensión de fichero *.hwa). Estas miniaplicaciones son más pequeñas que los programas habituales de Hollywood, pero únicamente pueden ser ejecutadas en sistemas en los que Hollywood esté instalado. Finalmente, también es posible exportar los guiones de Hollywood como videos en formato AVI.

## Entorno de desarrollo

No existe entorno de desarrollo integrado de Hollywood para el Amiga. En estos sistemas, Cubic IDE y Codebench pueden ser utilizados para desarrollar utilizando Hollywood, puesto que ofrecen soporte de dicho lenguaje a través de complementos. En Windows, Hollywood incluye un entorno integrado de desarrollo que puede utilizarse para crear los guiones. Las versiones para macOS y Linux de Hollywood tampoco ofrecen un entorno de desarrollo integrado y pueden ser controladas desde la consola o incluso integradas en otros entornos de desarrollo integrado.

## El primer programa

El típico primer programa que muestra un mensaje de saludo, con Hollywood tendría este aspecto:
El código anterior abre una nueva ventana en el escritorio, imprime el texto "¡Bienvenidos a Hollywood!" en letras blancas y aguarda a que se presione el botón izquierdo del ratón antes terminar y salir del programa. La apertura de la ventana es realizada de forma automática por Hollywood. Si no se pide nada más, Hollywood abrirá una nueva ventana con un tamaño de 640x480 píxeles para cada guion.

## Hollywood Designer

Hollywood Designer es una herramienta complementaria de Hollywood que le permite crear presentaciones y sistemas de quiosco interactivo con Hollywood. El logicial utiliza una interfaz WYSIWYG -o sea, "lo que ves es lo que obtienes"- basado en diapositivas. Los usuarios pueden crear tantas diapositivas como deseen y llenarlas con textos, gráficos y sonido. Hollywood Designer ejecutará las diapositivas una tras otra o en un orden predefinido. Hay múltiples transiciones disponibles. Además, es posible crear aplicaciones que exijan la interacción de los usuarios como los "sistemas de quiosco interactivos".
Todos los proyectos creados con Hollywood Designer son visualizados utilizando Hollywood y pueden también ser compilados en ejecutables autónomos o convertidos a ficheros de video. Los usuarios avanzados también pueden incrustar código dentro de sus proyectos. A través de este código a medida es posible acceder al juego de comandos completo de Hollywood.
Técnicamente hablando, Hollywood Designer no hace nada, salvo generar guiones automáticamente para Hollywood según un diseño definido por el usuario a través de la interfaz gráfica. El proceso de generación de guiones y su ejecución utilizando Hollywood queda totalmente oculto al usuario, así que no son necesarios conocimientos de programación para usar Hollywood Designer. Sin embargo, puesto que Hollywood Designer sólo genera guiones para Hollywood, que el usuario disponga de este último es un requisito obligatorio para poder utilizar Hollywood Designer.
La primera versión de Hollywood Designer fue lanzada en abril de 2004. Actualmente, este producto está disponible únicamente para sistemas operativos compatibles con la plataforma Amiga. Sin embargo, gracias al compilador cruzado de Hollywood, este producto puede generar ejecutables autónomos también para Windows, macOS y Linux desde la plataforma Amiga.