[Squeak-ev] Smalltalk, Squeak / EToys für den Schulunterricht ...

stepken stepken at web.de
Son Apr 19 23:36:49 UTC 2009


Hallo Squeaker!

Ich habe vor ca. 2 Jahren so einige Projekte mit Kiddies begonnen, die 
auf Squeak 3.9 basierten, natürlich auf Squeak / EToys aufbauend. Ich 
war eigentlich schon richtig begeistert, zumal die Kiddies da 
Logikkacheln irgendwie zurecht schieben und die Dinge alle anfangen, 
sich zu bewegen.

Ein, wie ich mal sagen möchte, sauberes, didaktisches Konzept.

Ich habe dann ungefähr 60 kleine Tutorials geschrieben, alle für 3.9, 
die dann leider nicht in der Version auf squeak.de mehr liefen. Schade, 
dachte ich, aber die werden es schon hinbekommen, das mit der "Abwärts - 
Kompatibilität". Egal, nicht so wichtig.

Was mich immer schon störte an Squeak - das sagten mir auch einige 
Lehrer, dass man damit irgendwie keine professionellen Anwendungen 
zusammen basteln kann. Der Anteil an Smalltalk in der Industrie ist ja 
nicht so hoch, wohl aber stark ansteigend. Für die Kiddies also nicht so 
optimal. Das ist der Grund, warum viele Lehrer im Informatikunterricht 
auf Java gewechselt haben, *die* Anwendungssprache fast überall (neben 
.NET). Dort aber ist die GUI so komplex und universell zu erlernen, dass 
das kaum im Unterricht zu schaffen ist.

Ich habe mir dann den Unterricht in verschiedenen Schulen angeschaut. 
JAVA Tutorials, JBlue Libraries und die Kinder müssen satte 3 A4-Seiten 
an Definitionen eintippen, damit überhaupt erst einmal ein blauer Kreis 
auf dem Bildschirm erscheint ... Die sassen da, völlig demotiviert, 
viele wählten Informatikunterricht wieder ab.

Naja, habe ich mir gedacht, schreibe doch mal eine Smalltalk Lib für 
dynamische Bewegungen, so als Erweiterung für EToys, Stichwort "Physics 
Engine". So wo Gegenstände voneinander abprallen oder z.B. ein Auto über 
eine Landschaft fährt, über Hügel springt. (auf www.squeak.de zu laden)

Das war der Beginn eigentlich einer Lib, die Kinematik darstellt. Ich 
bin noch dran.

In der Zwischenzeit suchte ich nach einer Möglichkeit, Squeak zu 
beschleunigen. Nun, Frank Lesser bastelt am Dolphin NG, was auch 
kostenlos für Schulen auf der Homepage zu laden ist.

DNG erreicht C-Geschwindigkeit und man kann professionelle Anwendungen 
damit bauen. Der Editor ist schon Klasse, da er einen 
Vervollständigungs-Modus beherrscht.

Warum eigentlich nicht EToys auf Dolphin portieren?

Dann schaut ich mich nach Compilern für Smalltalk um, und wurde auf LLVM 
aufmerksam, schaut mir an, wer das Tool für welche Programmiersprachen 
einsetzt. Der JavaScript V8 - Interpreter vom Chrome Browser nutzt den. 
Allerdings ist das nun ein Jitter, also der übersetzt in 
Maschinensprache. Tolles Ding, dachte ich mir, geht ab, wie Luzie. 
JavaScript ist ja Smalltalk von den internen mentalen Modellen sehr 
ähnlich, also bastelte ich auf dem LLVM Ruby Projekt (siehe Orange 
Programmiersprache) mir so etwas wie einen Mini - Smalltalk - Compiler 
zusammen. Etwas rudimentär und seltsam, weil ein Ruby dann Smalltalk in 
Maschinensprache übersetzt.
Aber das Teil ist sauschnell, viel schneller als Squeak, stellt ich 
fest. C-Speed.

Dann fragte ich mich, womit Matz seinen neuen Ruby 1.9 - Interpreter 
gebaut hatte. YARV. Ok, dachte ich mir, schau Dich mal um, wo es 
vielleicht ein paar Smalltalk - Grammatiken gibt ... natürlich fand ich 
auch welche ... also kurz gesagt, ich habe ich ein vollständigen 
Smalltalk-Compiler laufen, ähnlich GNU Smalltalk, aber dahinter nicht 
GNU Lightning als Jitter, sondern LLVM. Zusammengebaut aus ... hmmm, wie 
soll ich sagen .... Fundstücken aus dem Internet. 1 Woche habe ich 
gebraucht. Nun dachte ich, vielleicht kann ich ja Squeak darauf portieren.

Tja, dachte ich, Compilerbau ist dank LLVM bzw. YARV zum Kinderkram 
geworden. Apropos - Mein Compiler läuft auch auf ARM, PPC, Sparc, Intel, 
.... Prozessoren (noch ungetestet). Ein paar Kleinigkeiten fehlen noch, 
z.B. SMP-Fähigkeit, Multi-Threading .... Kann man aber in der Schule 
unterrichten. http://llvmruby.org/wordpress-llvmruby/

Und dann stieß ich auf etwas, das verschlug mir fast den Atem.

http://hotruby.yukoba.jp/test-web/Box2DFlashAS3.html

Noch interessanter ist, dass man die Dinge in der Bewegung mit der Maus 
greifen kann, also z.B. die Raupe kann man aus dem Ring mit der Maus 
"herausziehen". Mann kann sogar mit etwas Energie die Ketten von der 
Raupe entfernen. Auch kann man die umfallenden Domino-Steine 
beeinflussen, e.t.c. Kinematik pur, in Echtzeit!!!!!

Das alles läuft alles äusserst flüssig in einem Javascript Interpreter, 
der die Programmiersprache RUBY auch noch emuliert. Und das dann noch 
schneller, als Squeak vermutlich jemals werden wird ;-)

Apropos: Der Code dazu findet sich unterhalb dieser "Rube Goldberg" 
Maschine. Mit Pfeiltasten links und rechts finden sich mehr Beispiele. 
Ich muss sagen, ich war baff!

Ruby ist, nebenher gesagt, eine Programmiersprache (siehe JRuby), die 
auch wegen ihrer Effizienz und Java-Kompatibilität in der Industrie 
verwendet wird. Von den inneren, mentalen Modellen her ähnlich 
orthogonal, wie Smalltalk, also ideal als "Lehrsprache" geeignet.

Nun frage ich mich, ob man vielleicht, nachdem man ein wenig EToys mit 
den Kids gemacht hat, nicht als Lehrer HotRuby im Firefox - Browser 
unterrichten sollte. Der Editor ist ja gleich mit drin!

Interessanter als E-Toys sind diese "Crazy Machines" zum 
Selberprogrammieren für Kiddies allemale!

Mir ist irgendwie die Lust am Kinematik - Projekt für Squeak vergangen. 
Das ganze Squeak - Projekt ist nur noch eine einzige Baustelle. Ich 
weiss nicht mehr, ob Morphic so noch bestehen bleiben wird, wenn Pharo 
erst einmal fertig ist.

Ich frage mich ernsthaft, was all die klugen Denker beim PHARO-Projekt 
so treiben, ob die da nicht an etwas arbeiten, was irgendwie immer 
weniger Sinn macht.

Was für mich Sinn noch macht, ist z.B. das "FROM NAND to Tetris in 12 
Steps":

http://www.youtube.com/watch?v=JtXvUoPx4Qs

Das Projekt, denke ich, werde ich in Deutsch mal übersetzen. Scheint mir 
immer notwendiger, angesichts der Mächtigkeit von Tools, wie LLVM ;-) 
Auch für Schulen gut geeignet.

Und dann frage ich mich, was noch für die Uni's zu Lehren übrig bleibt ;-)

Viele Grüße, Guido Stepken