Smalltalk voor Kinderen

May 24, 2006

Ik heb “Squeak: Learn Programming By Controlling Robots” aangeschaft. Vind zelf Squeak een hoge drempel hebben, maar blijkbaar ben ik intussen zo geconditioneerd dat ik moeite heb met een ontwikkelomgeving dat geschikt is om kinderen spelenderwijs te leren programmeren.

Het is in elk geval goed te zien dat er nog boeken uitgegeven worden over smalltalk. Heb ik minder het gevoel dat ik met een dode taal bezig ben.

Overgestapt op Squeak

May 23, 2006

Ik ben na een kleine pauze toch maar weer verder gegaan met smalltalk leren. Het is toch een taal dat ik altijd heb willen leren en nu ik op ruby over stap denk ik dat het me zal helpen om de andere denkwijze aan te leren. Ik ben bang dat ik anders teveel op de java manier in ruby ga programmeren. Dat kan wat minder effectief zijn.

Als ontwikkelomgeving heb ik nu toch maar voor Squeak gekozen, omdat het op alle drie platforms (linux, mac, windows) er hetzelfde uitziet. De cincom producten zien er op windows wel goed uit, maar op linux vond ik het toch wel vreemd. Squeak is ook wel vreemd, maar nu hoef ik maar een keer te wennen aan de gui. En het is open source natuurlijk.

Als leidraad probeer ik het ruby pickaxe boek te gebruiken. Dus gewoon het voorbeeld van de jukebox in smalltalk na bouwen. Stap voor stap de equivalente smalltalk code van de ruby code opzoeken en kijken hoe ver ik kom:

'gin joint' size
'Rick' indexOf: $c
-1942 abs
So far so good. Toen kwam ik bij het maken van een class in ruby:

class Song
  def initialize(name, artist, duration)
    @name = name
    @artist = artist
    @duration = duration
  end
end
Een constructor met argumenten. Ik moest even uitzoeken hoe dat in smalltalk moet.

name: aName artist: anArtist duration: aDuration
  ^self new name: aName;
    artist: anArtist;
    duration: aDuration

De setters moeten dan ook gedefinieerd worden. Ik vind dit een beetje omslachtig. De constructor in smalltalk is een gewone class method die geen toegang heeft tot de instance variabelen. Het maakt een nieuwe instantie aan en initialiseert deze door m.b.v. de publieke setters waarden aan toe te kennen.

Get free blog up and running in minutes with Blogsome | Theme designs available here