The power of multi-tasking was taken a step further by the introduction of the Arexx scripting language. Rexx was originally
developed by IBM to allow communication between computers, and Arexx is a derivative of that for the
Amiga which enables communication between applications using the Amiga's Operating System.
Rather than every application having to be all things to all people, Arexx enables
multiple applications, each with their own particular strengths, to be used together in an
almost seamless manner, using the power of pre-emptive multi-tasking. In addition, Arexx
can also be used to simply tell an application what to do, just as though the commands
were coming from another program, and this technique is used by many applications to
create templates etc, under the guise of "Genies", "Wizards",
"Magic Wands" or some other intriguing name.
The Arexx programming language can act as a central hub through which applications, even those created by different companies,
can exchange data and commands. For example, using Arexx it is possible to dial an electronic
bulletin board, download a specific file of financial data from the bulletin board, and
then automatically pass the data to a spreadsheet program for statistical analysis, all
without user intervention.
Arexx is supported on all Amiga hardware configurations and was initially released as shareware. Beginning with the release
Amiga Workbench 2.0, Arexx has been integrated into the Amiga OS. In addition to pre-emptive
multi-tasking, it also utilises another Amiga Operating System feature called
Inter-Process Communication (IPC). IPC enables the exchange of information between
applications using named message ports. Each message port has a name and sending a message
to an application requires the use of the port's name in the Arexx script. In this way any
number of applications can interact with one another, but they must all be Arexx
Features of the Arexx programming language are:
- Typeless Data - Data is treated as individual character strings and variable values are undeclared.
- Interpreted Execution - The read-and -execute ability of Arexx skips the extra step of program compilation, although compilers are available.
- Automatic Resource Management - Automatic internal memory allocation removes unnecessary strings and data.
- Tracing, Trapping and Debugging - Tracing and trapping permit handling of errors that would normally abort the
program. The debugging facilities allow you to view your entire program, reducing development and testing time.
- Function Libraries - External function libraries provide extended, pre-programmed functions.