Strongtalk VM for Squeak

Ramon Leon ramon.leon at allresnet.com
Tue Sep 19 17:13:35 UTC 2006


> Ramon Leon wrote:
> > Same here, Lisp pays for it's power by not being able to have the 
> > tools Smalltalk has.
> 
> Not strictly true; I mean, even *java* can have IDEs written 
> for it! For instance, did the Lisp Machines not approach 
> Smalltalky levels of toolness?
> 
> Tony

As far as I know, no, it didn't.  I recently watched a video of a Lisper
showing off the power of Slime, http://common-lisp.net/movies/slime.mov, to
see how the other side lives, and frankly, in comparison to Smalltalk, I
wasn't impressed.  You really have to love working on text files to enjoy
Lisp.  Lisp seems a very command line oriented language, you just have to
remember a bunch of stuff, or refer to the spec.  One of Smalltalk's goals
is that it's understandable by a single developer.  Lisp relishes in the
fact that it can't be, have you ever looked at the Common Lisp Hyperspec,
Jesus.  Java btw, has something for the IDE to navigate, an object model, as
does Smalltalk, the environment is based around the fact that a model is
forced upon you.  Lisp doesn't, it just has expressions, the tools are all
based around expressions.

There's not much for the tools to do, you can't tell from the code, how
something really works, you have to memorize it.  You have to know that "if"
has delayed evaluation, and is a macro, in Smalltalk, you can simply see it,
from the blocks.  Smalltalk i.e. less powerful, no macro's, however, is much
more suited to tinkering, it has objects, that have behavior, you can play
with an object and see what it does, you know where to look for it's
behavior, in the object.  Lisp allows delayed evaluation to be hidden via
macro's, which adds a burden to the programmer, he needs to memorize those
forms that delay evaluation, it's not obvious from the code alone.
Smalltalk has less of a mental burden, you don't need to memorize these
things, they're obvious from the code, and the browsers allow you to poke
around in ways that Lisp doesn't.

Lisp could have browsers, built on top of CLOS, I think, but CLOS isn't
Lisp, it's a DSL on Lisp.  CLOS, despite claims to the contrary, is not OO.
It has most of the benefits of OO, as well as some that OO doesn't have like
multiple dispatch, but a CLOS function doesn't actually belong to the
object, there's no receiver.  CLOS is really the ultimate procedural
mechanism, based around generic functions.  You still spend all your time
passing around data structures to procedures, not very OO.  OO is more than
just polymorphism, encapsulation, and inheritance, it's a point of view, and
CLOS doesn't share that point of view, it still separates data and
procedures.  Yes, I'm using my own personal definition of OO, doesn't
everyone... ;)  Of course, this is all just my point of view, it could all
be totally wrong!




More information about the Squeak-dev mailing list