Echo Chamber: Backstabbing Lisp Hackers and the War to End All Language Wars

Interesting stuff from an article I found on raganwald’s feed:

You might know that James Gosling (one of the creators of Java) once wrote a version of Emacs. But did you know that his version did not have a real Lisp implementation running under the hood?

You might know that MIT had a really cool AI lab that Richard Stallman worked in. But did you know that the fallout between two competing Lisp machine companies put an end to the the primordial hacker culture that once thrived there? And did you know that Stallman spent two years implementing a free version of every single feature that Symbolics came out with for their Lisp machine in order to punish them for stabbing his fellow hackers (at Lisp Machines Incorporated) in the back?

You might know that TCL is a language used to write GUI code. But did you know that Sun once tried to make it the “de-facto standard extension language” of the world?

You might know that Guile is the GNU implementation of Scheme. But did you know that Stallman intended Guile to become the standard extensibility package for all GNU programs?

You might know that Lisp dialects can be used to write embedded languages. But did you know that such a capability could be marshalled to end the language war in many applications? Stallman: “But when you have a powerful language that can implement others by translating into it, then you give the user a choice of language and we don’t have to have a language war anymore. That’s what we’re hoping ‘Guile’, our scheme interpreter, will do.”

7 Responses to “Echo Chamber: Backstabbing Lisp Hackers and the War to End All Language Wars”

  1. Mark Miller Says:

    Re: the last paragraph on Guile

    Interesting. I was just commenting recently in a different discussion that it’s such a shame that languages are attached to specific VMs or runtimes. It would be nicer if everything was able to run on one VM without prejudice to which language you chose. Some would say that VM is the JVM, or the .Net runtime. Up until recently, at least, that wasn’t really true. If you look at the trouble Groovy is having getting good performance on the JVM you’ll understand what I’m talking about. At least Microsoft is trying to include dynamic languages in the .Net ecosystem. So it might succeed.

    I agree, I think a Lisp-like system would be ideal. In fact, I heard a rumor recently that in Alan Kay’s NSF funded research on a new programming/computing system they’re currently using a version of Lisp as their “C”. In other words, the higher level stuff gets translated to Lisp, which is then compiled directly to machine code. This way they don’t have to use C at all. I think some exciting stuff is coming along.

  2. Mark Miller Says:

    A question that came to mind about the rest of your post is how come apparently none of these efforts have succeeded? I haven’t heard about anyone using Guile to extend GNU code. My suspicion is the reason is the C culture is so ingrained that people aren’t bothering to learn Guile, much less why it’s any good. So the efforts at adoption just flop.

    Another reason may be that a popular use of OSS is to breathe new life into aging hardware. If that’s the case then Guile isn’t so attractive, because it’ll probably run slowly on the old stuff. Maybe in another 10 years, when the “old computers” are the 1 Ghz variety, people will reconsider this.

  3. lispy Says:

    Sounds like the old “worse is better”/”Unix is the ultimate computer virus” theory….

  4. Mark Miller Says:

    Hi Lispy. I read RMS’s original speech, and it’s interesting. I had heard about the history of Emacs, so reading that part was old news to me. What was interesting was reading about how he discovered Lisp (the Lisp 1.5 manual)., and the history he told of Symbolics and Lisp Machines Inc., and RMS’s role in that. BTW you can find the Lisp 1.5 manual here.

    RMS sounds like a pragmatist. He likes the idea of Lisp, but went the GNU/Linux route because the old hardware of the late 70s/early 80s wasn’t fast enough to run it well. He talked about the problem of getting type checking to work (list vs. an atom) vs. performance. He later implemented Guile as a way to extend all GNU software, and that it was possible to translate any language into Guile, so people could use any language they wanted as an extension language. I just haven’t heard about anyone using this feature.

    A real interesting side story was the one he told about James Gosling. He said that Gosling made his own version of Emacs using a language that kind of looked like Lisp, but didn’t have the power of it. He said, “Its data structures were strings, numbers and a few other specialized things.” This tells you a LOT about how Java turned out the way it did, doesn’t it?!

  5. lispy Says:

    Yeah, it should give one pause when someone who understands Lisp as well as Stallman goes and uses C for much of his ‘real’ work.

  6. Mark Miller Says:

    I am a bit curious about that. Does he use C for most of his “real” work nowadays? I was wondering if he’s started to use Guile more. It seems to me that’s possible now with the faster hardware. I have heard that Linus Torvalds insists on using nothing but C. He doesn’t even like C++. Personally, I can kind of see where he’s coming from. I’ve come to not like C++ much myself. C does give you a certain simplicity, but the structure it gives you, particularly if you’re building applications for people to use, is not good IMO.

    Like I said before, what RMS did 25-30 years ago was basically submit to what became the dominant hardware architecture, which was not Lisp-friendly. He felt it would be too limiting for the OSS community he was trying to create to insist that everyone use the Lisp system he had in mind, since it would effectively require people to move to a proprietary hardware architecture. That wasn’t likely to work.

    I remember Alan Kay commenting about the same thing. One of his favorite systems was the Burrough’s B5000, created in the early 1960s. I think it had a notion of bytecode execution at the system level. It was not a foreign function like it is on our modern systems. Its hardware computing architecture understood HLL concepts, and could run languages like Lisp quickly. It was rejected by the IT establishment, despite the fact that it was documented to the n-th degree, and could be understood if anyone had taken the time to do so. Kay said in that same interview I used in my blog post on RMS’s speech something like, “The weak hardware architecture that became popular just killed languages like Lisp and Smalltalk,” because they couldn’t execute them optimally. I think he said that Motorola and Intel “had no idea why the B5000 was a good architecture to follow.”

    What he said helped me understand was that a big reason why computing has not progressed much beyond what was invented in the 1960s and 70s, and the reason why languages like BASIC and C became popular is because they were designed to work at least reasonably well with this hardware. The other choices just weren’t an option, because they ran too slowly on it. The reason why symbolic computing systems now have a chance to take off is because the deficient hardware architecture is fast enough now to run them.

  7. dlweinreb Says:

    Regarding Stallman’s story about the AI lab, please see:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: