Skip to content

Guest Editorial: Now is the Time for APL

Vector 8:4, page 3

APL in perspective user interfaces

Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 3

Is APL dying? On the contrary, APL is alive and kicking and there is every reason to believe that its golden age has yet to come. "Rubbish", I hear you say, "you vendors are paid to sound optimistic; you wouldn't believe the opposition I get when I try to promote APL in my organisation. What possible justification can you have for such a claim?" Well, here is why I think I am right.

In many ways, the position of APL in recent years has been rather like that of Unix. Its adherents know it to be an extremely powerful, productive, and rewarding environment for developing applications. If only they could persuade others to take it seriously! Its critics, on the other hand, see it as arcane, obscure, unfriendly, unnecessarily complex, heavy on machine resources, and, in extreme cases, downright subversive.

Ever since I have been involved in Unix, pundits have been forecasting that NEXT year its growth would suddenly start to increase exponentially. Then, when it has only achieved a modest increase, they point to the year after, and then the year after that. This has often been called Unix's "moving hockey-stick" syndrome. Yet in the last two years the forecasts have come true, and even the most conservative of organisations, the banks, building societies and insurance companies, are moving enthusiastically into Unix. Why has Unix now succeeded after years in the doldrums? The answer I think is twofold. Firstly, thanks to the Reduced Instruction Set Computer (RISC), machines have become VERY much more powerful and dramatically less expensive. Secondly, users are demanding more and more sophisticated man-machine interfaces, which are easy to use, yet difficult to program using conventional software technology.

Let's consider the first of these reasons. Back in the mid '80s when my company first launched Dyalog APL, Unix systems were only marginally faster than personal computers. Indeed I can remember trying to explain to one sceptical customer why APL on a £200,000 1-MIP Vax 780 was no faster than on his £5,000 1-MIP PC. It as hardly surprising therefore, that Unix failed to supplant mainframe computing and was an ineffective competitor for MS-DOS, which is simpler and less power-hungry. Moreover, for many years the growth in performance of the 32-bit Motorola processors, upon which most Unix systems were built, has been matched, and occasionally bettered, by faster and faster Intel chips. The situation has recently changed dramatically, and RISC-based workstations from Sun Microsystems, Digital, IBM and Hewlett Packard have now outstripped PC technology in the race for ever-increasing performance. The differential in terms of floating-point operations, upon which most APL applications depend, is especially wide.

The impact of this technology in the financial trading arena is an interesting pointer. Once upon a time, dealing systems were entirely mainframe-based. Such applications needed the speed and communications capabilities that only mainframes could provide. Then PCs took over as people realised that a PC on each of 100 desks gave the same performance, and a great deal more convenience, than a single mainframe computer serving 100 terminals. In latter years, Unix workstations have begun to creep in to supplement the PCs. More recently, as markets have become more and more sophisticated, traders have become increasingly reliant on advanced software to guide them; power-hungry software that gobbles memory and cpu like never before. Today in leading institutions, especially on Wall Street, the Unix workstation has ousted both the mainframe and the PC as the computing tool for day-to-day applications.

So is there a parallel for APL? I think there is. Now that machines are becoming so fast, the argument that APL is interpreted (and therefore slow) is increasingly irrelevant. Indeed, APL is one of only a handful of development tools that are capable of using today's power effectively. Does it matter that a compiled C program, that took months to write, executes in 0.1 seconds versus 1 second for the APL equivalent developed in a few days? I think not. Two years ago when we were talking about 1 second versus 10 seconds, it patently did.

The second reason for the recent success of Unix is the modern requirement for a Graphical User Interface (GUI). The GUI, pioneered by Xerox and enthusiastically championed by Apple Computer, is now an accepted part of computing technology. Although a GUI is (or should be) easy to use it is NOT easy to program. Microsoft Windows is taken for granted as a handy, friendly tool for end-user computing, yet it is notorious as one of the most difficult computer programming environments yet conceived by man. Unix GUIs are based upon the X Window System. With thousands of man-years of development behind them, they are substantially better engineered, offer genuine multi-tasking and are much easier on the applications developer. But their concepts have been developed by deep-thinking, earnest computer scientists, and are not easy to grasp. It is not surprising therefore that all the major GUIs have spawned a host of application development aids which make it relatively easy for the programmer to build an attractive user-interface. However, most of these tools fall down when you come to define the logic for your application — they just don't have the linguistic flexibility for the job. This is where APL will score. APL is, or should be, as efficient at driving a GUI as any other programming language. The fact that it is interpreted is an advantage, not a disadvantage, in this field. APL vendors are all busily working on developing means of driving GUIs, and the healthy competition amongst them will ensure a good result.

I first took to APL because it enabled me to excel at my job, yet still play golf three times a week. I was able to produce cost-effective, successful, interactive applications at a time that my non-golfing colleagues were still punching card-decks. When computing moved away from mainframes onto PCs APL still held its own, thanks to the foresight shown by STSC in realising the potential of these small machines. But APL in both environments has been held back by cost/performance considerations. Only now that MIPS and MFLOPS have become both plentiful and cheap can APL really thrive. The competition from other software products is daunting, but if the APL vendors meet the challenge, the prospects for a golden age of APL have never been better.