The Amiga is a true multitasking system with three built-in interfaces:
- a graphic user interface (GUI);
- a command line interface [CLI] (the Shell);
- a scripting language that can handle inter-process communication (ARexx).
Of these three interfaces, the GUI dominates. By default, the Amiga presents the user with a graphic interface, Workbench, upon startup. Likewise, even a simple Amiga application will generally present a graphic interface of some sort; text editors, for instance, usually include mouse-driven gadgets and menus.
The GUI is the Amiga's default interface.
In addition to the GUI, users can control the Amiga through the Shell. The Shell is a text-based interface that preserves the best features of the "old way" of operating computers - by typing in commands. The Shell trades the GUI's ease of use for a finer level of control and greater power.
With Release 2 of the operating system came a third way of interfacing with the Amiga: inter-process communication (IPC) via ARexx. Simply put, ARexx is a scripting language, but it also acts as a central hub which applications can use to send data and commands to each other. ARexx allows software created by different companies to interface, letting the user create custom applications by integrating off-the-shelf software products. For example, with ARexx it is possible to set up a telcommunications package to dial an electronic bulletin board, download financial data, and then pass that data to a separate spreadsheet package for statistical analysis - without user intevention other than the original scripting. Arexx is based on REXX, an IPC language used in various forms across many platforms.
Support all three of the Amiga's interfaces.
Many users consider the choice of interface to be one of the best features of the Amiga. Not only does it offer the user the freedom to choose his favourite means of interacting with the Amiga and with your program, it's also an effective way to provide the right tool for the job and user's level of expertise. For these reasons, your application should support all three interfaces in the manner described in this manual.