Eric S. Raymond is an imposing figure in the history of free software / open-source code. His essay (and book) The Cathedral and the Bazaar expanded the model for open-source development based on his experience creating fetchmail. ESR, as he’s known, revived the important early esolang INTERCAL as C-INTERCAL, making it available to a new generation of programmers.
» INTERCAL seems to have an odd place in esolang history. Often called the first esolang, it was written in the early ‘70s and revived by you in I believe 1990, a few years before FALSE, brainfuck, and Befunge appeared.
That is correct. It was written in 1972, and I reimplemented it in 1990.
» Do you remember how and when you first came across INTERCAL and what your impression was? Did you spend much time coding in the original language or did you need to create C-INTERCAL to use it? Was there much communication with Don Woods and Jim Lyon?
I first encountered the manual for INTERCAL in 1977 or thenabouts. Read it and laughed pretty hard, but at that time it didn’t occur to me to try to implement it. I didn’t teach myself the required skills until about six years later.
I’ve never spent *any* significant amount of time coding in INTERCAL, aside from minor fixes to test cases. I just write the compiler, I’m not twisted enough to try to use the language.
I let Don Woods and Jim Lyon know what I was doing, but that was about it as far as communication went. They didn’t seem that interested in their early progeny.
» What was the response like to C-INTERCAL?
Laughter. Incredulity. More laughter. And then people started sending patches.
» What was it like re-interpreting and extending the original language? Are there concepts or behaviors of the original that adapted particularly well or poorly to computing 18 years later? It seems that you felt free to add some of your own wonderfully ludicrous features (accepting Latin commands, for instance).
INTERCAL is such a bizarre design that I can’t say any of it “adapted” to anything. If anything, eighteen years of progress made it a poorer fit to the technology of the day - it had some legacies of the batch mainframe environment it was designed in that I had to reshape a little.
It assumed an EBCDIC character set rather than ASCII, for one thing, and INTERCAL statemant syntax was really intended for punched-card rows rather than lines on a terminal. So I had to modify it, which I thought was OK - I viewed it as a kind of hacker folk art, with my own hands being neither the first nor the last to reshape it.
» Was the COME FROM command one of your additions? It is one of my favorites, as the simple gesture of turning GOTO on its head adds such complexity and weirdness to program flow. Are there any particularly unusual or clever uses of COME FROM you’ve seen?
I believe the most frightening single piece of code I’ve ever seen is the implementation of Conway’s Game of Life in INTERCAL using a double nested COME FROM loop. It’s in the distribution’s examples directory, along with a pretty large percentage of all the INTERCAL code ever written.
» In discussing why esolangs emerged in the early 90s, Chris Pressey and Wouter van Oortmerssen commented on the low bar between hobbyist code and “professional” software at that time as encouraging people to explore the creative potential of computers – also of the close-knit community of Amiga coders. Was this similar to the UNIX world (and does this fit your impression of computing in that era)?
I don’t know anything about the Amiga community. I do know that INTERCAL fit right in to a tradition of elaborate technical parodies and hoaxes that was already rather central to the UNIX- and Internet-centered hacker culture I knew by 1990. It’s the same impulse that produces parody RFCs to this day.
» Could you give some examples of other “elaborate technical parodies and hoaxes” that stand out to you or that were influential on your work? What computer folk art is significant to you?
If I had to name one classic in the genre it would be RFC 1149: “A Standard for the Transmission of IP Datagrams on Avian Carriers”.
It’s representative of a long and continuing tradition of joke RFCs, traditionally issuing on April 1st each year. Hackers greatly cherish these.
» Have you connected with others experimenting with esolanguages? Do you remember when you became aware of brainfuck, Befunge, etc?
I only became aware of these in the late 1990s, at which point I was (alas) too busy being Mr. Famous Guy to play with them much.
» Are there any favorite features of INTERCAL-72 or C-INTERCAL we haven’t discussed yet that you’d like to mention?
ABSTAIN. ABSTAIN is beautifully weird. Every language designer should study it as an example of what not to do.
» Were you involved with any of the derivative languages (TriINTERCAL, etc) or the discussions around the languages on Usenet?
I was watching from close by when Louis Howell implemented Tri-Intercal, otherwise I wasn’t involved with any of the derivatives.
» Any tips for hobbyists first messing around with language design (esoteric or otherwise)?
Yes. Start with a domain-specific language - I’ve written several of which the best known is probably reposurgeon. General-purpose languages are hard, so practice with DSLs first. They’re appealingly concrete; you can know when you’re done.