Thursday, July 24, 2008

SIGAPL dissolved

A sad day for the APL community: SIGAPL, the ACM special interest group on APL, has been dissolved by the ACM SIG governing board.

I first learned APL in 1973 at the IBM Scientific Center in Philadelphia (long gone). At the insistence of my father, I had written to several large computing companies, asking for a summer job. Only IBM replied favorably, and I had a rather intimidating interview with Ken Iverson and Adin Falkoff in their offices on Market Street. To my delight, they hired me for a vague project about whether it was better to learn APL by reading other people's programs first, or writing one's own.

I remember going home with a copy of the APL\360 user's manual, which was initially very mysterious to me, and had an exotic smell like bacon. I had learned programming from Kemeny's book on BASIC, and APL was a revelation. I immediately took to the language and ended up spending the next few years of my life involved in APL in various ways: coding in APL for financial institutions, writing my own extended precision arithmetic package and selling it to IBM, etc. I was programming on IBM machines, using a printing terminal with an APL typeball.

I soon discovered the newsletter of SIGAPL, called "Quote-Quad". (The unusual name comes from the special APL symbol for character input, which was formed by typing a "quad" (shift-L) and overstriking it with a quote (shift-K).) At that time I eagerly awaited every issue, filled with incredible one-liners that accomplished results you would need hundreds of lines in BASIC to duplicate, puzzles like the self-replicating APL expression puzzle (type it in and you get exactly the same result back), and proposals to extend APL in bizarre and mind-expanding ways. It was really the golden age of APL.

It's clear that the passion and excitement about APL has decreased since then, although I still use APL on at least a weekly basis to do experimental mathematics: Dyalog APL on my Sun workstation, and APLX on my Macintosh. In many ways it is far superior to Maple and Mathematica, although the lack of easy availability of extended precision and symbolic arithmetic is a pain. I can code a quick-and-dirty solution to a problem faster in APL than I can in any other language. People who see it always stare open-mouthed: what is that? they say, and they want to borrow a manual.

The dissolution of SIGAPL is the passing of an age.

15 comments:

Eamon Knight said...

I (sort of) learned APL in a one-day high school students event held at Waterloo, around the mid 70's. So I have to ask: does anyone actually *use* APL for anything? Yeah, doing matrix math in a single keystroke -- but seriously.

(Feel free to tell me I'm just a Philistine code-monkey engineer who wouldn't appreciate the finer things in CS).

Jeffrey Shallit said...

Well, as I said, I use it very frequently.

But maybe you are asking, is it used in industry? When I was employed as a programmer in the late 1970's and early 1980's I wrote applications and maintained other people's applications written in APL for Morgan Guaranty Trust on Wall Street in New York, and for other companies throughout Pennsylvania, New York, and New Jersey. At that time it was used extensively in the financial industry, because you could code up models quicker than anything else.

What the status is now, I don't know.

Wilson said...

Maybe you could post some of your favorite APL snippets?

Jeffrey Shallit said...

Thanks for the suggestion, wilson, and I'll try to do that in a future post.

_Arthur said...

APL code had the reputation to be hard to maintain, but it is always easier to maintain a 10-lines APL program than the equivalent 10-pages C program.

Heck, just erase the 10 lines and write 10 new ones.

I once wrote APL software for the inventory (and much more) of a metal cabinets factory, and I deliberately wrote very plain code. The objective was not performance, it was run on fast 30 Mhz Compaq computers !

Miodrag said...

APL and its intellectual progeny J and K, are still very much alive and well. J is the latest incarnation of APL designed by Ken Iverson himself and still actively developed and used, more info at http://jsoftware.com, free download available. It does have arbitrary precision numbers btw, it's all ASCII, and I hear people who came from APL call it a much improved APL.
K (or q or kdb, I always get confused about what's called what), designed by Arthur Whitney, is another amazing piece of software in that vein, very much currently used on Wall Street for time series analysis and such. Trial version available at http://kx.com .
Both languages have very lively user communities.
I'm not paid by these companies btw, just a big fan.

Anonymous said...

My first job out of graduate school was converting an APL system at Atlanta Public Schools to IBM's brand new abomination - CICS.

The elegance of APL with its sophisticated matrix operations were a revelation.

I labored many years in IBM's mainframe wilderness before finding UNIX and pearl.

I hate to see APL's demise.

Anonymous said...

I too learned APL in 1973. Well, actually it was in 1972! It was APL\360 XM5 from the College of William & Mary on an IBM 360/50.

I was allocated one 32K workspace.

I've attended various SIGAPL conferences and have subscribed to QQ for many years.

How sadly ironic that SIGAPL dissolves at a time when multicore processors are becoming popular and there is much whining over the alleged difficulty in programming them.

Anonymous said...

Hi, Jeff: I have discovered your post on APL accidentally, and it stirred in my mind reminiscences about my years at the IBM Research Center in Yorktown Heights, NY (1978-1980). When I joined IBM as a visiting scentist, I found very soon that the most favored computer language among the staff there was APL of which I knew nothing hitherto. They had a fine manual on the disk, consisting of 19 lessons. I went through them in a few days and immediately fell in love with APL. For two years,while at the IBM,I was using APL extensively and still have fond memories of that experience. Fortran looked so clumsy in comparison (not to mention Basic). When I left the IBM in 1980, I tried to have access to APL, but without access to an IBM mainframe and the special keyboard, using APL was practically impossible. What a pity! So, albeit I am not a programmer or a computer geek in general, I share your sentiment. Mark Perakh

Anonymous said...

Jeff, I might suggest a new blog entry regarding Intel's "Larrabee" chip and APL.

Remember how APL2 could exploit IBM's Vector hardware? Seems Larrabee is heavy on vector processing:

http://news.cnet.com/8301-13924_3-10006617-64.html?part=rss&subj=news

http://wordpress.alaeldine.com/?p=11

It would be wonderful if Intel could help renew popularity in APL.

Anonymous said...

Not to focus on the marginal, but... Bacon smells exotic? :-)

Jeffrey Shallit said...

About the bacon:

The smell of the manual was exotic; the closest thing I could compare it to was bacon. That doesn't mean I think bacon smells exotic!

Anonymous said...

Hi Jeff,

I read your comments about the dissolution of SIGAPL for the first time this week. I just received an e-mail about it. So, my comments come fairly late. Sorry about that. The members of the executive committee fought as much as they could to avoid the dissolution of SIGAPL. As SIGAPL Chair, I went to the ACM SIG governing board meeting in Chicago last February. I was very well prepared, but it was not sufficient. Two factors did not help: (1) the perception that there is a lack of interest in APL and (2) the lack of participation by the SIGAPL membership. Now, SIGAPL is part of SIGPLAN. We can continue to function as before, except that we don't have the SIG status anymore.

I don't agree with you when you mentioned that "the passion and excitement about APL has decreased since...". The reality is that the passion is still there. The problem is that the APL community is too quiet. SIGAPL was dissolved, but it is only a change in the "flow chart". We can continue to be as active as before, but APLers must participate. So, it is not the "passing of an age".

Regards

Guy Larocque
(Guy.Larocque@NRCan.gc.ca)

Lee Courtney said...

Wrote my first APL program as a 7th grader in 1969. My Dad, who was a professor at UT-Austin came home with a selectric terminal one day and it was all downhill from there. ALL my early computer science learnings were via APL. In High School used APL to explore integral calculus on my own and write a German-English learning/tutoring program. My senior year of college got my first real programming job writing a system to emulate mainframe APL file system on a microcomputer allowing migration of programs.

Great language *and* programming methodology that I hold high ergard for.

Lee Courtney
lee_courtney@acm.org

quadibloc said...

Although APL is well suited to the vector capabilities of computers like the Cray I up to the more recent NEC SX-6, I don't think it is directly relevant to MIMD architectures like Larabee/Knight's Corner/Xeon Phi. Since J is less well known than APL, so far it hasn't solved the "funny character set" problem of APL in the sense of becoming hugely popular; I think that APL indeed offers a great deal, and I wish I had an answer.