Language wars! (was:ANSI Smalltalk draft standard completed!)
jwdavison at lucent.com
Mon Dec 22 19:07:42 UTC 1997
AlumsHubby at aol.com said:
> I've heard Smalltalk described (fairly or unfairly) as a "dying" language
> and have been advised not to spend much time looking at it; C++ , my
> CompSci instructor declared, was the way to go in learning marketable OO
> skills. In the face of such opposition, I wonder how it is that people
> are investing the resources to get an ANSI standard in the pipeline.
> What are the advantages of Smalltalk over other languages...or is there a
> FAQ list I'm supposed to read for questions like that?
You need to be careful with questions like this, since they touch on deeply
religious issues, and can spark endless almost meaningless discussions.
Smalltalk is a very small language that provides an excellect introduction
object oriented programming.
At one time I advised people, myself included, to learn Smalltalk as a step
in moving from C to C++. I took my advice and found it had a minor
problem: I found Smalltalk's vision of Object Oriented Programming well
suited to my way of approaching design -- after I got over the hump, it
seemed like "the right way". I then moved on to doing OO programing in
C++. (I had/have no problem with Abstract Data Type programming in C++ --
it fits nicely, and I like C++ for that purpose.) Unfortunately, I found
myself very frustrated by C++ when trying to do what I had learned to call
OO programing. The problem with my advice seems to be that if you learn
Smalltalk and then C++, you may not want to move to C++...
Basically, if "Object Oriented" means to you what it means in Smalltalk,
you can't do it in C++. Similarly, if "Objected Oriented" means to you
what it does in C++, you'll probably be frustrated by Smalltalk.
I'll stop here, before getting too far into my opinions.
It's probably more important to learn different programming paradigms than
particular languages. Different languages support different paradigms
better than others. The short list of languages I'd tell people to learn
would be something like: Lisp, Smalltalk, Snobol, and C. I'd be willing
to substitute Algol, Pascal, Fortran, PL/1, or C++ for C, as they all have
the same basic paradigm behind them.
More information about the Squeak-dev