Wednesday, October 17, 2007

Grok Like an Egyptian: The Weirdest Language


These days, it seems that the older languages are new again.

Lisp, Smalltalk, and Erlang are getting a lot attention (yes, they are all much different in age).

I have wondered if another language would be brought out of the attic, and sure enough, it is getting some attention.

I'm talking about APL which is easily the most strange, wonderfully weird language I have ever used (though it has been years).

Consider this:

  • It required a special keyboard, and uses characters that are not ASCII. It uses a highly symbolic, mathematical syntax that has been compared to hieroglyphics.
  • From what I (vaguely) remember, no explicit loops or conditionals.
  • It is common to combine functions using higher-order operators in manner that is so terse, it makes Perl look like English. Think I'm kidding? How about a one-liner that computes Conway's Game of Life.
  • Kenneth Iverson won a Turing award for his contributions (of which APL was a major part).
At the risk of alienating the small, rabid crowd of APLers, I should point out that APL does not run on the JVM (to my knowledge), does not form the basis for a popular web framework, and may not introduce Java people to new constructs such as closures and DSLs.

But if you are looking for a new way to think about problems, this is a fascinating option.

Which leads me to a question:

Is there a good, free APL development environment for Windows?

I've been looking for one for some weeks now, but haven't really found anything. Help!

Time permitting, I'd be interested in getting back into APL and possibly blogging a bit (if I can render the character set on here).

3 comments:

Ivan Memruk said...

with birds and dog-headed guys instead of mathematical signs, this language would look even better

Anonymous said...

The J programming language, developed in the early 1990s by Ken Iverson and Roger Hui, is a synthesis of APL (also by Iverson) and the FP and FL function-level languages created by John Backus. http://en.wikipedia.org/wiki/J_programming_language

You can get a free copy here at JSoftware http://www.jsoftware.com/stable.htm

Good times. Good times.

Michael Easter said...

@Ivan. Nice... perhaps an Eclipse plugin could have little animations

@Anon. Cool stuff. I have heard of J as being the follow-up to APL but never investigated it and once wondered if it was as 'pure'. But I may well check out J. Thanks for the link!