A Lisper asks, "Am I supposed to like Smalltalk?"

Hernan Wilkinson hernan.wilkinson at mercapsoftware.com
Wed May 17 12:01:27 UTC 2006

I completly agree with what Ralph says... and because Smalltalk is so 
different to the other languages, enviroments, etc. it is so difficult 
to compare it with them...therefore when somebody talks about Smalltalk 
but have no expirience with it, I always propose he/she to really give a 
Smalltalk a try, do something important, get the taste of Smalltalk, and 
then to compare it with other languages... In almost 99% of the cases, 
if they have really used Smalltalk, there will be no need to compare 
Smalltalk anymore... they will feel what it is so difficult to explain, 
no more words will be needed.


Ralph Johnson wrote:

> The Smalltalk environment is optimized for browsing and reading, not
> for writing.  It assumes that the author of the code didn't know how
> you are going to reuse the code, so it provides ways of searching and
> analyzing rather than ways of organizing.
> As an author, sometimes I wish that I could organize my code into a
> linear structure that forced the reader to follow along in a certain
> order.  But when I am reusing someone else's framework, I often know
> that I am going slightly against the authors plans.  If we provide a
> way to give a more linear narrative, we need to avoid losing the
> ability to browse and analyze.  There have been several Smalltalk
> "literate programming" tools in the past that let people create a
> narrative that was a layer above the browser.  A "literate program"
> was a sequence of method definitions, class defitions and English
> documentation.  Readers could either follow the narrative or could
> access the classes directly though the browser.  These tools never
> took off, but I thought that the general idea was good.
> In one of the early days of OOPSLA, someone on a panel said that
> Smalltalk programmers should spend four or five times as much time
> reading code as writing code.  Someone in the audience stood and cried
> out "Now you tell me!  I thought I was feeble-minded because I spent
> so much time reading and so little time writing!"  Smalltalk is
> different.  It is different on many levels.  When we teach people
> Smalltalk, we have to prepare them for this difference.
> For example, one of the people who responded to the blog message said
> "A program is text".  But in Smalltalk, a program is not text, it is
> objects.  A program is a set of classes.  The classes and methods are
> not just represented by objects in Smalltalk, they *are* objects in
> Smalltalk.  The browser is an editor of classes and methods.  Yes, we
> can export classes and methods to text files, but the text files are
> not the way Smalltalk programmers think about programs.  The browser
> is how we think about programs, and the browser is an editor of
> objects that happen to be classes and methods.  In Smalltalk, a
> program is not text.
> But that is just one of many differences.  Smalltalk is objects all
> the way down.  We spend more time reading than writing.  We live in an
> "image", which is an executing program.  We modify our applications in
> the middle of their execution.  There is no "main".  When we write a
> program, we are not just reusing some code that is thirty years old,
> we are making it by modifying a program that started executing thrity
> years ago and that has been changed by thousands of people ever since.
> When we teach Smalltalk, we have a tendency to try to relate it to the
> students by explaining it in their terms.  We tend to downplay the
> differences.  But one of the big values of Smalltalk as an educational
> tool is the fact that it is so different.  These differences have
> disadvantages as well as advantages when it comes to building systems.
> But learning new things expands your mind, so from an educational
> point of view, the differences are one of the chief advantages of
> Smalltalk.
> -Ralph Johnson

Lic. Hernán A. Wilkinson
Gerente de Desarrollo y Tecnología
Mercap S.R.L.
Tacuari 202 - 7mo Piso - Tel: 54-11-4878-1118
Buenos Aires - Argentina
Este mensaje es confidencial. Puede contener informacion amparada 
por el secreto profesional. Si usted ha recibido este e-mail por error, 
por favor comuniquenoslo inmediatamente via e-mail y tenga la 
amabilidad de eliminarlo de su sistema; no debera copiar el mensaje 
ni divulgar su contenido a ninguna persona. Muchas gracias. 
This message is confidential. It may also contain information that is 
privileged or otherwise legally exempt from disclosure. If you have 
received it by mistake please let us know by e-mail immediately and 
delete it from your system; you should also not copy the message nor 
disclose its contents to anyone. Thanks. 

More information about the Squeak-dev mailing list