Lisp vs Smalltalk
In response to Saturday's entry on Dylan, James Robertson writes:
You just want to scream. This post is more evidence that developers are starting to see that Java and C# may not be the end all and be all of existence. If Lisp gets a thought, why not Smalltalk?
Actually, I've never felt that Java (or C#) was the end all and be all of existence. I've been doing this stuff for 20 years now, and I've seen a lot of languages and operating systems come and go. Basically, I believe that most popular languages today are reinventing features that have been in Lisp for a long time, and doing it badly. Languages that are in widespread industrial use are not cutting edge from a technological point of view.
As for why I'm not ranting about Smalltalk? I've been aware of Smalltalk since the August 1981 issue of Byte, and until I went off to MIT in 1984, I would have held up Smalltalk as my language of choice. Then I was inducted in to the 6.001 society by Hal Abelson and Gerry Sussman, and I've been a Lisphead ever since.The issue I have with Smalltalk is the issue that I have with Java -- they are both languages which are locked into the object-oriented paradigm. Now, I like objects -- As a graduate student I helped design an object database data model. I don't believe that the object oriented paradigm is the be all and end all for programming languages.
Paul Graham has been an effective evangelist for Lisp, but it's not his website that has the most powerful arguments. Look at On Lisp for the clearest demonstration of the advantages of Lisp. Also Peter Norvig's Paradigms of Artificial Intelligence Programming. I'm looking for a language that can meet or exceed the kind of power demonstrated in On Lisp.
The weakness of both Lisp and Smalltalk (and many other cool researchy languages), is that neither have ever been that good at talking to the machine, which makes them pretty much useless for real work. Today, we have lots of "managed" languages that can talk to system pretty well. Java can do that, and the various languages atop the .NET CLR can do that. And from an industrial perspective that's important. I'm oversimplifying a bit here, but that's been the reality / perception at various points in history over the last 20 years.
From where I sit, it looks like the best we can hope to do is to get an advanced language which can use the CLR's ability to talk to the machine. And the CLR that it talks to ought to be the ECMA / Mono one, not the Microsoft one. That would get you a decent language, portability across hardware / os at a binary level, and the ability to talk to the hardware in a rich fashion.
i see the two languages differently from you... that is, i see them to be about the same.
i think smalltalk and lisp are the same functional style with different syntactic sugar (but then i see the lambda calculus model as an overrated-and-unnecessarilly-limited parser combinator).
Posted by nosebleed at Wed Jun 16 06:50:04 2004