Why Isn’t APL Used More Widely
Vector 13:2, page 8
Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 8
At some of the APL conferences and in Vector this question is a favorite topic. I can suggest an answer from observation, but first a few words of background. I first encountered APL when Ken Iverson did a seminar from Harvard. Later at IBM one of the programmers showed me how he solved a simple problem quickly in a few keystrokes. On inquiry I learned that he was using an early implementation of APL. I then took Al Rose’s video tape course, and learned enough of the language in the first morning that I could use the script, without looking at the monitor, and got to the point of solving some of my own programs by the end of the three day course.
As I began to use APL more seriously I discovered that I was stating new problems, because subconsciously I felt that I had the tools to solve them. When I had been sure I couldn’t have solved a problem, I never stated it. The logical and mathematical power of APL suited my mental processes to a T. Much later on someone invented ⎕FMT and ⌹ which simplified further the way that I wanted to handle problems that were important to me.
In more recent years someone has invented ⎕ELX and strand notation. I encountered both of these in a “by the way” comment in some talks at APL conferences. The manuals are extremely cryptic, stated in a compact way that might be an aide memoire for someone who had learned the techniques once. This was equally true for Dyalog, IBM and STSC. The manuals are no help at all to a programmer who wanted to get an insight into what these techniques do, how they work, and why you would want to do that. The 10⍟X logarithm and ⍋ for sorting were intuitive when first presented. There is nothing intuitive about nested arrays, especially when they don’t work in a consistent and predictable way.
Now I am forced by my market to convert good old DOS APL applications into Windows. Not only are the manuals obscure and opaque, I suspect they are counter-productive.
I suggest that one reason APL is not more widely used is that the only way one can learn the language is from being a member of an in group which uses its own priestly language to discriminate against outsiders and establish the supremacy of the cognoscenti. If a group wants wider use of the program product explain it in clear English with complete sentences, starting from providing an insight into what the language, or any part of it does, why it works, and what it might be used for.