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 |
Free forum by Nabble | Edit this page |