Why Smalltalk matters

 
19 januari 2008

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).


Werken met ?
Kijk dan bij onze mogelijkheden voor zowel starters als ervaren engineers.


Categorieën: Development, Overige talen en platformen

Tags: , ,


Reactie

  • Jaap Taal schreef:

    Deze trend zie ik op heel veel niveau’s. Kijk naar het basis- en middelbaaronderwijs van tegenwoordig. Ik heb het zelf ondervonden en heb door mijn enthousiasme en aanmoediging van ouders wél alle sommetjes wiskunde gemaakt op de middelbareschool. Tegenwoordig krijgen de brugklassers (die op de basisschool al niet (goed) leren hoofdrekenen) vrijwel direct grafische rekenmachines in de handen gedrukt. Waar vroeger zelfs de meest alfa-achtige leerling moest kunnen ontbinden in factoren, staartdelen, differentiëren, abc-formule etc, kunnen de meesten beta-ers dat niet foutloos. Laat staan dat ze begrijpen wát ze doen. Vraag een middelbare scholier van nu niet om de abc-formule af te leiden.

    Ik ben van mening dat het allemaal veroorzaakt wordt door bezuinigingen, dat begint allemaal al op de basisscholen. Grote klassen zorgen ervoor dat leerlingen niet kunnen excelleren in waar ze goed in zijn. Daarna zorgt de basisvorming ervoor dat iedere leerling op hetzelfde niveau hetzelfde moet kunnen. Gevolg is dat op alle fronten het totale niveau wel moet zakken. Het cascade-effect mag duidelijk zijn.

    Ik ben niet tegen hulpmiddelen zoals de grafische rekenmachine, en zoals Java (hier met name de grote library’s). In tegendeel zelfs. Maar geef die hulpmiddelen pas als de leerling er klaar voor is. Dus geen rekenmachine op de lagere school, maar voor de kinderen die alles snappen pas als ze ingewikkelde ‘verhaaltjessommen’ moeten oplossen. Dit is ook toe te passen voor kinderen die snel een vreemde taal kunnen leren: geen Nederlands-Frans woordenboeken meer maar eenvoudige Franse woordenboeken die je met een kleine vocabulaire aan kunt. Deze leerlingen moet je dan ook in het Frans les gaan geven.

    Gelukkig worden deze trends wel opgepakt met het tweetalig middelbaaronderwijs en Montesori/Dalton basis- en middelbaar onderwijs. Netto zien de onderwijs mensen die ik spreek het vooral op de exacte linie achteruit gaan.

    Ik breek een lans voor goed informatica-onderwijs op de middelbarescholen, daar wordt nu nauwelijks aandacht aan besteedt. En dan niet alleen maar HTML en databases, maar ook de basisbeginselen in het programmeren (wat mij betreft besteden ze zelfs aandacht aan assembler).

    Geplaatst op 20 januari 2008 om 1:02 Permalink