Arrays, Arrays, wherefor art thou Arrays?
Vector 13:2, page 14
Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 14
Lancaster and APL96 were certainly a highlight on the APL calendar this year for those of us fortunate enough to attend. Indeed, with its many fine pubs and charming old-world appeal, the hamlet of Lancaster itself proved an agreeable selection as conference venue.
Not so well recognized however, by most attendees, is the fact that England is indeed the place where APL and array-oriented languages have been upper most in the minds of some individuals for centuries. In fact, just to prove this, while rummaging around in one of the curio shops in downtown Lancaster, I couldn’t believe my luck when I stumbled upon this extremely obscure snippit of genuine poetry from none other than the immortal bard himself, William Shakespeare.
This work, incredibly written sometime around 423 B.I. (Before Iverson), is indeed a truly remarkable piece for it’s time. Something, I would dare say, that the APL community should proudly point to as its “Magna Carta” of documents, entirely paving the way to the array approach to problem solving in everyday life.
Here’s the text from the dusty manuscript, in its entirety:
To C++, or not to C++: that is the question:
Whether ’tis better for the job security to suffer
The loops and gotos of outrageous scalar programming,
Or to take arrays against a sea of if/else statements,
And by boolean compression end them? To )off: to ⎕DL;
No more; and by a →0 to say we end
The heart-ache and the thousand variable declarations
That compiled code is heir to, ’tis a link-edit
Devoutly to be abend’d. To )off, to ⎕DL;
To ⎕DL: perchance to multi-task: ay, there’s the rub;
For in that delay mode what dreams may come
When we have shuffled off this if-then-else coil,
Must give us interactive systems: there’s the modularity
That makes calamity of so long programs;
For who would bear the compile and links of time,
The compiler’s wrong output, the proud programmer’s frustration,
The pangs of despised loops, the rewrite’s delay,
The insolence of array-unfriendly management and the rewards
That patient merit of the worthy takes and drops,
When he himself might his report format
With a bare bottom-line? who would ‘for-while’ bear,
To grunt and sweat under a weary do-loop,
But that the dread of something after installation,
The undiscover’d bug from whose general protection failure
No programmer returns, puzzles the support person
And makes us rather bear those workarounds we have
Than kludge others that we know not of?
Thus fear of bombing does make cowards of us all;
And thus the hue of screen resolution
Is dot-matrixed o’er with the pale cast of pixels,
And enterprises of great input/output
With this regard their proc(main) turns awry,
And lose the prompt of abort-retry-fail. Software you now!
The fair APL! Nymph, in thy implementation
Be all my array solutions remember’d.