Didaktische Vorzüge von Python
- Python ist relativ schnell und leicht erlernbar und basiert auf wenigen Konstrukten. Die
Quelltexte sind gut lesbar.
- Pythons Syntax zeigt eine gewisse Verwandschaft zur Darstellung von Objekten in UML
(Unified Modeling Language)
- Python zwingt zur (optisch) strukturierten Programmierung, da Blöcke nicht über Klammern
oder BEGIN und END, sondern durch Einrücken definiert werden.
- Python kennt "named parameter", die es erlauben, viele Klassen mit default-Parametern zu verwenden,
ohne sie explizit aufführen zu müssen
- z.T. mächtige Datentypen incl. der erforderlichen Operationen stehen zur Verfügung (Zahlen, Strings,
Tupel, Listen, Dictionaries)
- Python verwendet die Tk-Bibliotheken von Ousterhout, die hier eine einfache und syntaktisch saubere
objektorientierte Gestaltung grafischer Benutzeroberflächen erlaubt.
- Pythons Klassenbibliotheken sind übersichtlich, verständlich und gut dokumentiert (HTML-Browser).
Ihr Umfang ist erträglich.
Python erlaubt bei der Programmierung die strikte Trennung zwischen Fachkonzept (den Modell-Klassen)
und der Benutzerschnittstelle (UI-Klassen). Dabei sind in der Regel aber Controller und View
so eng verzahnt, dass das MVC - Muster hier kleine Einschränkungen erfährt und in der Regel das
vereinfachte "Model - look&feel" - Konzept (Subjekt-Beobachter-Konzept, also ein "M-VC"-Konzept)
realisiert wird.
Didaktische Vorteile, die professionelle Programmierer aber ggf. als nachteilig empfinden dürften:
- Python kennt keine Zugriffskontrollen (public, private), wodurch aber die Syntax übersichtlicher
wird. Da bei Python Klassen,deren Namen
mit zwei Unterstreichungszeichen beginnen, vom IMPORT/EXPORT ausgeschlossen werden, ist das Fehlen
der Zugriffskontrollen durchaus akzeptabel.
- In Python müssen für Variablen (Objekte) die Datentypen nicht explizit deklariert werden. Die Typenzuordnung
erfolgt durch die Art der erstmaligen Verwendung. Auch hierdurch entfällt eine Menge an Quelltext, was
die Lesbarkeit in gewisser Weise auch verbessern kann, andererseits muss man durch eine vernünftige Anordnung dafür
sorgen, dass "Variablenerzeugungen" nicht im Quelltext "verstreut" stattfinden (gilt auch für C und Java).
Der Vergleich mit
den Variablen in Basic trifft hier nicht recht, denn in der Regel sind die in
Python definierten (und gleichzeitig deklarierten) Variablen nur immer innerhalb ihrer Umgebung
(z.B. innerhalb einer Methode) gültig und nicht etwa global.
Dr. Bernd Kokavecz
15.12.99