Programmieren Lernen - mit Scheme?

written by Martin H├Ącker on

Meine Freunden hat sich mal damit besch├Ąftigt. Und da dachte ich, schauste doch mal was es da so gibt.

Klaro das gro├če alte SICP, der Gro├čvater aller gro├čartigen Programmierb├╝cher mit Tiefgang. Gleichzeitig aber nat├╝rlich auch ziemlich Tief und f├╝r jemanden der sonst von Informatik nicht so viel Ahnung hat vielleicht zu viel.

Das sehen andere Leute auch so und daher gibt es inzwischen einen Nachfolger: Das HTDP.

Well, die Haupt Kritik war eigentlich das das Buch zu viele Grundlagen in der Elektrotechnik verlange und zu tief in die Konstruktion von Computern hineingeht, dabei aber gleichzeitig zu wenig dar├╝ber erkl├Ąrt wie man eigentlich ein gr├Â├čeres Programm aufzieht.

Und genau das wollten sie anders machen.

Gut fand ich dass Sie sich m├╝he geben jede ihrer Kapitel mit einem Rezept abzuschlie├čen, in dem dann Dinge stehen wie "Mach dir erst Gedanken dar├╝ber was aus deinen Funktionen herauskommen muss bevor Du sie implementierst, damit Du Logikfehler besser finden kannst. - Schon mal ein guter Ansatz.

Dazu kommt durchweg eigentlich ein recht sauberer Programmierstil mit dem ich durchaus leben kann.

Was mir eher auf den Geist ging: Die ganze Zeit ├╝ber predigen sie es, dass man zu jeder Funktion einen "Kontrakt" schreibt, der erkl├Ąrt welche Typen man erh├Ąlt und welche man zur├╝ckgibt.

Well, das ist ja ganz sch├Ân, aber entweder, soll man eine Sprache mit Typechecking nehmen, oder es lassen. Die Dokumentation ist zwar ganz nett - aber dann doch bitte so, dass man die Variablen so eindeutig benennt, das keine Typ-Unsicherheiten auftreten.

So sind die Kommentare (von denen sie pro Funktion mindestens drei bis fünf Zeilen haben wollen) nach der ersten Änderung einer Funktion nicht mehr aktuell.

:-(

Dazu kommt, dass der Klammernwald von Scheme, nat├╝rlich gerade f├╝r Anf├Ąnger schnell mal verwirrend wird und ohne Editor-Unterst├╝tzung gar nicht handhabbar ist. Andererseits: da gew├Âhnt man sich gleich daran kleine Funktionen zu schreiben...

Was ich auch merkw├╝rdig finde ist, dass den studenten die wirkliche Freude eines metazirkul├Ąren Interpreters vorenthalten wird. Da hat man sowas mit Scheme schon unter der Haube, und dann geht es irgendwann um den Interpreter und es werden lauter neue Datentypen eingef├╝hrt um etwas Scheme-├ähnliches darzustellen, dass dann nicht mal richtig interpretiert werden kann.

Habt ihr wirklich toll gemacht.

Generell hat das Buch weniger Tiefgang als das [- vor allem weil es dazu nat├╝rlich die ganz hervorragenden http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ Video-Lectures gibt, die einfach nur begeisternd sind.

Fazit: Irgendwie hat das Buch schon Sinn - aber Begeistern kann es mich nicht. Mal schauen wie es meiner Freundin geht. :)

p.s.: Zum SICP gibt es noch einen Nachfolger, SICM - Structure and Interpretion of Classical Mechanics. Das werd ich mir mal demn├Ąchst ansehen m├╝ssen. :)