# Hollywood (linguaggio di programmazione)

Hollywood è un linguaggio di programmazione, distribuito commercialmente, sviluppato da Andreas Falkenhahn (Airsoft Softwair) orientato prevalentemente allo sviluppo di applicazioni multimediali. Hollywood è disponibile per AmigaOS, MorphOS, WarpOS, AROS, Windows, macOS, Linux, iOS e Android (solo come player). Hollywood ha al suo interno un cross compiler che può automaticamente compilare eseguibili per tutte le piattaforme supportate. Gli eseguibili così compilati sono completamente autosufficienti e non hanno bisogno di alcuna dipendenza esterna, così possono anche essere eseguiti da una penna USB. Un componente aggiuntivo permette anche di compilare e creare pacchetti APK dai propri progetti.
Hollywood Designer è un add-on di Hollywood con il quale è possibile utilizzare Hollywood come un programma di authoring.

## Storia

Hollywood ha le sue origini sui computer Amiga. Ispirato da altri linguaggi di programmazione su Amiga come AMOS, Blitz BASIC, e Amiga E, Andreas Falkenhahn, l'autore di Hollywood, iniziò lo sviluppo di Hollywood nella primavera del 2002 dopo aver finito i suoi esami. La versione 1.0 del software fu commercializzata nel novembre del 2002, ma solamente per i sistemi Amiga basati su processori della famiglia 68000. Un mese dopo, fu distribuita una versione nativa per i sistemi MorphOS basati su processori PowerPC. Il supporto per WarpOS fu introdotto a partire da Hollywood 1.9, commercializzato nella primavera del 2004 insieme alla prima versione di Hollywood Designer. AmigaOS 4 è supportato dal marzo del 2005. A partire dalla versione 2.0 (distribuita nel gennaio del 2006), Hollywood utilizza il linguaggio di programmazione Lua come sua virtual machine, ma con modifiche rilevanti alla sua sintassi e funzionamento. A partire dalla versione 3.0 (Gennaio 2008), Hollywood per la prima volta gira anche su due sistemi operativi non ispirati ad AmigaOS: Microsoft Windows e macOS. Dalla versione 4.5 (Gennaio 2010) Hollywood è disponibile con un sistema integrato di sviluppo(IDE) su Windows. Dalla versione 4.8 (Aprile 2011) Hollywood può anche compilare eseguibili per Linux. Hollywood 5.0 fu distribuita nel febbraio del 2012 e introdusse il supporto per la riproduzione dei filmati e la grafica vettoriale come SVG. A partire dalla versione 5.2 Hollywood supporta anche Android. Con la distribuzione della versione 6 Hollywood gira nativamente anche su macOS e Linux. Hollywood 7.0 è stato rilasciato a Marzo 2017 e introduce il supporto Unicode e il supporto per le architetture a 64-bit.

## Informazioni Generali

Lo scopo principale di Hollywood è essere facile da utilizzare e la sua indipendenza dalle piattaforme. È stato principalmente sviluppato tenendo a mente la creazione di videogiochi e le applicazioni multimediali.Il linguaggio comprende circa 900 comandi che si occupano delle seguenti aree di utilizzo: grafica 2D, audio, operazioni per gestire il FileSystem, output di testo, animazioni, sprites, layers, effetti di transizione, manipolazione delle immagini, salvataggio di file audio e file video, funzioni per gestire ora e data, funzioni di input (tastiera, joystick, mouse) e ancora funzioni matematiche e manipolazione di stringhe. Programmare in Hollywood è possibile nei cosiddetti Hollywood scripts (che utilizzano file extension *.hws). Questi scripts sono compilati dinamicamente e possono essere convertiti in programmi indipendenti. Tutti i programmi scritti in Hollywood funzionano all'interno di una sandbox, che fa sì che questi non possano bloccarsi.

### Indipendenza Hardware

Hollywood è stato sviluppato tenendo a mente che questo fosse completamente indipendente dalla piattaforma sulla quale girasse. Così, gli script non possono chiamare nessuna funzione delle API del sistema operativo sul quale girano direttamente e sono limitati al set di comandi disponibile in Hollywood. Anche l'output di testo è implementato con un sistema indipendente dalla piattaforma che fa si che i testi TrueType siano renderizzati esattamente alla stessa maniera su ogni hardware. Inoltre, tutte le versioni di Hollywood supportano i tipi di file specifici di Amiga tipo immagini IFF ILBM, suoni IFF 8SVX, o file IFF ANIM, per essere completamente compatibile con gli script scritti sui sistemi Amiga.

### Programmazione GUI

Esistono diversi toolkit che permettono di creare interfacce grafiche (GUI) per Hollywood. RapaGUI è un plugin cross-platform per Hollywood che supporta Windows, macOS, Linux e AmigaOS. RapaGUI utilizza i controlli della GUI nativa forniti dai rispettivi sistemi operativi, in questo modo tutte le applicazioni sviluppate con RapaGUI avranno il medesimo aspetto della GUI del sistema operativo sul quale vengono eseguite. MUI Royale è un altro strumento di sviluppo per Hollywood che può essere utilizzato per creare interfacce grafiche utilizzando Magic User Interface. Un altro toolkit per lo sviluppo delle GUI è HGui. A differenza di RapaGUI e MUI Royale, HGui gestisce i suoi controlli interamente da sola il che fa si che le interfacce grafiche generate siano esattamente identiche a prescindere dal sistema ioerativo su cui girano le applicazioni. HGui utilizza solo i comandi messi a disposizione da Hollywood il che la rende compatibile con ogni sistema operativo senza bisogno di componenti esterni.

### Compilatore

Una funzionalità speciale del compilatore multipiattaforma distribuito con Hollywood è l'abilità di poter includere automaticamente tutti i files esterni (inclusi i fonts) nell'eseguibile che viene compilato. Questo dà la possibilità di creare programmi composti da un unico file così da essere estremamente portatili e distribuiti. Addizionalmente, il compilatore di Hollywood può compilare gli scripts di Hollywood in applets (usando l'estensione *.hwa). Queste applets sono più piccole dei programmi Hollywood standard, Ma possono essere utilizzate solamente nei sistemi che hanno Hollywood installato. Infine, è possibile esportare gli script creati con Hollywood come filmati AVI.

## Ambiente di sviluppo

Per le versioni Amiga-like di Hollywood non c'è un IDE. Su questi sistemi si può utilizzare Cubic IDE o Codebench per sviluppare con Hollywood dato che questi hanno il supporto agli scripts Hollywood tramite plugins. Su Windows, Hollywood viene fornito con un sistema di sviluppo integrato che può essere utilizzato per creare gli script di Hollywood.

## Hello World con Hollywood

Un classico programma Hello world in Hollywood potrebbe essere scritto così:
Il codice qui sopra apre una nuova finestra sul desktop, scrive il testo "Hello World!" e aspetta il tasto sinistro del mouse prima di essere terminato. L'apertura della finestra è automatica da parte di Hollywood. Se non richiesto differentemente, Hollywood aprirà automaticamente una finestra nella risoluzione di 640x480 per ogni script.

## Hollywood Designer

Hollywood Designer è un add-on per Hollywood che permette la creazione di presentazioni e programmi per chioschi interattivi con Hollywood. Questo software utilizza un editor WYSIWYG basato sugli slides. Gli utenti posso creare quanti slide desiderano e riempirli con testo, grafica, e suoni. Hollywood Designer poi farà girare gli slides uno dopo l'altro oppure in un ordine predefinito. Sono presenti vari effetti di transizione. È anche possibile creare applicazioni interattive, come nei chioschi interattivi.
Tutti i progetti creati con Hollywood Designer sono visualizzati utilizzando Hollywood e per questo possono essere compilati come eseguibili a sé stanti oppure video. Gli utenti avanzati possono anche inserire codice proprietario all'interno dei propri progetti. Perciò con il codice proprietario si può accedere al completo set di comandi messo a disposizione da Hollywood.
Tecnicamente parlando, Hollywood Designer non fa altro che generare script da far funzionare con Hollywood in base al layout definito nella GUI. Il processo di creare script e farli funzionare tramite Hollywood è completamente nascosto all'utente per cui non è necessaria alcuna capacità nella programmazione per utilizzare Hollywood Designer. Comunque, dato che Hollywood Designer non fa altro che generare script per Hollywood, quest'ultimo è necessario per poter utilizzare Hollywood Designer.
La prima versione di Hollywood Designer è stata commercializzata nell'aprile del 2004. Al momento, il software è solamente disponibile per i computer Amiga e compatibili. Però, grazie al cross-compiler di Hollywood, può salvare eseguibili avviabili su Windows, macOS e Linux.