The Rebirth of Lisp
January 31, 2011
In the 1980’s I was very interested in learning about “Artificial Intelligence” software. So, in 1987, I purchased Digitalk’s Smalltalk/V (for DOS) and muLisp (also for DOS) and started learning both Smalltalk and Lisp at the same time.
As for the question “Which is better – Smalltalk or Lisp?” my answer is that if you asked a carpenter “Which is the better tool – a saw or a hammer?” he would probably tell you that it is a stupid question – it depends upon what problem you are trying to solve. So I find that “language wars” are a complete waste of time; I have used dozens of different languages since I started programming in 1969 and each is useful in its own way.
Lisp and Smalltalk have had similar histories in the marketplace.
1) At first there were great expectations:
There were numerous “Lisp Machines” in the late 1980’s. Symbolics and Texas Instruments sometimes ran full page color advertisements for their Lisp machines.
Parc Place Systems became a $50 million Smalltalk company. IBM developed VisualAge Smalltalk with plans to run Smalltalk across the full range of their hardware
2) Then everything fell apart:
People began talking about an “AI winter” in the early 1990’s and Lisp started a steep decline. Smalltalk seemed to be doing well until about 1995 when IBM discovered Java. After that, Smalltalk started its own decline.
The reasons for the decline of both probably are mostly due to the high prices charged by the language vendors – people learned to solve problems with cheaper solutions (eg Java running on a PC or Unix workstation).
3) The languages were almost forgotten:
There were still groups of enthusiasts for both Lisp and Smalltalk. But, with very rare exceptions, nobody was proposing Lisp or Smalltalk for new commercial applications.
4) Clojure Lisp becomes popular
Clojure Lisp has very active user forums and several new books published within the past two years.
Here is what I think happend:
— the “ideas” behind Lisp — that code can be easily handled as data — are just as useful today as when John McCarthy proposed them in 1958. That is, the need for Lisp (or something like Lisp) has never disappeared
— Clojure simplified the overly complex Common Lisp syntax and introduced some very useful formats for data that are very similar to Python
— most importantly, Clojure runs on the Java Virtual Machine (JVM) which is available for nearly any environment. *And* that means it can use all of the Java libraries that are available.
— so, to do a Clojure Lisp project today, you can simply tell your boss that it is really a Java (buzzword compliant) project since it runs on the JVM and “we just use Clojure for scripting”
5) Smalltalk should be popular today
The “big idea” behind Smalltalk is messaging – work gets done by objects sending “messages” to other objects.
Here is a summary by Dan Ingalls (the man who wrote both Smalltalk-80 and Squeak):
Messages: Computing should be viewed as an intrinsic capability of objects that can be uniformly invoked by sending messages.
or you can listen to Alan Kay (who invented Smalltalk and created the term “object oriented”) in his speech “The Computer Revolution Hasn’t Happened Yet”
Both Alan Kay and Dan Ingalls emphasis that the idea behind Smalltalk is “messaging” between objects. They don’t talk about “IDE’s” or “debuggers” or “image files” – those are implementation details. They talk about “messages”.
People today are spending most of their time with computers in a “messaging environment” whether it is a browser, an iPad, or a smart phone.
It seems obvious to me that the ideal language for a “messaging” environment would be a “message-based” language (ie Smalltalk) which was designed from the beginning to be easy for humans to use.
That is what Silver Smalltalk is all about.