Few now have heard of APL. In its heyday, it was one of IBM’s Big Things – big on mainframes, and one of the first programming languages to be ported to run on the IBM PC. As a programming language, it earned itself a fearsome reputation: ‘written backwards and all in Greek’, ‘write-only code’, and worse.
This week, the major vendors of APL for Macs for the last thirty or so years have finally bowed out of the market. MicroAPL’s APLX product is now deceased. Thankfully it is not the only APL offering for OS X: I will write a little about Dyalog’s fine successor product below.
APL stands for A Programming Language, the title of a seminal book by mathematician Ken Iverson (1920-2004) published in 1962, a copy of which is within a few centimetres of my head (I still have faith in learning by osmosis!). Although the book did not define the language as such, it set out its mathematical basis, and was the blueprint for much of its concepts and notation.
If you think that Larry Wall’s perl language is terse, cryptic and opaque, then APL is a mathematician’s delight which is even terser, uses Greek and many custom symbols, and generally incomprehensible. Lines are written and read from right to left, and it is possible to compute the sum of squares over a vector using just three single character operators, as
for example. Even fast Fourier transforms can be coded in just a couple of lines.
APL was far more capable than just being a mathematical programming language, and in the early 1970s was used extensively for general programming work, such as writing email systems. When Apple brought the early Macs out, it was only logical that they too should have the benefit of an implementation of APL. This was developed by Richard Nabavi and his colleagues at MicroAPL from an interpreter first written by Phil Van Cleave in 1980, and sold as APL.68000 (the Mac being based then on Motorola’s 68000 processor).
In the Mac’s graphical interface, it was only fair that APL programmers should be given access to that interface, and APL.68000 gained menus, alerts, dialogs, and window-based graphics which became increasingly sophisticated. As Macs used progressively more powerful processors, APL.68000 became increasingly capable of running large programs such as simulators. MicroAPL also sold implementations for the Commodore Amiga, Atari, and some higher-end computers based on Motorola processors.
MicroAPL’s developers also opened up a new line of business with their porting tools, which now include the Relogix™ assembler-to-C translator, assembler translators, the Mimic/68K™ virtual machine, and more, and those are taking the company on into the future.
In 2002, APL.68000 was succeeded by APLX, a new cross-platform APL implementation for OS X, Windows, and Linux. Sadly its maintenance is no longer viable, and this month MicroAPL has cut it loose, making it freely available, but unsupported.
This is not, though, the end of the line for APL on the Mac. Dyalog has a very mature APL development environment which has recently migrated to OS X, and is now offering version 15 free of charge for personal, educational, and non-commercial use.
I have not had much time to explore Dyalog APL running on my iMac and El Capitan yet, but what I have seen so far is very impressive: extensive features and functionality set into a very comfortable OS X integrated development environment. I will be looking further at Dyalog APL on OS X, and will report back in future articles.
Wikipedia has quite a comprehensive history of APL.
Thank you to Richard Nabavi and all those staff who made APL.68000 and APLX such wonderful products. I wish you well in the future.