Rocky asks the question “What languages and language families have you been competent in during your career?” and provides his own list. Here’s mine, in order, as I remember it:

  1. BASIC (IBM-5100, a precursor to the IBM PC)
  2. BASIC (TRS-80 Model III)
  3. APL (IBM-5100)
  4. AppleBASIC (Apple ][+ and Apple ][e)
  5. UCSD Pascal (IBM PC)
  6. Unix shell scripting (not sure the machine)
  7. C (ditto)
  8. Turbo Pascal (IBM PC)
  9. GBBS Pro BASIC (a custom BBS language, Apple ][e)
  10. Scheme (Mac)
  11. C++ (IBM PC)
  12. Haskell (Sun)
  13. Visual BASIC 1.0 to present day (Windows & .NET)
  14. SQL (Access & SQL Server)
  15. Java (Windows)
  16. MSIL (.NET)
  17. C# (.NET)

And there is a small smattering of experience with other languages, but no significant programming experience. Broadly, this breaks down to the following families:

  1. BASIC
  2. Pascal
  3. C
  4. Functional languages like Scheme, Haskell, etc.
  5. Other

I’ll also add that the entry for “APL” is really a joke. I started programming on IBM-5100s over at Duke University. The 5100 had the distinction of having a switch on the front panel marked “BASIC/APL”. Depending on which position the switch was in, that’s the language you used when the machine booted up. Somehow, my friend Tom and I came into possession of some mag tapes (which is what the 5100 used for storage) with a bunch of games written for the 5100, including an adventure game written in APL. I seem to remember really wanting to learn how to modify the adventure game and so I set about learning APL. Unfortunately, I was probaby 11 years old at the time and had nowhere near the necessary mathematical foundations to be able to understand the language, so the whole enterprise was a bust. So Tom and I fell back to writing an adventure game in BASIC. I think I still have a printout of “Escape from Carr Building” somewhere around here…

Updated 02/17/05: How could I forget SQL?