C und patch

A. Pagaltzis pagaltzis at gmx.de
Mit Nov 20 14:04:54 CET 2002


* Wolfram Schwenzer <W.Schwenzer at nikocity.de> [2002-11-19 22:55]:
> Auch dem ist nur zuzustimmen. Es ist m.E. ein Zeichen
> geistiger Unreife, sich eines Programmierstils zu ruehmen,
> der fuer "Aussenstehende" moeglichst Unverstaendliches
> produziert so als gehoere man einer pubertaeren Gang an,
> die sich "magischer Kuerzel & Zinken" bedient (manche
> Sprachen beguenstigen diesen Hang leider mehr als andere).

Kommt drauf an. Wenn ich Code für einen ernsthaften Zweck
schreibe, soll er natürlich vor allem korrekt und robust,
als zweites klar und strukturiert, und drittens sauber
dokumentiert sein.

Wenn ich Programmieren als Denksport betreibe, rühme ich
mich durchaus dafür dass ich es schaffe, schwer zu
durchschauenden Code zu schreiben. Mich dafür "pubertär"
nennen zu wollen ist blanker Unsinn.

> Donald E. Knuth, Larry Wall, John Ousterhout oder Guido
> van Rossum - keiner waere stolz darauf, schlecht
> dokumentierten & unverstaendlichen Code zu schreiben, wie
> er (leider allzu) haeufig anzutreffen ist.

Knuth hat sich jahrelang an einem kleinen internen Wettstreit
wer es schaffen würde, eine Programm zu schreiben, dass die
Benutzereingabe rückwärts wieder ausgibt und dafür mit einer
einzigen Schalttafel für das damalige Ungetüm von Rechner
auskäme. Ich glaube kaum, dass ihm der Sinn für
"Programmieren als Denksport" fehlt.

Was die Dokumentierung betrifft, halte ich WEB für eine sehr
gute Idee, ich behaupte allerdings auch, dass ein Programm
eigentlich nur minimal intern dokumentiert werden müssen
sollte. Der Zweck ganzer Module und ihre Schnittstellen
müssen ohne Frage klar definiert sein, aber wenn ich mich
gezwungen sehe, eine Zeile zu kommentieren um zu
dokumentieren _was_ sie tut und nicht nur _warum_, ist das
ein Zeichen schlecht designten Codes. Ich schreibe meine
Perlprogramme nicht so, dass ein Anfänger sie versteht,
aber auch nicht so dass man zu jedem Zeitpunkt immer um vier
Ecken denken muss. Mein Ziel ist, den Code so knapp und
gleichzeitig verständlich zu halten, dass jemand der die
Sprache beherrscht, will heissen in allen ihren Konstrukten
sattelfest ist, die Programme ohne viel Federlesen versteht.
Das geht so weit dass ich mir Mühe gebe, Einrückungen,
Klammerungen und ähnliches so (spärlich) einzusetzen dass
die Ablaufstruktur schon beim Überfliegen optisch zu sehen
ist.

Hässliche Programme kann man in jeder Sprache schreiben;
schöne nicht in allen. Und ein Werkzeug, dass man nicht für
Unsinn oder in schädlicher Art einsetzen kann, lässt sich
auch zu nichts nützlichem brauchen.

-- 
Gruss,
Aristoteles