- programming /n./
- 1. The art of debugging a blank sheet of paper (or, in these days of on-line editing, the art of debugging an empty file). "Bloody instructions which, being taught, return to plague their inventor" ("Macbeth", Act 1, Scene 7)
- 2. A pastime similar to banging one's head against a wall, but with fewer opportunities for reward.
- 3. The most fun you can have with your clothes on (although clothes are not mandatory).
- -- The GNU jargon file
Ich favorisiere die Erklärung Nummer drei. Aber von Anfang an:
Letztes Wochenende widmete ich mich zwei der drei Dinge, die ich am liebsten tue: dahin gehen, wo's gute Musik und interessante Leute gibt, und programmieren, oder wie ich lieber sage: koden. Unter anderem auch weil dabei auch Programme entstehen können, die Exkrementen, ausser vielleicht dem Gestank, in nichts nachstehen.
Ich habe mich mal wieder mit der Entwicklung von Software beschäftigt, die unter Windows laufen soll. Das ganze sind zwei Addons für die Software "
Virtual DJ". Einmal ein Utility welches die Auswertung von Dateiname nach Interpret und Titel meinen wünschen anpasst, und eins welches die Verwaltung der internen Songdatenbank für mich vereinfacht. Das aber nur nebenbei.
Und da ist mir mal wieder aufgefallen, dass programmieren gleich das geilste nach Sex ist. Zumindest kann ich dies für mich behaupten. Warum eigentlich?
Nun die Erstellung von Software ist ein kreativer Akt, der sich durchaus mit dem Schreiben einer Geschichte vergleichen lässt. Man fängt mit einer Idee an, die am auf ein leeres Blatt bringt. Heutzutage wird wohl doch eher ein Programmeditor oder Textverarbeitung das leere Blatt abgelöst haben. Und genauso vielfältig wie eine Idee für eine Geschichte sein kann, kann auch eine Idee für ein Programm sein. Während hingegen eine Geschichte meist eher ein mittelbares Ziel verfolgt, ist das Ziel eines Programm meist sehr konkret. In diesem Fall halt die Auswertung des Dateinamens und die Vereinfachung der Songverwaltung. Die Möglichkeiten sind meine Ansicht nach beim Programmieren aber noch vielfältiger beim Schreiben. Technisch gesehen könnte ich mir z.B. einen eigenen "Stift" bauen, also Werkzeug, welches mich dann wieder beim Erstellen von anderen Programmen unterstützt. Oder ich baue mir etwas, was sich in vielen Programmen einsetzen lässt. Wenn ein Autor von Geschichten auf fertige Textbausteine zurückgreifen würde, käme er wohl kaum auf einen grünen Zweig. Bei der Softwareentwicklung sollte man aber genau dies tun.
Ein anderer grosser Unterschied ist, dass man beim Programmieren in Gegensatz zu einer Geschichte nicht alles selbst macht. Im Gegenteil, man versucht sein eigenes Programm möglichst passend zwischen andere Programme oder Programmteile zu integrieren. Wenn jemand sagt: "Das habe ich alles selbst programmiert.", dann lügt er, oder er hat nicht weit genug gedacht. Denn die Unterroutinen, die er verwendet, um z.B. etwas auf dem Monitor anzuzeigen, oder auch etwas auf Festplatte zu schreiben oder lesen, sind bestimmt nicht vom ihm. Selbst Linus Torwalds, der "Erfinder von Linux", hat nicht alles selbst geschrieben, so ist z.B. der Compiler (das Programm, was seinen Programm zu dem Code macht, den der Computer versteht) nicht von ihm, wie auch viele der Bibliotheken, die z.B. die mathematischen Berechnungen machen. Obwohl man doch (meist) alleine vor einer Tastatur sitzt und versucht seinen Ideen Formen zu geben, so ist man doch dabei mit vielen Leuten zu interagieren.
Noch extremer wird das bei Open Source Programmen, bei denen man auch in "fremder Leute" Code herumbasteln kann. Ich kann mir irgendwie nicht vorstellen, dass ein "Geschichtenschreiber" einen Brief mit folgendem Inhalt bekommen würde: "Ihre Geschichte hat mir gut gefallen, aber es fehlte da noch ein Charakter der die Beziehung der beiden Protagonisten zueinander besser herausarbeitet. Ich habe da mal selbst Hand angelegt und schicken Ihnen anbei meine Änderungen." Und dann wäre auch noch seine Reaktion: "Danke. Bau ich ein." Näää, nicht wirklich. So aber habe ich es selbst schon bei dem
einen oder
anderen Programm gemacht. Mit grossem Spass, weil man eben nicht alles selbst machen musste, so den Erfolg der eigenen Anstrengungen schneller zu sehen bekommt, und sich ausserdem noch in anderer Leute Ideen reindenken kann, um so dazu zu lernen.
Und wenn ich mir auf diese Weise ein halbes bis ganzes Wochenende um die Ohren haue schaffe ich es auch mich in eine Art von "Rauschzustand" hineinzuprogrammieren. Dann gibt es nur noch mich und den Code, und dessen weiteren Schritte, die er dann noch machen wird. Einen nach dem anderen. Da wird alles andere um mich herum ziemlich egal, und ich brauche kaum was zu essen. Ist auch besser so, es ist eh nie was da. Davon berichte ich aber ein anderes Mal. Und wenn ich dann wirklich ein laufendes Programm habe, dass alles tut, was ich mir so ausgedacht habe, ist das fast so gut wie ein Orgasmus. Wenn's auch nicht ganz so gut ist, so hält's doch länger an.
So, und jetzt wird weiter programmiert...
Kommentare
(Holla, wie nerdy war das denn? Böse Tippfinger.)