How about Smalltalk-2000?

Jarvis, Robert P. (Contingent) Jarvisb at timken.com
Wed Feb 16 20:06:20 UTC 2000


> -----Original Message-----
> From:	Warren Postma [SMTP:wpostma at ztr.com]
> Sent:	Wednesday, February 16, 2000 11:57 AM
> To:	'Dan Ingalls'
> Subject:	How about Smalltalk-2000?
> 
> Voila, Smalltalk-2000, a dialect of Smalltalk-80 that acknowledges that
> Smalltalk has finally developed an alternative to the most unreadable part
> of Smalltalk-80 syntax.
> 
What's *better* about this?  Is grafting bits and pieces of Basic, Python,
Java, C, Fortran, COBOL, and/or <your favorite language here> going to make
Smalltalk "better"?  Or is this simply pandering to people whose vision of
what a computer language "should" look like has been formed by exposure to
those other languages, and who don't care to learn anything new?

When I first started trying to learn Smalltalk, back around nine years ago,
I bought a copy of Smalltalk/V for Windows v1.0, loaded it one my machine,
started working my way through the tutorial, and I just flat-out did not get
it.  At the time I had about 18 years of experience with ALGOL-derived
languages, and this Smalltalk stuff was...well, "different".  It was quite
obvious to me that Smalltalk was all wrong, totally illegible, screwed up,
and *it just didn't look right*.  Now, C - C was perfect.  Wonderful.  Not
only that, I knew it really well.  Ditto C++, although there were lots of
quirky little bits in there I didn't (and still don't, for that matter) grok
- but no matter.  It was perfect.  (Of course, ten years before *that* I
thought C was screwed up - any language that used *symbols* like '{' instead
of good old words like 'BEGIN', and which used <retch!> *lower-case letters*
in identifiers, wasn't worth *MY* time :-).  I iterated through the cycle of
"I want to learn Smalltalk - this stuff looks yucky - it's obviously screwed
up - to h*ll with it" several times until I managed to clear my
"previously-conceived notions" stack, and actually sat down and figured out
the how's and why's of Smalltalk.  If I recall correctly I finally had my
"road to Damascus" experience when I realized that the language designers
weren't simply being perverse when they made the "normal" "if <condition>
then <statement> else <statement>" logic into "<boolean> ifTrue: <block>
ifFalse: <block>" - it's this way because #ifTrue:ifFalse: is, by God, a
*message* sent to a Boolean which evaluates the correct block depending on
*which* Boolean (true or false) receives the message.  The receiving Boolean
knows *which* block to evaluate simply because it "knows" (by existence)
which Boolean it is, and has the proper logic written in to it.  That was, I
think, the most electrifying experience I'd had in computing since I figured
out, when I was sixteen, that computers weren't half as complicated as I'd
been told, and that I could actually understand what was going on.

OK, count me among the pro-Smalltalk "don't change a hair for me/Not if you
care for me" crowd.  I find the internal consistency of Smalltalk wonderful.
I don't *want* a bunch of special "let's look more like C/Python/ALGOL"
syntax rules, VM-supported Singleton objects, and/or other (pardon my
bluntness) crap littering the landscape.  If something is truly an
improvement, great.  But "let's make Smalltalk look more like <some other
language>" is not a step forward on either the pink or blue planes.

Bob Jarvis
Compuware @ Timken





More information about the Squeak-dev mailing list