Skip to content

Guest Editorial: The Evolution of APL

Vector 1:3, page 3

APL in perspective language design

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

Evolution has emerged largely by accident as a strong theme in three successive issues of VECTOR. It is a topic which often defies intuition; a domain where seemingly circular arguments turn out oddly and disturbingly valid. What follows is a search for an evolutionary perspective of APL.

Until about 2 years ago APL was quite clearly a single distinct species. True there were a few interesting mutations, but nothing which in any way prevented the free exchange of ideas. It is however a sad truth that evolution within a species is a desperately slow business. Even given the marvellous genetic diversity of APL (how many ways do you know of chopping the trailing blanks off a string?) the worldwide pool of accepted idioms has almost ceased to grow.

Many interesting mutations have come and gone, often to re-appear and vanish once more. The idea of adding vectors row or columnwise to matrices is one such, and illustrates a pattern which is absolutely typical of natural systems. In a stable environment mutations are almost inevitably penalized; white rabbits get eaten!

How then does the natural world progress? Sometimes through white rabbits, but more often through isolation, speciation and (I regret to say) extinction. First of all you must take a select few of your creatures and isolate them well away from predators and competing groups. They rapidly become inbred, and all sorts of weird mutations may survive. Given several such ‘peripheral isolates’ it is inevitable that a ‘super rabbit’ will eventually emerge; it may even be white!!

The conditions are ripe for a take-over: re-introduce your Mark-II Coney and it will wipe out the indigenous Mark-I in less time than it takes to say ‘Charles Darwin’. Indeed the invasion often comes as a multi-pronged attack; several island communities may generate new species, each better adapted to some specific ecological niche than their single precursor, none competing directly with each other. Enough said.

Let’s look at VS APL (the precursor), and NARS, IPSA, APL2 and the rest (the peripheral isolates) in this light. The inbreeding was quite intentional, and the mutations have been many and varied. Now we have the invasion, and it comes from many sides. As these ‘nested-array’ species fight it out over the high ground, a shoal of keyworders appears to contest the micro scene. Will VS APL be throttled to extinction by these improbable allies? Here is my guess; it is as likely to be wrong as anyone else’s.

I think that APL2 will kill off all the other nesters very soon. NARS and IPSA will retreat to their island fastnesses, there to perish or flourish in ever greater isolation. It matters little. I think that keyword APL has about as much in common with VS APL as a Chihuahua has with a Wolfhound, but it is not truly a separate species. We can read and appreciate each others’ code, and the products of that union may at last let APL take flight. Whether the final result uses words or funny symbols (or more likely both in continued co-existence) is pretty irrelevant. The ideas and power of APL go a lot deeper than a fancy typeface, and I would happily take the keyword route simply to avoid messing up my keyboard with stickers!

IBM will do their utmost to wipe out VS APL (and the idea of keywords) with APL2. They will struggle long and hard, and I think that ultimately they will fail. APL2 cannot beat IPSA and NARS on merit; it can and will beat them on weight. That’s how Brontosaurs evolved; I think I’ll back Archaeopteryx.