Writing Code and Other Prose

A blog about software development, electronics, and writing.

Eigenes Werkzeug

Letztens habe ich die Ausstellung “Der Traum vom Turm” in Düsseldorf besucht, in der die Geschichte des modernen Hochhauses - angefangen beim Turmbau zu Babel, über den Kölner Dom bis hin zu den modernen Giganten - in lockerer Aufmachung veranschaulicht wird.

Natürlich kam ich nicht umhin, den einen oder anderen Aspekt mit den Augen des Software-Entwicklers zu sehen, denn viel zu oft wird auch heute noch die Analogie zwischen dem Bau eines Hauses und der Erstellung eines komplexen Programms gezogen.

Wieder einmal wurde mir klar, wie sehr dieser Vergleich hinkt. In Software-Projekten werden Abhängigkeiten zwischen den zu erledigenden Aufgaben nie so klar sein, wie beim Hausbau. Man kann halt nicht mit dem Dach anfangen. Ferner ist es beim Hausbau möglich, Arbeitskräfte sehr flexibel zu steuern: Drei Maurer sind sicherlich schneller mit der Arbeit fertig als einer, aber auf Programmierer lässt sich diese Analogie nur sehr bedingt übertragen.

Auch ist es ziemlich egal, ob ein Maurer die Wohnzimmerwände hochzieht oder sich doch eher auf das Schlafzimmer konzentriert. Es macht aber einen Riesenunterschied, ob ich Fehler in meinen Quelltexten suche oder aber in den Werken eines anderen.

Eines aber haben der Hochhausbau und die meisten Software-Projekte doch gemeinsam: Sie brauchen häufig spezielle Werkzeuge, die es zuvor nicht gab. Für den Bau des Kölner Doms wurden beispielsweise Dutzende neuer Werkzeuge und Kräne entwickelt, die danach auch in anderen Bauprojekten von großem Nutzen waren. Für andere Hochhäuser wurden und werden gar eigene Werkstoffe und Materialien hergestellt.

Bei den meisten Software-Projekten ist das ganz ähnlich und die Bandbreite der kleinen Helfer ist enorm. Angefangen bei Texteditor-Makros bis hin zu eigenen Compilern ist alles möglich. So wurde für die Entwicklung von Microsoft Excel ein eigener C-Compiler erstellt, der schon Anfang der 80er-Jahre plattformunabhängigen Code für eine eigene virtuelle Maschine erzeugte. Nur so konnte sichergestellt werden, dass Excel keine Abhängigkeiten zu anderen Projekten hatte und möglichst einfach und schnell auf neue Rechnerarchitekturen portiert werden konnte.

Manchmal werden solche Hilfsmittel auch zu echten Selbstläufern: Das populäre Java-Werkzeug Ant war anfangs nichts weiter als ein Abfallprodukt des Tomcat-Projekts. James Duncan Davidson hat Ant nur entwickelt, um Tomcat einfacher übersetzen zu können.

Auch in den Projekten, an denen ich typischerweise arbeite, fallen ganz oft viele kleine Skripte und Makros an, die es durchaus wert wären, ein wenig aufgemotzt und poliert zu werden. Vielleicht denke ich beim nächsten Mal etwas weiter…


Share

comments powered by Disqus