# Hollywood (langage)

Hollywood est un langage de programmation commercial développé par Andreas Falkenhahn (Airsoft Softwair) qui se concentre sur la création d'applications orientées multimédia. Hollywood est disponible pour AmigaOS, MorphOS, WarpOS, AROS, Windows, Linux, macOS, iOS et Android.
Hollywood possède un compilateur croisé (en anglais Cross Compiler) intégré qui peut enregistrer automatiquement des exécutables pour toutes les plateformes supportées par le logiciel. Les exécutables générés fonctionnent de façon indépendante du système et sans aucune dépendance externe. Ils peuvent donc être utilisées directement depuis une clé USB. Une extension logicielle permet aussi de compiler des projets en fichiers APK (Android Application Package).
Le logiciel Hollywood Designer est un module supplémentaire pour Hollywood avec lequel il est possible d'utiliser Hollywood comme un logiciel de présentation.

## Historique

Hollywood a débuté sur ordinateur Amiga. Il est inspiré par des langages de programmation sur Amiga tels que AMOS, Blitz Basic, et Amiga E. L'auteur d'Hollywood Andreas Falkenhahn a commencé le développement de Hollywood au printemps 2002. La version 1.0 du logiciel est sortie en novembre 2002, mais seulement pour les systèmes Amiga basés sur 68000. Un mois plus tard, une version native pour le système MorphOS a suivi. Le support de WarpOS a été ajouté à partir de Hollywood qui est sorti au printemps 2004 en même temps que la première version de Hollywood Designer qui permet la création de présentations avec Hollywood. AmigaOS 4 est supporté depuis mars 2005. À partir de la version 2.0 (sortie en janvier 2006), Hollywood utilise le langage de programmation Lua en tant que sa machine virtuelle, mais avec plusieurs modifications dans sa syntaxe et ses fonctionnalités. À partir de la version 3.0 (janvier 2008), Hollywood fonctionne sur deux systèmes d'exploitation non typés Amiga : Windows et macOS. Depuis la version 4.5 (janvier 2010) Hollywood est disponible avec un environnement de développement intégré sur Windows. La version 4.7 sortie en avril 2010 est encore plus indépendante de la plateforme sur laquelle l'application tourne. Depuis la version 4.8 (avril 2011) Hollywood peut aussi compiler les exécutables pour Linux. Hollywood 5.0 a été publié en février 2012 et introduit le support pour la lecture vidéo et le support pour les formats vectorielles, tels que le SVG. Depuis la version 5.2 Hollywood prend également en charge le support de Android. Hollywood 6.0 a été publié en Février 2015 et introduit un support pour la programmation OpenGL via une extension dédiée ainsi qu'un support pour le Raspberry Pi. Hollywood 7.0 a été publié en Mars 2017 et introduit le support des caractères Unicode et des architectures 64 bits.

## Introduction

Le but principal de Hollywood est la simplicité d'utilisation et aucune dépendance de la plateforme. Il a été développé principalement pour la création d'applications multimédia et de jeux. Le langage comprend environ 900 commandes dans les champs d'application : graphisme 2D, son, accès au système de fichiers, affichage de texte, animations, affichage de sprites, layers, effets de transition, manipulation d'images, enregistrement d'images et de fichiers vidéo… La programmation en Hollywood se fait via des scripts Hollywood (extension *.hws). Ces scripts sont compilés dynamiquement et peuvent être convertis en exécutables autonomes. Tous les programmes Hollywood fonctionnent dans une Sandbox qui permet de ne jamais planter le système.

### Indépendance à la plateforme

Hollywood a été conçu comme un langage de programmation totalement indépendant de la plateforme. De ce fait, les scripts ne peuvent pas appeler directement une fonction de l'API du système d'exploitation hôte et ils sont limités à la liste des commandes du langage. Même le rendu de texte est implémenté à travers un système de rendu de police complètement indépendant du système hôte. Cela permet à du texte en TrueType d'être visuellement identique sur toutes les plateformes. De plus, toutes les versions de Hollywood gèrent les formats de fichier spécifiques Amiga comme les images IFF ILBM, les sons IFF 8SVX, ou les fichiers IFF ANIM pour être entièrement compatibles avec les scripts écrits sur système Amiga.

### Développement d'Interface Graphique

Il y a plusieurs boîtes à outils de développement d'Interface Graphique pour Hollywood. RapaGUI est une extension graphique multi-plateforme pour Hollywood qui supporte Windows, macOS, Linux, et AmigaOS. RapaGUI utilise les contrôles graphiques natifs fournis par chacun des systèmes d'exploitation respectifs, ce qui donne aux applications RapaGUI une allure d'application native dans leur présentation et leur mode de fonctionnement. MUI Royale est une boîte à outils de développement d'interface graphique pour Hollywood qui peut être utilisée pour créer des interfaces graphiques utilisant l'Interface Utilisateur Magique. Une autre boîte à outils de développement d'interface graphique pour Hollywood est HGui. Au contraire de RapaGUI et MUI Royale, HGui dessine ses contrôles graphiques elle-même, de sorte que ces derniers apparaissent exactement de la même manière sur toutes les plateformes.

### Compilateur

Une fonction intéressante du compilateur croisé (en anglais Cross Compiler) livré avec Hollywood est la possibilité d'inclure tous les fichiers externes (dont les polices) dans l'exécutable généré. Il est alors possible de créer des programmes qui auront la forme d'un unique fichier exécutable, qui sera ainsi facilement transportable et distribué. De plus le compilateur de Hollywood peut compiler des scripts sous forme d'applets Hollywood (avec une extension de fichier *.hwa). Ces applets sont plus petits que des programmes Hollywood correspondants mais peuvent être utilisés uniquement sur des systèmes où Hollywood est installé. Il est aussi possible d'exporter des scripts Hollywood en fichier AVI.

## Environnements de développement

Il n'y a pas d'environnement de développement intégré pour la version AmigaOS de Hollywood. Sur ces systèmes, il est possible d'utiliser un IDE tel que Cubic IDE ou Codebench qui permettent le développement en Hollywood grâce à des plugins. Sur Windows, Hollywood est disponible avec son propre IDE$^,$.

## Un programme Hello World

Un programme Hello World en Hollywood s'écrit comme ceci :
Ce code source ouvre une nouvelle fenêtre sur le bureau, affiche le texte « Hello World! » et attend qu'on presse le bouton gauche de la souris avant de quitter. L'ouverture de la fenêtre est faite automatiquement par Hollywood.

## Hollywood Designer

L'application Hollywood Designer est un logiciel supplémentaire qui permet la création de présentations informatives ou des applications interactives avec Hollywood. Ce logiciel utilise une interface WYSIWYG basée sur le principe des pages. Il est possible de créer autant de pages que désiré en utilisant du texte, des images ou des sons. Hollywood Designer pourra afficher les pages dans l'ordre séquentiel ou un ordre différent. Plusieurs effets de transition sont disponibles. Il est aussi possible de créer des applications qui nécessitent une interaction avec l'utilisateur comme pour des bornes interactives.
Tous les projets créés avec Hollywood Designer peuvent être visualisés avec Hollywood et peuvent donc être compilés en exécutables indépendants ou en fichier AVI. Les utilisateurs avancés peuvent aussi importer leur propre code dans un projet. Au travers de tels ajouts de code, il est possible d'accéder à toutes les commandes de Hollywood.
Techniquement parlant, Hollywood Designer ne fait que donner à Hollywood des scripts construits à partir des actions de l'utilisateur dans l'interface graphique GUI. Ce processus de générer des scripts et de les exécuter par Hollywood est entièrement transparent pour l'utilisateur. Ce qui fait qu'aucune connaissance de la programmation n'est nécessaire pour utiliser Hollywood Designer.