Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Friday, November 02, 2012

My Talk at the APL@50 Conference

Yesterday York University hosted a 1-day conference entitled "APL@50", to celebrate the 50th anniversary of the publication of Kenneth Iverson's book, A Programming Language. This book, and the subsequent implementation of APL, eventually won Iverson the Turing award in 1979.

Here are my slides for the talk.

I said a lot of things that were not on the slides. In particular: "More foolish things have been said about APL than any other programming language, and Edsger Dijkstra was one of the biggest offenders."

In addition to the talks, there were some really nice displays from the collection of the York University Computer Museum. For example there was an IBM 5100 APL machine (one that I spend several years programming as an undergraduate), and an MCM APL machine.

We also saw a short film by Catherine Lathwell, who is working on a full-fledged documentary about APL.

At a panel we were asked to summarize what APL meant to us. I said something like the following: APL taught us that a good notation is half the battle. Computing is ultimately about insight, and a system that encourages experimentation and variation is one that can be used to treat mathematics almost as if it were an experimental science.

Thanks to Zbigniew Stachniak and Catherine Lathwell for organizing this.

Friday, June 01, 2012

Programming Contest Results

The results from the 2012 ACM International Collegiate Programming Contest are in, and Waterloo finished 9th in the world. Congrats to my colleague Ondrej Lhotak and to students Tyson Andre, Benoit Maurin and Anton Raichuk.

What's particularly interesting to me is the continued excellent performance of Russia and former-Soviet-Union countries such as Belarus and Kazakhstan. What accounts for their dominance? Is there some lesson from their educational system we can draw on in North America?

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.