Überlegen ist nun Etoys/Squeak aus pädagogischer Sicht sicherlich in vielerlei Hinsicht. Es kommt bei den Kiddies kaum Frust auf, Spiel überwiegt. Wenn ich mir allein überlege, wie lange ich für so einen Quatsch in C++ oder Java bräuchte?
#(1 2 3 4) + 5.
#(6 7 8 9)
#(3 #(3 4) #(5 6 7)) * 3.1415.
#(9.4245 #(9.4245 12.566) #(15.7075 18.849 21.9905))
6 Dinge allerdings machen mir Kopfschmerzen:
1. Einmal Smalltalk - die wollen nie wieder andere Programmiersprachen erlernen!
2. Smalltalk ist Hacken, kein modernes Software Engineering, wie man z.B. mit JAVA und BlueJ lernen kann.
3. Multiprozessorunterstützung fehlt bislang (RoarVM kommt wohl bald)
4. Erziehung zur Frusttrationstoleranz. Sich mal auch "durchbeissen müssen" durch Bits und Bytes
5. Sinnlos erworbenes Wissen, da kein Entscheider Squeak einsetzen wird.
6. Zu hohes Abstraktionsniveau für Einsteiger
zu 6)
The Elements of Computing Systems: Building a Modern Computer from First Principles ... Von Noam Nisan,Shimon Schocken http://books.google.de/books?id=THie6tt-2z8C&printsec=frontcover&sou...
Wer sich das in Ruhe mal durchliest, wird viele neue Erkenntnisse haben. Nicht nur, dass das pädagogische System von Shocken sich nicht nur um Programmierung dreht, sondern ebenfalls um den Entwurf der dazu gehörigen Hardware, was elementare Einblicke in die Wechselwirkung von Hard - und Software gibt, kein - man kann einen Computer mit Hardware simulieren und im Betrieb beobachten. Und später das auch in FPGA oder ASIC giessen. So erfährt man auch, was es mit diesen Firmware - Treibern unter Linux auf sich hat! ;-) Z.B. ist es recht anschaulich erklärt, wie man ein PONG Spiel mit nur wenigen hundert Byte realisiert.
Ich verwende das System zur Ausbildung von Informatik - Studis an der Berliner Uni. Erinnert mich an die Zeit, wo ich selber noch Chips gelötet habe.
zu 3)
Schaue ich mir das neue C++0x, die Programmiersprache GO, Haskell an, so komme ich mit diesen Werkzeugen zu jedem Ziel. Automatische Parallelisierung steckt bereits in den neuen Libraries.
In Kürze werden alle Computer Mehrprozessorsysteme sein, ARM, INTEL, GPGPU's sogar massiv. Ein Parallelrechner mit 512 Prozesoren ist für unter 1000€ zu haben!
Smalltalk besitzt z.B. im Gegensatz zu Haskell keinerlei eingebauten Parallelismus. In Haskell sind alle verwendeten Algorithmen *GRUNDSÄTZLICH* parallelisierbar. Keine Library, die nicht vollautomatisch alle verfügbaren Prozessoren ausnutzt. C++0x wird da kaum hinterher stehen, GO ebenso. Smalltalk ist zwar theoretisch auf der RoarVM lauffähig, aber *ALLE* verwendeten Algorithmen in den Libraries sind Single - Prozessor Algorithmen. Smalltalk müsste, um eine Zukunft zu haben, angesichts der MP - Welle, *komplett* eingestampft und mit Parallelalgorithmen völlig neu implementiert werden.
Zu RoarVM siehe: http://forums.instantiations.com/viewtopic.php?f=12&t=5523
Damit komme ich zu 5.)
Es ist für einen Schüler einfach vertane Zeit, Smalltalk zu lernen, wenn er nach Schulschluß einen Nebenjob in einer Programmierfirma mit C++0x oder Java haben könnte.
MfG, Guido Stepken