Updated: 11/5/2005; 6:03:36 PM.
Chris Double's Radio Weblog

Wednesday, February 12, 2003

Ted Leung talks about Lisp vs Smalltalk. In his post he says:

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.

Maybe I'm misunderstanding Ted but I don't agree with this statement. Perhaps it was true in the past but modern Lisp's and Smalltalk's seem to have no problems talking to the machine.

Dolphin Smalltalk applications look and feel exactly like normal Windows applications. And that's because they are. It's also very easy to call API functions.

Corman Lisp, a Common Lisp system for Win32, also has very good methods of talking to the machine. You can practically paste in a C header file definition for the API and Corman Lisp will generate the necessary Lisp code. You can create DLL's in lisp that are callable by C programs. You can even code in-line assembler if you really want to get down and dirty.

Many other Lisp's and Smalltalks can boast similar features.

Further down in his post, Ted says:

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.

S# is a possibility for the CLR. It's a Smalltalk superset that generates .NET assemblies. But it uses the Microsoft CLR, and I'm not sure if a Mono possibility will exist.

1:13:11 AM      

Charles Cook has some good things to say about Dylan and programming languages in general. In particular he writes about how some programmers who have only been exposed to languages like C++ and Java would have a blinkered view of programming languages in general.

I was a lot like this. I came from a C background then on to C++. I programmed in C++ for many years then dabbled in Java. Java led me to playing with functional programming language concepts through the use of Pizza. Pizza was a superset of Java with parametric polymorphism, higher order functions and algebraic data types. I also liked the generic programming aspect of C++ templates.

Then I stumbled across Dylan and started using Harlequin Dylan (which is now known as Functional Developer after Harlequin sold it off). Suddenly I discovered the power of dynamic typing with the ability to optionally add type information. Multiple dispatch, first class functions and classes. And an interactive development environment. Wow!

It ruined my desire to code in C++. I discovered the the Dylan model of OO was based on the Common Lisp object system. This led me to Common Lisp. The prefix style took a while to get used to but once I did I discovered it was a productivity win for me.

Common Lisp and Dylan led me to dabble with Smalltalk, specifically Dolphin Smalltalk. Again, an interactive environment, objects all the way down, reflection to the max.

I think languages like Java, C++ and C# have their place but it's a shame that the development world doesn't see more of a place for languages like Smalltalk, Dylan and Common Lisp. With the general shift seeming to be toward more dynamic systems maybe this will change. I certainly see increasing use of Common Lisp and Smalltalk over the last few years and I even know of a few commerical Dylan projects that have taken place.

12:54:48 AM      

© Copyright 2005 Chris Double.
February 2003
Sun Mon Tue Wed Thu Fri Sat
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  
Jan   Mar

Click here to visit the Radio UserLand website.

Listed on BlogShares

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.