flip flip Hier klicken Jetzt informieren Spring Deal Cloud Drive Photos Mehr dazu Hier klicken HI_PROJECT Mehr dazu Mehr dazu Shop Kindle Unlimited BundesligaLive

Kundenrezension

am 9. April 2014
"Cargo cult programming is a style of computer programming characterized by the ritual inclusion of code or program structures that serve no real purpose". (Wikipedia Cargo_cult_programming)

"In other words, it seems that fanatical advocates of the New Programming are going overboard in their strict enforcement of morality and purity in programs"
(D.E.Knuth: Structured Programming with go to Statements).

I had a problem so I thought to use patterns.
Now I have a ProblemFactory.
(Frei nach harmful-cat).

Donald Knuth nannte seine fundamentalen Werke nicht umsonst "The Art of Computer Programming". Es gibt auch in der Kunst grundlegende handwerkliche Techniken. Hier wird aber der Versuch gemacht die Kunst auf eine Ansammlung von Legobausteinen zu reduzieren. Wie bereits von anderen Reviewern kritisiert, gibt es im Buch kein längeres zusammenhängendes Beispiel. Das ist kein Zufall oder eine Auslassung. Man bekommt mit diesen Legobausteinen keine schöne Hütte zusammen.
Mir ist schon öfters Kode untergekommen bei dem ich mich gefragt habe: Warum ist das mit der Kirche ums Kreuz programmiert? Man kommt dann - auch auf Grund der Namensgebung - drauf: Der Autor ist den Designpattern sklavisch gefolgt. Da reiht sich wie in einer Matroschka Fassade auf Fassade und irgendwann in einer kleinen Ecke wird dann wirklich was gemacht. Das Wirthsche Gesetz: "Software wird schneller langsamer, als die Hardware schneller wird" zehrt ganz wesentlich von diesem Pattern-Fetischismus. Das Java-EE Monster ist ein klassisches Beispiel für Patterns in Action. Effizientes Programmieren kommt in der Pattern Welt gar nicht vor.
Das Buch legte auch den Grundstein für eine ganze Pattern-Industrie. Gescheiterte Programmierer leben davon anstatt konkreter und eleganter Lösungen allgemeine Ratschläge zu verkaufen. Letztendlich ist das ein Pseudoreligiöses Business ganz ähnlich der evangelikalen Sekten.

Es gibt allerdings auch Vorzüge. Wenn man auf die Pattern-Terminologie stösst, weiss man, was der Programmierer im Schilde geführt hat. Man weiss auch, dass man den Kode so schnell wie möglich wegwerfen und neu schreiben sollte. Außerdem weiß man, dass man sich ein Buch mit dem Schlagwort "Pattern" nicht zu kaufen braucht. Das ist die Dialektik der Pattern-Aufklärung. Sie bilden ein Antipattern um das man so gut wie möglich einen Bogen macht. In diesem Sinn ist das Buch auch wieder nützlich.
Das ist kein Plädoyer für "anything goes" sondern für selbständiges Nachdenken wie man ein Problem am besten löst.

Wer wirklich an grundlegenden Techniken des Programmierens interessiert ist sollte
Douglas Comer: Operating System Design, The Xinu Approach
lesen. Comer demonstriert an einem komplexen Problem wie man Software strukturiert. Er zeigt, dass die grundlegenden Probleme inhaltlicher Natur sind und nicht auf einzelne Programmiertricks reduziert werden können. Das Wort "Pattern" ist mir im Comer Buch nicht untergekommen. Der Pattern-Gläubige erwartet allerdings einfache Botschaften und Lösungen. Dafür ist das Comer Buch wieder nicht geeignet.

P.S.: Das Knuth-Zitat bezieht sich nicht auf die Viererbande. Aber es passt zu allen Versuchen Programmieren in ein Prokrustes Bett zu stecken.

Nachtrag am 20.05.2018.
Ein grundlegendes Problem bei der Implementierung von Anwendungen ist heute (massive-)Parallel Computing und hier insbesondere die Nutzung von Hardware-Clustern. Oder mit anderen Worten Big-Data. U.A. wurde für derartige Anwendungen Map-Reduce entwickelt.
Diese sehr haarigen Probleme kommen in der Baukasten-Welt der Gang überhaupt nicht vor, obwohl das Problem im Grunde sehr alt ist.
RAM war einst eine sehr kostbare Ressource und man kämpfte damit, wie man in 64 KByte das Wörterbuch eines Spell-Checkers unterbringen konnte. Unix basiert nicht zufällig auf dem Pipe Konzept. Man teilt die Aufgaben in kleine Einheiten und bearbeitet ein Problem Schrittweise ab. Map-Reduce ist dieselbe Idee.
Heute ist die Einheit nicht mehr Kilo sondern GigaByter, aber die Daten sind auch mindestens im selben Ausmass mit gewachsen.
Ich habe den Eindruck, dass Leute die dieses Buch sooo super finden, in ihrem Programmierleben noch nie ein ernsthaftes Problem gelöst haben.
13 Personen fanden diese Informationen hilfreich
|55 Kommentare|Missbrauch melden| Permalink
Was ist das?

Was sind Produktlinks?

Im Text Ihrer Bewertung können Sie mit einem Link direkt zu einem beliebigen auf Amazon.com angebotenen Produkt leiten. Befolgen Sie diese Schritte, um einen Produktlink einzufügen:
1. Das Produkt, zu dem der Link führen soll, auf Amazon.com suchen
2. Internetadresse des Produkts kopieren
3. Klicken Produktlink einfügen
4. Die Internetadresse in das Kästchen einfügen
5. Klicken Auswählen
6. Wenn Sie den angezeigten Artikel auswählen, erscheint ein Text wie dieser: [[ASIN:014312854XHamlet (The Pelican Shakespeare)]]
7. Sobald Ihre Bewertung auf Amazon.com erscheint, wird dieser Text in einen solchen Hyperlink umgewandelt:Hamlet (The Pelican Shakespeare)

Ihre Bewertung ist auf 10 Produktlinks beschränkt, und der Linktext darf maximal 256 Zeichen betragen.


Produktdetails

4,3 von 5 Sternen
97