Liebe Listenmitglieder,
Vielleicht interessien Sie einige Anmerkungen und
Hintergrundinformationen des Autors.
Ich nehme die "Intialisierungsmail" des
Diskussionsfadens von Klaus Meyer als
Ausgangspunkt.
>>> Das Buch "Objektorientierte Programmierung mit Python" hat
knapp 600
Seiten. Das Layout ist übersichtlich und klar, das
Inhaltsverzeichnis
ausführlich. Der Index scheint mir etwas knapp zu sein.
<<<
MW: Ich glaube auch, dass ein guter Index ein
wichtiges Qualitätsmerkmal ist und werde ihn bei der Zweitauflage gründlich
überarbeiten und -soweit es der Verlag mir erlaubt - erweitern. Mit über 900
Stichwörtern hat der Index von "OOP mit Python" aber durchaus einen Umfang, der
bei Lehrbüchern dieser Art üblich ist.
>>> Etwa die Hälfte des Buches ist eine Einführung in Python
(es wird schon V
2.3 verwendet), wobei der Autor einen Schwerpunkt "auf die
Erarbeitung von
Konzepten der Objektorientierung" gelegt haben will.
In
der zweiten Hälfte wird relativ ausführlich Tkinter behandelt, außerdem
einige andere Themen, zB CGI-Programmierung, Internet, Datenbanken,
Threads, Fehlerbehandlung usw...
Außer den unvermeidlichen Listings
enthält das Buch auch einige erklärende
Grafiken, einfache UML-Diagramme und
einige EBNF-Grammatiken zur Syntax
von Python. <<<
MW: Das Buch soll eine Einführung in die
Objektorientierte Programmierung sein, also damit auch eine Einführung in die
Programmierung als solche. Und damit müssen auch Konzepte wie Operatoren,
Kontrollstrukturen etc. besprochen werden, die nichts "spezifisch
objektorientiertes" in sich bergen. Die "richtige" objektorientierte
Programmierung beginnt ja eigentlich erst dann, wenn man eigene Klassen
definiert. Damit beginnen wir in der Mitte des Buches. Im ersten
Teil werden nur vorgegebene Klassen verwendet. Ich habe Wert darauf gelegt,
von Anfang an die Begrifflichkeit der Objektorientierten Programmierung
möglichst sauber zu verwenden. So ist die Rede von "Objekten der Klasse
File", der Begriff des "Datentyps" wird in Beziehung zum Begriff der
"Klasse" gesetzt, wir gehen auf die Identität von Objekten ein, es werden
Methoden von String- oder Dictionary-Objekten verwendet ..., um nur einige
wenige Beispiele zu nennen. Insofern zieht sich die objektorientierte Denkweise
wie ein roter Faden durch das ganze Buch - auch im ersten Teil.
>>> Der Autor pflegt einen sachlichen Still, die Beispiel,
soweit ich sie mir
angesehen habe, wirken aber etwas "hölzern", so wie man
sie aus manchen
Schulbüchern kennt. Jedes Kapitel hat am Schluß einen
Aufgabenblock und
die Lösungen gibt es auch gleich dahinter.
<<<
MW: Ich glaube, ich habe so eine ungefähre Ahnung,
was mit "hölzern" gemeint ist, vielleicht: nüchtern, ohne Verzierungen ...
Grundsätzlich: Ein Lehrbuch lebt von guten Beispielen. Ich habe versucht,
die Beispiele thematisch so zu wählen, dass sie reale Anwendungsfelder der
Informatik berühren. Auf der anderen Seite sollten die Listings möglichst kurz
und übersichtlich bleiben, um eine optimale Lesbarkeit zu gewährleisten. Bei der
Entwicklung der Beispiel war es manchmal so, dass der erste Entwurf
vielleicht fünf Seiten Programmtext umfasste, dann immer weiter gekürzt und
auf das Wesentliche reduziert wurde, bis dann am Ende nur noch eine Seite übrig
blieb. Beim Leser sollte die Idee entstehen, dass man das
Beispielprogramm zu etwas wirklich Brauchbaren weiterentwickeln
könnte.
>>> Auf Grund des Titels hätte ich ein Buch erwartet, welches
schon von
Python-Grundkentnissen beim Käufer ausgeht und nun die ganzen
Besonderheiten der "Objektorientierung" vertieft. Der Autor mag die
"Objektorientierung" mehr im Fokus haben, als das in anderen Büchern der
Fall ist, aber im Grunde scheint es mir im wesentlichen eine allgemeine
Einführung in Python (+ einiger Python-Libs wie zB Tkinter) zu sein.
<<<
MW: Viele Universitätscurricula gehen so vor.
Zuerst ein Kurs über (imperative) Grundkonzepte der Programmierung, dann ein
Fortgeschrittenenkurs über OOP. Wir haben versucht, sowohl (ambitionierte)
Einsteiger als auch Fortgeschrittene anzusprechen. (So steht es übrigens
auch auf dem Buchumschlag) Das bedeutet aber auch (wie schon gesagt), dass
zunächst grundlegende Konzepte angesprochen werden, die für
Fortgeschrittene vielleicht stellenweise langweilig sind. Allerdings habe
ich auch schon von erfahrenen Programmierern gehört, dass sie auch im ersten
Teil des Buches etwas dazu gelernt hätten :-)
>>> Obwohl schon Pyton V2.3 verwendet wird, werden neue Python
Funktionen -
wie zB Generatoren - nicht behandelt.
MW: Das Buch sollte maximal 600 Seiten haben. Es
mussten also Schwerpunkte gesetzt werden. Ein Zusatzkapitel ist noch auf der CD.
Aber viele spezielle Themen fielen dem "Rotstift" zum Opfer, darunter etwa die
Anbindung von Python-Skripten an MySQL-Datenbanken und C-Programme, XML,
Generatorfunktionen, Iteratoren etc. Um die Generatorfunktionen tut es mir schon
deswegen Leid, weil ich jahrelang an einem Lehrstuhl gearbeitet habe, bei dem
das Rechnen mit unendlichen Objekten ein zentrales Forschungsgebiet war.
>>> Zum Schluß noch eine merkwürdige Sache (die wohl kein
Zufall sein kann!):
In allen Programmen werden keine Umlaute verwendet und es
gibt auch keine
tieferen Informationen zum Thema Unicode (trotz eines
eigenen Kapitels
über Zeichenketten)! Überall werden die Umlaute konsequent
umschrieben
(ae, ue usw.). Beim Buch ist auch eine CD dabei, auf der alle
Beispielsourcen enthalten sind. Ich habe die durchsucht, keine
Umlaute!
Warum das so ist, weiß ich nicht, aber gerade über Unicode hätte ich
mir
ein ausführliches Kapitel gewünscht. <<<
MW: Entscheidend für mich ist die Lesbarkeit von
Programmbeispielen. Deshalb habe ich die Umlaute und ß meist umschrieben.
Beachten Sie: Listings in einem Buch sind Texte, die gelesen werden.
Es bereitet einfach gr\xf6\xdfere M\xfche einen
Text zu lesen, in dem Nicht-ASCII-Zeichen durch Escape-Sequenzen codiert
sind.
Zum Thema Unicode: Ich hatte gedacht, mit einer
Seite die Essentials ausreichend gut behandelt zu haben. Aber
interessant zu erfahren, dass hier mehr Information gewünscht
wird.
Soweit meine Anmerkungen.
Wenn Sie Fehler finden oder sonstige kritische
Kommentare haben, können Sie mir auch gerne direkt schreiben.
Es wird in Kürze auf der Web-Site von mitp eine
Errata-Seite zu diesem Buch angelegt.
Frohe Weihnachten und alles Gute im Neuen
Jahr
Michael Weigend