On Wed, Apr 8, 2020 at 10:02 AM Robert Armstrong <bob at jfcl.com> wrote:
I should try Smalltalk, but I don't know anything
about the language.
The old DEC implementation is great as far as it goes. But ...
Smalltalk-80 really wants a dedicated workstation like the Xerox Alto,
Dorato, Star or the Tektronix 4404 (Magnolia) for which is/was designed.
The Vax implementation has some rougher edges, although it is not an
unpleasant experience if you ever used it on one of the other systems, you
will know it. Frankly, if you want to experiment with the language and
environment itself, I would recommend a more modern implementation called
Squeak <https://squeak.org/downloads/> which runs on Mac OS, Linux or
Winders and natively uses current graphics and integrates better - reminds
me more of the experience from the original.
That said, if your desire to see what the fuss was about in the early
1980's, the DEC version is fine; but you are likely to have to spend some
time trying to get all the pieces you need to run it assembled and working;
whereas Squeak should just install on a modern computer.
Either way, as much as I like the >>language<< you will find the big
problem with it is that its a closed environment/walled garden. In fact,
I have observed I never knew a single production system that used it, other
than some small demonstrations at Xerox. It is a great prototyping
language and I know a number of EE/CAD tools that were originally written
in Smalltalk but when they moved to a real vendor (Cadence then called
SDA), they were re-implemented in C++.
FWIW: It had an interesting effect on the designers of Java. While JAVA
had it's JVM, they were careful to ensure that Java apps could integrate
into the 'system' around them, which Smalltalk-80 (and Squeak also) does
not do well.
Have fun,
Clem
PS I have a running argument with some of the Smalltalk evangelists (in
particular like Richard Conto - whom I really respect and usually agree on
most things). Richard thinks Smalltalk/Squeak the best teaching
language/the first experience. I agree with him that it is a great
teaching language (and much better than C/C++ or Python) but because of the
walled garden, and frankly, I have yet found a good first book for it, I
still think that Pascal/Delphi or a simple (sub-set dialect) of Java is the
better place to start (although I'm starting to learn towards Go. However
Go, like Smalltalk, lacks a good intro text like Clancy's "Oh Pascal" or
Hansen's "Java for Everyone" to teach with).