Why Smalltalk matters

Computer Science Education: Where Are the Software Engineers of Tomorrow?

STSC CrossTalk – Computer Science Education: Where Are the Software Engineers of Tomorrow? – Jan 2008

Bovenstaand artikel wordt momenteel in o.a. onderstaande artikelen bediscussieerd.

Andere discussies porden mij ook om deze blog te schrijven, namelijk de problematiek die steeds weer optreedt rond het “begrijpen van het business domein”, wat bij Sogyo een primair doel is dat we menen beter te bereiken met Domain Driven Design. Daarover in een andere blog meer.
Het oorspronkelijke artikel van Dewar en Schonberg vind ik de moeite waard om te lezen. De breedte die het beheersen van genoemde talen als C, C++ en Lisp een programmeur geeft is onmisbaar en onderschrijf ik zonder meer. De uitspraak “Beware of the man of one book” is ook van toepassing op (programmeer-) talen (mensen die meer artikelen van mij hebben gelezen weten dat ik ook vaak hamer op het beheersen van meerdere spreektalen, met name zowel westerse als niet-westerse).
“Beware of the man of one programming language”.
Alleen met twee paragrafen in het artikel heb ik nogal moeite, namelijk die over Java en Ada.
Wellicht valt er iets positiefs over Java (als taal, ik heb het niet over Java libraries) te zeggen, maar wat de auteurs in dit artikel over Java en Ada schrijven is wel heel mager. Daarom mijn suggestie om deze paragrafen te vervangen door de volgende:

Why Smalltalk matters
We think that Smalltalk deserves a primary role to play in CS instruction. There several aspects of the language of importance here:

  1. The almost ascetic simplicity of the syntax of the language itself
  2. Reflection, namely the understanding that a program can be instrumented to examine its own state and to determine its own behavior in a dynamically changing runtime environment. This ability is much more far-reaching than most people realize, because of the almost complete openness of the environment, down to the level of the virtual machine (for example in Squeak, where the virtual machine is written in Smalltalk itself).
  3. The fact that those elements of style that are present in C++ and Lisp which help the programmers are also present in Smalltalk: encapsulation with classes, the emphasis on message passing (loose coupling), the absence of public data. This creates what might be called a unifying programming model which is only available in Smalltalk.
  4. The ability of Smalltalk environments to remove almost all of the (sometimes top-heavy) class libraries and start from scratch. Smalltalk has been called the ultimate bootstrapping environment by Alan Kay, which is nirvana for language experimentation and exploration (http://www.windley.com/archives/2006/02/alan_kay_is_com.shtml).
  5. An interesting observation on many of the current best practices is that many if not all of them seem to originate from Smalltalk:
    1. Extreme Programming
    2. Refactoring
    3. Unit testing
    4. Domain Driven Design
    5. (your favorite best practice here…)

(Einde van de paragraaf).