For several years I helped support the APL2 programming language at my company. For anyone who is unfamiliar with APL, which stands for A Programming Language, is strongest when used to solve problems related to math, science, engineering, data visualization, actuarial science, etc. One of its strengths is that is manages data in matrices, and provides many native functions that manipulate these objects directly.
APL was invented by a Kenneth E. Iverson in 1957. To quote Homer Simpson, the man is SMRT.
APL has some very interactive qualities, which makes it great for quick trial/error development. The true uniqueness of APL is the fact that it uses a completely unique notation as its “language”. When I supported APL, I had to have a completely different keyboard and keyboard map that allowed me to write the code.
For example, here is a sample of APL code:
Pretty cool, eh?
While I was never a true APL guru (many mathematicians I worked with were true power users) I was able to create some very robust applications rapidly. With its inherent support for matrices, it had a very strong relationship with relational data. Of course, I pity anyone who picks up an APL program and, without comments or doc or experience, tries to figure out what those arrows and dots really do.
I think this quote really sums up APL well:
“APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.” Edsger Dijkstra, 1968