next up previous contents korn.pngacroread.pngtux.pngmain.pngsqueakland.pngsqueak.png
Next: Ein mögliches Mißverständnis ... Up: Einleitung Previous: An wen richtet sich   Contents

Überlegungen zur Sprache und zur Informatik

Programmieren hat mit Informatik genau so viel gemein wie der Rechenknecht vergangener Tage mit dem Mathematiker. Aus diesem Grunde geht es hier nicht darum, für die Sprache Smalltalk / Squeak zu werben. Wer weiterhin C++, Java oder was auch immer, im Unterricht einsetzen möchte, soll es tun. Viele Lehrpläne schreiben - glücklicherweise - keine Programmiersprache mehr vor. Für Begegnungsschulen treten aber gewisse Zwänge in den Vordergrund.

Alltagssprache: An Begegnungsschulen kann eine wohlüberlegte erste Programmiersprache den Schülern sehr helfen. Es ist zu bedenken, dass der Unterricht mit Deutsch als einer Fremdsprache verfolgt werden muss. Daher bedeutet eine Programmiersprache, deren Syntax sich an der Alltagssprache orientiert, einen enormen Vorteil. Ein C++, Java oder Python-Konstrukt wie

sveta.gibBitteUnd('marek','dieButter','denTee')
ist sicherlich fragwürdiger als Smalltalks Version

sveta gib:'marek' bitte:'dieButter' und:'denTee'.
Smalltalk lehrt damit zugleich - sehr subtil - das Bilden ganzer Sätze, was von Schülern beim mündlichen Gespräch aus Angst vor Fehlern gerne vermieden wird. Aus diesem Grunde wird bei den Kerninhalten des Tutorials zunächst die Sprache so weit wie notwendig dargestellt (Squeak 1 bis Squeak 4), während die restlichen Abschnitte (Squeak 5 bis Squeak 9) einen engeren Bezug zu sprachenunabhängigen Inhalten der Informatik herzustellen versuchen.

Konzept: Das zweite Kriterium, was in diesem Zusammenhang gar nicht hoch genug eingeschätzt werden kann, ist die Sicherstellung eines konsequenten Konzeptes. Von Vertretern anderer Meinungen wird dies gerne mit »Purismus« verwechselt. Ich wage die Behauptung, dass es unnötig schwierig ist, das objektorientierte Denken mit einer Hybridsprache zu lernen. Java ist - entgegen vieler Meinungen - nicht konsequent objektorientiert. Sie orientiert sich wesentlich an dem Smalltalk-Ableger Self, der ganz wesentlich mit so genannten Prototypen arbeitet. Der grafische Bereich von Squeak, der sich zum Beispiel mit eToys (allgemein mit Morphic) beschäftigt, verwendet ebenfalls Self. Der Squeaker wird dies allerdings als Marginalie betrachten, da das echte Self wenigstens die Syntax von Smalltalk verwendet. Dass die Kopie einer Ellipse eine wirkliche Kopie eines Prototyps darstellt und eigentlich mit der Instanziierung eines Objektes über eine Klasse nichts zu tun hat, wirkt sich nicht störend aus.

Java verwendet allerdings - trotz Self-Konzepten - die eher an prozeduralem Denken orientierte Syntax von C++. Weder Klassen, noch Anweisungsblöcke sind Objekte. Zahlen ebenfalls nicht. Zugriffsbeschränker wie public, protected oder Typendeklarationen bei Variablen haben in einer echten objektorientierten Sprache eigentlich nichts verloren (siehe Erläuterungen in Squeak 1). Python verzichtet denn auch teilweise darauf, benutzt aber ebenfalls eine an C++ orientierte Syntax. Das bedeutet eine unnötige weitere Schwierigkeit für Zweit- und Fremdsprachler, die an inländischen Schulen wahrscheinlich weniger ins Gewicht fällt.

Syntax: Das dritte Kriterium ist eine Syntax, die auf alle unnötigen Fehlerquellen verzichtet, das saubere Programmieren ermöglicht und damit einen sehr gut lesbaren Code erstellt. Natürlich gibt es auch keine Regel, was nun als »sauber« zu bezeichnen ist. Python ist in gewisser Hinsicht aber sicherlich vorbildlich, da Anweisungsblöcke eingerückt werden müssen. Das Problem ist allerdings das Klassenkonzept. Ein weiteres Mal taucht ein Problem auf, wenn Klassen als etwas Anderes als Objekte betrachtet werden. Für diese seltsamen »Geistergebilde« gelten dann eigene syntaktische Regeln, und bei der Erstellung von Methoden gipfeln die Anforderungen in solchen Ungetümen wie

public static void main {


next up previous contents korn.pngacroread.pngtux.pngmain.pngsqueakland.pngsqueak.png
Next: Ein mögliches Mißverständnis ... Up: Einleitung Previous: An wen richtet sich   Contents
Heiko Schroeder 2006-03-01