Hollywood (programming language)

Last updated
Hollywood
Developer(s) Andreas Falkenhahn
Initial releaseNovember 2002;20 years ago (2002-11)
Stable release
10 / February 25, 2023;6 months ago (2023-02-25) [1]
Operating system AmigaOS, MorphOS, WarpOS, AROS, Windows. macOS, Linux, Android, iOS
Type Programming language
License Proprietary
Website www.hollywood-mal.com

Hollywood is a commercially distributed programming language developed by Andreas Falkenhahn (Airsoft Softwair) which mainly focuses on the creation of multimedia-oriented applications. Hollywood is available for AmigaOS, MorphOS, WarpOS, AROS, Windows, macOS, Linux, Android, and iOS. Hollywood has an inbuilt cross compiler that can automatically save executables for all platforms supported by the software. The generated executables are completely stand-alone and do not have any external dependencies, so they can also be started from a USB flash drive. An optional add-on also allows users to compile projects into APK files. [2]

Contents

The Hollywood Designer is an add-on for Hollywood with which it is possible to use Hollywood also as a presentation software and an authoring system.

History

Hollywood has its roots on the Amiga computer. Inspired by Amiga programming languages like AMOS, Blitz BASIC, and Amiga E, Hollywood author Andreas Falkenhahn began development of Hollywood in Spring 2002 after finishing his A-levels. [3] Version 1.0 of the software was released in November 2002, but only for 68000-based Amiga systems. A month later, a native version for the PowerPC-based MorphOS followed. [4] Support for WarpOS was introduced with Hollywood 1.9 which appeared in Spring 2004 together with the first release of the Hollywood Designer, a tool which can be used to create presentations with Hollywood. AmigaOS 4 is supported since March 2005. Starting with version 2.0 (released in January 2006), Hollywood is using the Lua programming language as its virtual machine, but with significant modifications in syntax and functionality. [5] Starting with version 3.0 (January 2008), Hollywood for the first time also runs on two non Amiga inspired operating systems: Microsoft Windows and macOS. Since version 4.5 (January 2010) Hollywood is also available with an integrated development environment on Windows. Since version 4.8 (April 2011) Hollywood can also compile executables for Linux. Hollywood 5.0 was released in February 2012 and introduces support for video playback and vector image formats like SVG. Starting with version 5.2 Hollywood also supports Android. Hollywood 6.0 was released in February 2015 and introduces support for OpenGL programming via a dedicated plugin as well as support for the Raspberry Pi. Hollywood 7.0 was released in March 2017 and introduces Unicode support and support for 64-bit architectures. [6]

General information

Hollywood's focus is on ease of use and platform independence. It was mainly designed for the creation of games and multimedia applications. The language set comprises roughly 900 different commands from the following fields of application: 2D graphics, sound, file system operations, text output, animations, sprites, layers, transition effects, image manipulation, saving of images and video files, time and date functions, input functions (keyboard, joystick, mouse) as well as mathematical operations and string functions. Programming in Hollywood is done via so called Hollywood scripts (using the file extension *.hws). These scripts are compiled dynamically and can be converted into stand-alone executables. All Hollywood programs run inside a sandbox, which makes it impossible for them to crash. [7]

Platform independence

Hollywood was designed to be a completely platform independent programming language. Thus, scripts cannot call any API functions of the host operating system directly and are limited to the inbuilt command set. Text rendering is also implemented via a platform independent font backend that ensures that TrueType text looks exactly the same on every platform. Furthermore, all versions of Hollywood support Amiga specific file formats like IFF ILBM images, IFF 8SVX sounds, or IFF ANIM files, to be fully compatible with scripts written on an Amiga system. [8]

GUI development

There are several GUI toolkits for Hollywood. RapaGUI is a cross-platform GUI plugin for Hollywood which supports Windows, macOS, Linux, and AmigaOS. RapaGUI uses native GUI controls provided by the respective host operating system giving all RapaGUI applications a native look and feel. MUI Royale is a GUI toolkit for Hollywood which can be used to create GUIs using the Magic User Interface. Another GUI toolkit for Hollywood is HGui. [9] In contrast to RapaGUI and MUI Royale, HGui draws its GUI controls itself which makes its graphical user interfaces look exactly the same on every platform.

Compiler

A special feature of the cross-platform compiler that comes with Hollywood is the ability to link all external files (including fonts) into the executable to be built automatically. This makes it possible to create programs which consist only of a single file and can thus be easily transported and distributed. Additionally, the Hollywood compiler can compile scripts into Hollywood applets (using the file extension *.hwa). These applets are smaller than regular Hollywood programs, but they can only be started on systems that have Hollywood installed. Finally, it is also possible to export Hollywood scripts as AVI videos. [10]

Development environment

There is no integrated development environment for the Amiga-compatible version of Hollywood. On these systems, Cubic IDE and Codebench can be used to develop with Hollywood as these have support for the Hollywood language through plugins. [11] [12] On Windows, Hollywood comes with an integrated development environment that can be used to create Hollywood scripts. The macOS and Linux versions of Hollywood do not come with an IDE either and can be controlled from the console or else integrated into other IDEs.

Hello World program

A Hello World program in Hollywood could look like this:

  Print("Hello World!")   WaitLeftMouse   End

The code above opens a new window on the desktop, prints the text "Hello World!" in white letters and waits for the left mouse button before quitting. The opening of the window is automatically done by Hollywood. If not otherwise requested, Hollywood will automatically open a new window in the resolution of 640x480 for every script.

Hollywood Designer

Hollywood Designer
Developer(s) Andreas Falkenhahn
Stable release
6.0 / May 16, 2022;15 months ago (2022-05-16)
Operating system AmigaOS, MorphOS, WarpOS, AROS
Type Presentation
License Proprietary
Website www.hollywood-mal.com

The Hollywood Designer is an add-on for Hollywood that allows the creation of presentations and kiosk systems with Hollywood. The software uses a WYSIWYG-compliant interface based on slides. Users can create as many slides as desired and fill them with texts, graphics, and sound. Hollywood Designer will then run the slides one after another or in a predefined order. Various transition effects are available. Additionally, it is possible to create applications which require user interaction, like kiosk systems. [13] [14]

All projects created in Hollywood Designer are displayed using Hollywood and can thus also be compiled into stand-alone executables or video files. Advanced users can also embed custom code inside their projects. Through custom code it is possible to access the complete command set of Hollywood. [15]

Technically speaking, Hollywood Designer does nothing else but automatically generate scripts for Hollywood according to the layout defined by the user in the GUI. [16] The process of generating scripts and running them using Hollywood is entirely hidden from the user so that programming skills are not necessary for using Hollywood Designer. [17] However, because Hollywood Designer merely generates scripts for Hollywood, the latter is a mandatory requirement for Hollywood Designer.

The first version of Hollywood Designer was released in April 2004. [18] Currently, the software is only available for Amiga compatible operating systems. However, thanks to the Hollywood cross-compiler, it can also save stand-alone executables for Windows, macOS and Linux from the Amiga platform.

Related Research Articles

<span class="mw-page-title-main">Blitz BASIC</span>

Blitz BASIC is the programming language dialect of the first Blitz compilers, devised by New Zealand-based developer Mark Sibly. Being derived from BASIC, Blitz syntax was designed to be easy to pick up for beginners first learning to program. The languages are game-programming oriented but are often found general purpose enough to be used for most types of application. The Blitz language evolved as new products were released, with recent incarnations offering support for more advanced programming techniques such as object-orientation and multithreading. This led to the languages losing their BASIC moniker in later years.

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

<span class="mw-page-title-main">Liberty BASIC</span>

Liberty BASIC (LB) is a commercial computer programming language and integrated development environment (IDE). It has an interpreter, developed in Smalltalk, which recognizes its own dialect of the BASIC programming language. It runs on 16- and 32-bit Windows and OS/2.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A computing platform or digital platform or software platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed with it. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

wxWidgets Widget toolkit

wxWidgets is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes. A wide choice of compilers and other tools to use with wxWidgets facilitates development of sophisticated applications. wxWidgets supports a comprehensive range of popular operating systems and graphical libraries, both proprietary and free, and is widely deployed in prominent organizations.

A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross compiler.

<span class="mw-page-title-main">Delphi (software)</span> General-purpose programming language and a software product

Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.

<span class="mw-page-title-main">Free Pascal</span> Free compiler and IDE for Pascal and ObjectPascal

Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, with exception clauses that allow static linking against its runtime libraries and packages for any purpose in combination with any other software license.

<span class="mw-page-title-main">Lazarus (software)</span> Free cross-platform integrated development environment for Free Pascal

Lazarus is a free, cross-platform, integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler. Its goal is to provide an easy-to-use development environment for programmers developing with the Object Pascal language, which is as close as possible to Delphi.

<span class="mw-page-title-main">Code::Blocks</span> Free and open source, cross-platform IDE

Code::Blocks is a free, open-source cross-platform IDE that supports multiple compilers including GCC, Clang and Visual C++. It is developed in C++ using wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities and features are defined by the provided plugins. Currently, Code::Blocks is oriented towards C, C++, and Fortran. It has a custom build system and optional Make support.

<span class="mw-page-title-main">Adobe AIR</span> Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

<span class="mw-page-title-main">MonoDevelop</span> Integrated development environment

MonoDevelop was an open-source integrated development environment for Linux, macOS, and Windows. Its primary focus is development of projects that use Mono and .NET Framework. MonoDevelop integrates features similar to those of NetBeans and Microsoft Visual Studio, such as automatic code completion, source control, a graphical user interface (GUI) and Web designer. MonoDevelop integrates a Gtk# GUI designer called Stetic. It supports Boo, C, C++, C#, CIL, D, F#, Java, Oxygene, Vala, JavaScript, TypeScript and Visual Basic.NET. Although there is no word from the developers that is has been discontinued, nonetheless it hasn't been updated in 4 years and is no longer installable on major operating systems, such as Ubuntu 22.04 and above. Its parent Microsoft, seems to have shifted focus to Visual Studio Code and the .NET Framework, which runs on many operating systems, including Linux.

Amiga support and maintenance software performs service functions such as formatting media for a specific filesystem, diagnosing failures that occur on formatted media, data recovery after media failure, and installation of new software for the Amiga family of personal computers—as opposed to application software, which performs business, education, and recreation functions.

<span class="mw-page-title-main">AmigaOS</span> Operating system for Amiga computers

AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.

<span class="mw-page-title-main">Qt Creator</span> QT development environment

Qt Creator is a cross-platform C++, JavaScript, Python and QML integrated development environment (IDE) which simplifies GUI application development. It is part of the SDK for the Qt GUI application development framework and uses the Qt API, which encapsulates host OS GUI function calls. It includes a visual debugger and an integrated WYSIWYG GUI layout and forms designer. The editor has features such as syntax highlighting and autocompletion. Qt Creator uses the C++ compiler from the GNU Compiler Collection on Linux. On Windows it can use MinGW or MSVC with the default install and can also use Microsoft Console Debugger when compiled from source code. Clang is also supported.

The following outline is provided as an overview of and topical guide to the Perl programming language:

Absoft Fortran Compilers are set of Fortran compilers for Microsoft Windows, Apple Macintosh, and Linux produced by Absoft Corporation. The compilers are source code compatible across platforms.

References

  1. "Hollywood 10: Xcelicious out now! - Hollywood forums". forums.hollywood-mal.com. Retrieved 2023-09-03.
  2. "Hollywood - Features". Hollywood-mal.com. Retrieved 2016-07-17.
  3. Johnson, Magnus: Interview with Andreas Falkenhahn. Total Amiga 21 (2005), pp. 14-15.
  4. Schaefer, Robbie: Hollywood Multimedia. AMIGAplus 132 (2003), pp. 24-26.
  5. "Lua: user projects". Inf.puc-rio.br. 2003-01-07. Retrieved 2016-07-17.
  6. "Hollywood - Multimedia Application Layer". Hollywood-mal.com. Retrieved 2016-07-17.
  7. Preinsack, Anton: Interview with Andreas Falkenhahn. Amiga Future 78 (2009), p. 14.
  8. Christoph, Michael: Hollywood 3 on Windows. Amiga Future 71 (2008), pp. 26-27.
  9. "HGui". a-mc.biz. Retrieved 2017-04-01.
  10. Cornelius, Martin: Hollywood 4.5 or Multimedia is back. Amiga Future 83 (2010), pp. 30-31.
  11. "Google Code Archive - Long-term storage for Google Code Project Hosting". Code.google.com. Retrieved 2016-07-17.
  12. "Welcome to the home of CodeBench". Codebench.co.uk. Retrieved 2016-07-17.
  13. "Tannlege / Tannpleier - effektiv informasjon til dine pasienter". Ferrule-media.no. Retrieved 2016-07-17.
  14. "Amiga-based software presented at Nordental 2009". Amiga.org. Archived from the original on 2013-09-21. Retrieved 2016-07-17.
  15. Williams, Robert: Hollywood 1.9 and Designer. Total Amiga 18 (2004), pp. 18-22.
  16. Gutjahr, Christoph: Hollywood 1.9, Malibu and Hollywood Designer. The Triple Dream Factory. AMIGAplus 147 (2004), pp. 44-47.
  17. Williams, Robert: Hollywood 2.0 The Sequel. Total Amiga 23 (2006), pp. 40-42.
  18. Steigerwald, Martin: Multimedia pur. Amiga Magazin 7/2004, pp. 7-9.