Wo Viele gehen, waechst kein Gras. Und in der Tat, das 536 Seiten starke, in Englisch verfasste Buch geht neue Wege, verlangt aber einiges an Wissen und Scharfsinn ab.
Der Autor sieht Software als eine Form der Abstraktion von Wissen, das dabei eine entscheidende Rolle spielt. Die Hauptschwierigkeit beim Erstellen von Software besteht ja in der Ueberbrueckung der Diskrepanz zwischen menschlichen Denkkonzepten und den Erfordernissen der maschinellen Darstellung.
Die ersten Kapitel beschreiben die bekannten Konzepte von Vorgehensmodellen, Patterns und Meta-Informationen, die den Medienbruch zwischen Abstraktion und Code vermindern sollen. Obwohl eher an theoretischem Wissen orientiert, birgt das Buch anschauliche und einleuchtende Beispiele einer moeglichen Umsetzung wie:
Zeitweise langatmig, aber trotzdem faszinierend, kommt dann ab S. 190 die eigentliche Frage ins Rollen, wie wir als Entwickler denn eine low-level Systemsoftware vom high-level Wissen separieren und das extrahierte Wissen speichern k�nnen. Konsequenterweise laesst sich im Buch auch Wissen in Zustaende und Logik auftrennen.
CYBOP bietet hier eine neue Theorie des Entwickelns, die durchaus vielversprechend zu sein scheint, da sie nicht nur Mankos bestehender Paradigmen beseitigt, sondern vor allem flexiblere, zukunftssichere Anwendungen ermoeglicht. Durch das leicht zu verstehende Hierarchie-Konzept werden so Fachleute in die Lage versetzt, selbst aktiv an der Entwicklung mitzuwirken. Die in klassischen Entwicklungs-Prozessen zu findende Implementierungsphase entfaellt somit weitestgehend.
Im aufwaendig verfassten Buch geht es hauptsaechlich um Software-Architektur, Sprachen und die erwaehnten Patterns mit teils recht philosophischen Ueberlegungen dahinter. Das Buch behauptet, mit der CYBOP-Theorie die Fehler herkoemmlicher Sprachen und Programmier-Paradigmen (objektorientiert, aspektorientiert etc.) zu beseitigen. CYBOP wird (nicht nur im Buch) Grundlage des Res Medicinae Projekts sein (ein Spital-Informationssystem), dessen Anwendungs-Module damit komplett in CYBOL (eine XML Basis) gebaut werden. Zur Darstellung von Wissen gemaesz dem vorgeschlagenen Schema wurde eine XML-basierende Sprache namens CYBOL definiert und ein dazugehoeriger Interpreter CYBOI entwickelt. Trotz ihrer Schlichtheit ist CYBOL in der Lage, Wissen komplett zu beschreiben.
Aehnlich dem Aufbau einer DNA, ist ein komplexes System, das funktioniert, mit Sicherheit aus einem einfachen System entwickelt worden, das funktionierte. Ein komplexes System, das man von Grund auf entwirft, funktioniert selten und laesst sich auch nicht dazu bringen, zu funktionieren. Solche Analogien aus der Natur und der Kybernetik dienen dem Autor, den Softwarebau als Konstruktionsvorschrift zu verstehen. Das Geheimnis liegt in der Differenzierung zwischen low-level Struktur und high-level Funktion.
Ueberraschungen wie z.B. auf S. 126, wo die Abkuerzung von UNIX (Universal Interactive Executive) mal so erklaert ist, gibt es einige. Heiszt auch, ohne Struktur laesst sich keine Funktion ausfuehren. Man sollte nun meinen, dass so die Ergebnisse im Softwarebau immer genauer werden. Das Gegenteil kann jedoch der Fall sein. War das Codesystem eben noch in harmonischer Uebereinstimmung mit dem Modell, so zeigt es auf einmal scheinbar chaotisches Verhalten. Das System kippt um in scheinbare Unordnung, eben in Chaos. Das Buch vergleicht und verbessert traditionelle Konzepte im Softwarebau durch Denkansaetze anderer Wissenschaftsgebiete bzw. Phaenomene der Natur -- daher die Bezeichnung: Kybernetik-orientiert.
Der Inhalt des Buches ist frei; er steht unter der GNU FDL Lizenz. Ein brillantes Werk wohl eher fuer den Methodiker und Analysten und weniger fuer den Pragmatiker und Programmierer.
2007-07-16, Max Kleiner, Bern, Schweiz
abgedruckt auf Amazon.de
und im Entwickler-Magazin (Ausgabe 5/2007, September/Oktober 2007)