Smalltalk: Requiem or Resurgence? {Dr. Dobb's Journal (05/06/06) Chan, Jeremy}

Ralph Johnson johnson at cs.uiuc.edu
Thu May 11 11:20:35 UTC 2006


People keep mentioning technical aspects of Smalltalk as being the
ones that will make people want to use it.  Technologists are
interested in technology, so this is not surprising.  However, people
are more important than technology.  If Smalltalk is going to have a
resurgence, the people who know and love Smalltalk will have to make
it happen.  It isn't going to happen automatically.  Jeremy Chan is
right to emphasize people problems like "no big company is pushing
it".

Every tool has its stengths and weaknesses.  To make Small prosper,
people should use it where it works and not use it where it doesn't
work.  Smalltalk is fantastic in small groups of motivated
programmers.  It is not so good in large groups with high turnover.
People seem to get excited about large Smalltalk projects, and to long
for the days of ten years ago when there were 100 person projects.  In
my opinion, those projects were never run well, and were probably all
a mistake.  Many of them were successful in the sense of bringing a
product to market, but all the ones I saw could have been done faster
and cheaper with a smaller team.

Smalltalk fans ought to go start companies.  Smalltalk has lots of
advantages in a startup, where it is important to get something
running quickly and where compatibility with existing systems is not
so important.  It doesn't work as well in a big company, where it is
iimportant to play it safe and there are existing standards and lots
of  existing systems.

Smalltalk is a wonderful language both for teaching and for research.
I've always wondered why it did so poorly in universities.  I think
that one of the reasons is that it is hard to learn.  There are too
many things about Smalltalk that are new.  The language is easy, but
the class libraries are large, and the programming environment is
different from what people are used to.  People are not used to "live
objects" and do not know how to take advantage of them.  The class
library is not modularized, so it is hard for newcomers to see what to
learn first.

Smalltalk is pretty easy to learn if you are pair programming with an
expert whose main goal is for you to learn, not to build a system.  It
is hard to learn from a book and from experimentation.  I taught
myself Smalltalk 20 years ago and have since taught it to a thousand
or so students.  I tell my students that they all will learn Smalltalk
faster than I did, because they will have a teacher.  This is not 100%
true, since some students didn't try very hard.  But it is pretty easy
to learn when you have a teacher who knows Smalltalk well.  One of the
problems with getting it used in schools is that somebody has to teach
the teachers.

So, if you want to help Smalltalk spread, sit down and program with a newbie!

-Ralph Johnson



More information about the Squeak-dev mailing list