[net.micro] Smalltalk ~~~=

idhopper (12/14/82)

I   agree   that   Smalltalk   does  not  provide  facilities  that  are
significantly different from other languages, *but* it  does  provide  a
very  simple  and  consistently  applied  metaphor  for  using some very
sophisticated facilities.  The syntax and semantics of the heart of  the
language  can  be  summarized  in a couple of pages, at most -- try that
with Ada or Alphard.  This may seem somewhat irrelevant, but it has  one
very  important result: conceptual simplicity.  When writing a Smalltalk
method, you have to  remember  very  little  other  than  what  pertains
directly  to  the  task  at  hand -- you can concentrate on the software
tools you are using to solve the problem, *not* on  the  syntax  of  the
language you are using (even in Pascal, a relatively simple conventional
language, it takes quite  a  while  to  learn  where  to  put  the  damn
semicolons).

Furthermore,  the statement that this metaphor is easy to learn *is not*
simply an unfounded religious conviction: LRG has done many  experiments
with  teaching  children  how  to  use  Smalltalk,  and  they  were very
successful.  If you check you back issues of Creative (WAY back,  around
75-77?)  you  will  find  articles  about  8th and 9th graders who wrote
things like interactive drawing programs and flight  simulators.   These
involve  complex concepts like concurrency, which are normally saved for
second or third  year  university  programming  courses.   If  you  want
scientific  verification,  try  the  following experiment: take 20 grade
eight kids, spend a month teaching them how to program, 10  in  Ada  (or
CLU  or  Alphard),  and 10 in Smalltalk.  If you're lucky, the Ada group
will have some interest in computers left by the time you're through.

Regarding  machine  efficiency:  so  what?   Smalltalk  does  take  more
horsepower  than your average compiled program, but answer me this: what
is the primary cost in software  development,  machine  time  or  person
time?   Smalltalk  uses  that  additional  machine  time  to provide the
programmer with a unified, consistent, conceptual framework in which  to
develop  his programs, and it is worth it.  Furthermore, machine time is
getting cheaper, human time is getting more valuable; undue concern  for
machines means that a lot of people will be wasting their time.

To conclude with a quote from Alan Kay:

Though  Smalltalk's  structure  allows  the techniques now known as data
abstraction to be easily  (and  more  generally)  employed,  the  entire
thrust  of  its  design  has  been  to supercede the concept of data and
procedures entirely; to replace these with  the  more  generally  useful
notions of activity, communication, and inheritance.

	--ravi