AREXX (on the Amiga) and IBM and OS/2

It turns out there’s a connection between the Amiga and OS/2. It seems Commodore got a license from IBM, for REXX (or AREXX), by trading rights to elements of the Amiga user interface.

Here’s the Workplace Shell from OS/2 version 2:
Screenshot showing OS/2 GUI. There's one window, labelled OS/2 System - Icon View with a green/blue title bar with white text. There's a gadget to the left of the bar with a hollow black circle in a grey square. There's a pair of gadgets to the right, one has a hollow black square the other has a broken square showing just the corners. There's a one pixel surround to the gadgets which gives a very shallow 3D relief. There are icons in this window, for System Setup and Drives and also folder icons. The window has a pale yellow surround which has shallow 3D relief but no corner or edge gadgets for resizing.

I found a couple of sites about OS/2 history which contain some info. The image above is from this first one:

OS/2 2.0 was released in April of 1992 (the same month as Windows 3.1) … This was a 32 bit, protected mode, multi-threaded, preemptively multitasking operating system with paged virtual memory capable of running software for OS/2, for Windows 3.0, and for DOS (version 5). … The Workplace Shell was a major improvement over the Presentation Manager of the prior release, and this GUI involved a small deal with Commodore for parts of the look and feel of the system. In return for some of Commodore’s design, Commodore received a license for REXX which was seen in AmigaDOS 2.0.

And from OS/2 Warp History (which has further links within):

With Microsoft no longer doing development on the user interface, IBM was faced with creating this themselves. In this timeframe, a deal was made with Commodore. Commodore licensed IBM’s REXX scripting language for inclusion in their AmigaOS, and IBM took many GUI design ideas from the AmigaOS for their new GUI.

In the linked David Both’s History of OS/2 page we read:

REXX also appeared for the first time in OS/2 1.20 Extended Edition. REXX is a very powerful interpretive programming language which can be used for writing a complete application or as an extended batch language. I use REXX quite frequently to write everything from quick and dirty programs to do something one time, to very large, sophisticated programs which I use constantly.

I’m thinking REXX perhaps filled the niche which Basic filled in earlier microcomputers?

I posted on Mastodon about it here where [chexum] notes:

ARexx was around as an independent product by Bill Hawes since the Kickstart 1.x times, not as a Commodore/Amiga project. Although at the time ARexx was indeed coming around as the best thing since sliced bread, so maybe it indeed was desirable enough to discuss it with IBM

More on the Workplace Shell (WPS) on OS/2 World:
The WorkPlace Shell, A Powerful Jewel of OS/2 and eComStation. Part 1: Some Background


It sort of did, but on the Amiga it was more than that; perhaps more like AppleScript. Many applications exposed ARexx functionality that could be invoked externally. This let GUI applications be scripted together by taking data or input from one application and passing it to another via a REXX script.


Elb is right, although I am not familiar with AppleScript. Basically, it was like a universal version of macro scripting, allowing you to automate various processes involving multiple applications.

Back then in 1987, most home computers were not multi-tasking, but the Amiga did have pre-emptive multitasking from the start. As such, it was possible to have multiple applications running at the same time, and ARexx made it possible to script processes coordinating them together. Very powerful stuff, and one of the things that made the Amiga a lot more powerful than just the sum of its parts.


Was it also possible to write little amusing programs with AREXX, like number-guessing, lunar landing, hunt the wumpus?

It would have been possible, but I don’t remember there being many of them around. I have a feeling that Amiga users might’ve felt such things beneath their mighty computers, or maybe just too old to be interesting. Happy to be wrong, though.

Before AmigaDOS 2.0 was launched in 1990, ARexx was a separate commercial product, so not everyone had it. It was mostly sold as an interfacing/automation tool, even though it was a powerful scripting language. There were quite complicated applications written entirely in ARexx: I remember a BBS system that ran on top of a terminal emulator program, the whole set of BBS functions being written in ARexx sending commands to the serial port. But I don’t remember ARexx being pitched as a “hey, cool programming language inside!” product at all.

Commodore weren’t very good at supporting new programmers in the Amiga days. Unless you were willing to buy the full set of technical manuals and a copy of Lattice C, Commodore wasn’t there for you. AmigaBASIC was a (slow, buggy) precursor to QBasic. While there were some quite decent free language compilers, you couldn’t get the system include files to make them useful. The only programming system I ever saw Commodore (UK) get remotely excited about was The Emulator, a somewhat compatible BBC Micro emulator. For a while, they were selling Amiga A500s + The Emulator to schools for less than Acorn could sell the BBC Micro.


Considering the Amiga OS shipped with its own shell scripting language, obviously ARexx would have been sold based on what it could do that you couldn’t already do with the built in scripting language.

While in theory you could write a number-guessing game or classic Hunt the Wumpus, it’d be like doing that in a Unix shell script, or even DOS BAT script. Yeah, you COULD do it, but it’d be a pretty crummy experience for both the programmer and the user (who, indeed, would generally be the same person - so a double whammy of meh).

I notice there’s a SAY and PULL which seem to correspond to Basic’s PRINT and INPUT, so that’s enough for a lunar lander, I think. I don’t see anything which would put up even a simple gui - so it’s like TCL without Tk, in that sense, or like an early Basic compared to one with MOVE, DRAW, PLOT and POINT.

So, yes, it’s a scripting language with the intent to connect applications in useful ways, but it looks like it should also work as a rudimentary text-in and text-out Basic.

The Amiga terminal did understand some ANSI escape codes, though, so you could do cursor movement and character styles. But no pixel graphics.


I’ve worked in AppleScript. From what I’ve seen of ARexx on the Amiga, it looks like an analogous tool. AppleScript has access to some basic widgets it can run itself. I’ve been able to write a simple app. in AppleScript. I only wish it was more powerful. I don’t think it would be possible to write complex apps. in it. It was really designed as a scripting/extension tool for existing apps.

As an example, before I found out about Alfred, I wrote my own search automator tool in AppleScript, where I could select a search engine from a listbox, and type my search into a textbox. It would launch a tab in my browser, and send it the query to the URL, and bring up the results page. I could also bring it up using a shortcut (a key combination) from anywhere, using a small Automator workflow. So, it worked pretty similar to Alfred, but it was a bit more clunky.

1 Like