[squeak-dev] what is smalltalk? (was: Smalltalk dialects and GSoC)

Eliot Miranda eliot.miranda at gmail.com
Wed Feb 12 19:05:41 UTC 2014


Hi Frank,


On Wed, Feb 12, 2014 at 1:35 AM, Frank Shearar <frank.shearar at gmail.com>wrote:

> On 12 February 2014 00:22, tim Rowledge <tim at rowledge.org> wrote:
> >
> > On 11-02-2014, at 5:02 PM, Jecel Assumpcao Jr. <jecel at merlintec.com>
> wrote:
> >
> >> Any discussion of what is Smalltalk and what isn't can't get very far
> >> without first clearly defining a few things.
> >
> > In the same way that Filk is music performed by people that consider
> themselves to be Filkers, I would suggest that maybe Smalltalk is what is
> written by people that consider themselves to be Smalltalkers.
> >
> > Is everything an object? Do objects have classes? Do objects communicate
> by sending messages and getting back results? Is an image saved and
> restarted? Can you forget about having to deal with memory allocation? If
> the answer is yes to those questions then it's probably a Smalltalk.
>
> Of course, this makes Common Lisp a Smalltalk :) (They certainly have
> a whole bunch of characteristics in common, which given Smalltalk's
> influences should not be a surprise.) (And no, I don't seriously
> consider Common Lisp a Smalltalk, just in case anyone thinks that I
> do.)
>

Good that you don't think CL is a Smalltalk.  But why?  Generic functions
vs message sends, instance encapsulation and syntax.   I think generic
functions are very different to Smalltalk/Self-style message sending
(Java/C++/JavaScript message sending is much closer to Smalltalk).  And
hence method combination is very different in CL to Smalltalk's simple
super send.  While Newspeak extends Smalltalk's send semantics with
lexically-scoped sends, the extensions are still very much like Smalltalk
message sends (polymorphic, dispatching on a single receiver).  The other
major difference is encapsulation.  In CLOS there isn't any.  Generic
functions imply that not everything is an object.  But CLOS has a MOP and
we're in catch-up here.  Pharo is doing good work with Slots.  Finally
syntax is important.  The mixfix syntax that Smalltalk has is simple and
powerful.  CLOS has keyword arguments but they're quite different, for
optional parameters and can have default values and occur in any order.  A
final significant facility is multiple return values.  Smalltalk has a neat
hack (providing a block to receive the results), but that's not as
convenient.


> > Oh and course the big one - do I like it?
>
> Why, yes I do! (To both!)
>
> frank
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20140212/d5395755/attachment.htm


More information about the Squeak-dev mailing list