Programmieren Mädchen-Code
Beim Stichwort Ästhetik denkt nicht jeder an Programmcode. Dabei haben erfahrene Software-Architekten einen Sinn für verborgene Schönheit.
Echte Programmierer erstellen schnell funktionsfähigen Code, verwenden knappe Bezeichnungen, verschwenden keine Zeit auf Aussehen und unnötig lange Kommentare. Häufig entsteht durch viele Änderungen und Erweiterungen dann so genannter "Spaghetti-Code", der für nicht Eingeweihte nur mühsam und mit viel Aufwand zu verstehen ist. Dies gilt bei vielen Programmierern als besonders männlich. Echte Männer haben es halt nicht nötig, auf die Ästhetik ihres Outputs zu achten. Sie sind effizient und pragmatisch und lassen Ecken und Kanten stehen.
"Girl Code" dagegen lautet das gängige Synonym für "schön" geschriebene Software, bei der stark auf Struktur, Systematik und Aussehen geachtet wird. Einrückungen sind stets akkurat gesetzt, jedes Statement steht sauber in einer Zeile und das Programm wird sorgfältig in überschaubare Teile zerlegt. So kann man durch einfaches Lesen sehr schnell den Sinn des Codes begreifen. Der gehässige Unterton in der Bezeichnung "Girl Code" drückt Verachtung aus: Wer Code schreibt wie ein Mädchen, konzentriert sich eben nicht auf das Wesentliche, sondern glättet hier und striegelt da, bis auch das letzte Pünktchen sitzt.
Nüchtern betrachtet steht „Girl Code“ für die Grundsatzfrage, ob in der Software-Entwicklung nur das Ergebnis zählt (das System funktioniert) oder auch die Art und Weise, wie es erzielt wird. Ins Rollen kam die Debatte über die "Kunst des Programmierens" im März 2006. Auslöser war kein prominenter Vordenker, sondern ein Mann der Basis. Der Entwickler, der sich Morten nannte, klagte im Blog „ 37signals.com “, er sei des Schreibens von „Girl Code“ bezichtigt worden, weil er zu viel Zeit darauf verwende, dass sein Code gut aussehe.
Tage später bemächtigte sich die prominente Bestseller-Autorin Kathy Sierra ( Head First , O’Reilly Books) des Themas in ihrem bei amerikanischen IT-Leuten populären Blog „ creating passionate users “. Es sind also nicht nur weltfremde Theoretiker und Nerds, die über die Bedeutung der Schönheit als Qualitätsmerkmal – kurz über die Poesie von Software-Programmen – philosophieren.
Hinter dem Gedankenkonstrukt der „Poetry of Programming“ steht unter anderem der promovierte Informatiker, Veteran der Programmiersprache Lisp und Open-Source-Pionier Richard P. Gabriel. Der Kalifornier gilt als Vordenker einer effizienteren Software-Entwicklung. Dass ausgerechnet ein Rationalist wie er Parallelen zwischen dem Schreiben von Gedichten und dem von Software-Code entdeckte, ist kein Widerspruch.
Ähnlich wie in der Poesie strebt Gabriel auch in der Software-Programmierung nach größtmöglicher Einfachheit, Ästhetik und Klarheit. Ein Gedicht, sagt er, lebe von einem harmonischen Aufbau und einem logischen Kontext. Die gleiche Harmonie postuliert Gabriel für Codezeilen, die sich einer übergeordneten Softwarearchitektur unterordnen. „Wenn Sie sich Quellcode von extrem begabten Programmierern ansehen, so steckt Schönheit darin“, findet Gabriel.
Selbst für Pragmatiker wird der Sinn und Zweck eines ästhetischen Programm-Codes plausibel: Ob bei Open-Souce-Programmen oder individualisierten Software-Lösungen – ein klar strukturierter Code ist unerlässlich für effizientes Arbeiten. Open-Source-Software lebt von der Weiterentwicklung vieler Beteiligter, um deren Aufmerksamkeit sie zunächst kämpfen muss. Ist das Design des Codes eine Katastrophe, schafft das auch eine tolle Idee nicht. Erfahrene Software-Architekten haben immer einen Sinn für Schönheit im Software-Code. Sie erkennen dessen Qualität bereits an seinem Äußeren und wissen: Eine unschöne Lösung kann nicht die beste sein.
Auch bei Software-Lösungen für Unternehmen gilt: Der Code muss logisch und schnell verständlich sein. Eine Software, deren Code unsystematisch und wenig dokumentiert ist, funktioniert zwar zunächst genauso gut. Geht es jedoch an die Weiterentwicklung oder Fehlerbehebung, kann auch ein geübter Programmierer Probleme haben, Zweck und Funktionsweise dieses Codes zu verstehen. Ästhetik ist dann nicht mehr eine Frage des guten Tons oder gar die Abkehr vom schnellen Arbeiten, sondern Voraussetzung für ein optimales Ergebnis. Dabei ergeht es dem Programmierer wie einem Schachspieler, der eine unbekannte Stellung verstehen möchte: Sehr gute Schachspieler sind in der Lage, eine x-beliebige Stellung in Sekunden zu erfassen und dann blind wieder aufzubauen. Verteilt man jedoch die Figuren willkürlich auf dem Brett, scheitern sogar Großmeister an dieser Aufgabe, weil die inhärente Logik der Stellung der Figuren auf dem Brett verloren geht.
Ein ästhetischer Code ist demnach mehr als nur funktional. Er besticht durch inhärente Klarheit im Design und ist leicht zu verstehen und zu ändern. Das permanente Streben nach dem Schönen in der Software ist eben nicht das Vorrecht weiblicher Programmierer. Angesichts der vornehmlich männlichen Code-Ästheten ist die Bezeichnung „Girl Code“ eher eine unkorrekte Vereinfachung, die sich zu einem Kompliment entwickelt hat. Für den Programmierer und Essayisten Paul Graham ist er gar die Triebfeder des Fortschritts: Denn „gäbe es keine Schönheit, könnte niemand in seinem Job besser werden“.
Rüdiger Azone ist Vorstand der
sd&m AG
.
- Datum 24.04.2008 - 11:48 Uhr
- Seite 1 | 2 | Auf mehreren Seiten lesen
- Quelle ZEIT online, 24.4.2008
- Kommentare 26
- Versenden E-Mail verschicken
- Empfehlen Facebook, Twitter, Google+
- Artikel Drucken Druckversion | PDF
-
Artikel-Tools präsentiert von:






http://de.wikipedia.org/wiki/Donald_Ervin_Knuth
"Girly Code" hab ich in den letzten 20 Jahren meiner Programmiertätigkeit nie gehört. Ein bemerkenswert "gängiges Synonym" also.Dass allerdings ein Programm ästhetisch sein kann, nicht nur in seiner fertigen, ausführbaren Form, sondern auch als Quelltext hinter den Kulissen, ist unbestritten. Ich behaupte sogar, es ist eine Form von Kunst, natürlich eine mit stark begrenztem Publikum.Dass ferner ein ästhetisches Programm viel zu Klarheit beiträgt, Wartbarkeit, nicht selten auch Positives zu späteren Laufzeiteigenschaften, ist etwas, das man heute gerne unter den Tisch fallen lässt. Die kurzfristige Kostenentwicklung im Rahmen eines Projekts o.ä. ist stets viel wichtiger als die langfristige, nachhaltige. Dabei ist Ästhetik nicht einmal teuer. Viele Menschen haben nur einfach keinen Sinn dafür.
Endlich weiss ich nun was ich damals gemacht habe!Inzwischen bin ich kein Girly mehr sondern Ende 50. Als ich Anfang der Neunziger mit dem Programmieren aufgehört habe und den Beruf wechselte - Design mit dem Computer - da hatte ich mich bis dahin immer bemüht so eine Art ästhetischen Code zu schreiben - nicht als l'art pour l'art - sondern wegen der Übersichtlichkeit und Verständlichkeit und der Pflegbarkeit. Die meiste Zeit habe ich vor dem Codieren immer darauf verwendet, das zu lösende Problem übersichtlich zu strukturieren (in COBOL ging das gut - sozusagen wörtlich). Die Ästhetik stellte sich dabei sozusagen von selber ein.Allerdings hatte ich nie das Gefühl, dass das gewürdigt wird. So habe ich mich entschlossen den Beruf zu wechseln, weil mir der Frust zu groß wurde (positives Feedback gibt es in dem Beruf ja nicht - siondern immer nur den nächsten Fehler, den man berichtigen muss). Ich hatte einfach das Gefühl am falschen Ort zu sein. Schön im Nachhinein zu hören, dass das auch anders gesehen wird. Von meiner Programmiererzeit profitiere ich aber als Designer immer noch, weil ich ein fauler Mensch bin und deshalb nicht einfach nur genial drauflosarbeite.
Endlich weiss ich nun was ich damals gemacht habe!Inzwischen bin ich kein Girly mehr sondern Ende 50. Als ich Anfang der Neunziger mit dem Programmieren aufgehört habe und den Beruf wechselte - Design mit dem Computer - da hatte ich mich bis dahin immer bemüht so eine Art ästhetischen Code zu schreiben - nicht als l'art pour l'art - sondern wegen der Übersichtlichkeit und Verständlichkeit und der Pflegbarkeit. Die meiste Zeit habe ich vor dem Codieren immer darauf verwendet, das zu lösende Problem übersichtlich zu strukturieren (in COBOL ging das gut - sozusagen wörtlich). Die Ästhetik stellte sich dabei sozusagen von selber ein.Allerdings hatte ich nie das Gefühl, dass das gewürdigt wird. So habe ich mich entschlossen den Beruf zu wechseln, weil mir der Frust zu groß wurde (positives Feedback gibt es in dem Beruf ja nicht - siondern immer nur den nächsten Fehler, den man berichtigen muss). Ich hatte einfach das Gefühl am falschen Ort zu sein. Schön im Nachhinein zu hören, dass das auch anders gesehen wird. Von meiner Programmiererzeit profitiere ich aber als Designer immer noch, weil ich ein fauler Mensch bin und deshalb nicht einfach nur genial drauflosarbeite.
Softwarequalität ist keine Frage des Geschlechts! Wer Code schlechter Qualität verbreitet, ist kein cooler Nerd, sondern jemand,der das Ende der Achtziger verschlafen hat.Dieser Artikel gehört eher in die Bravo als in die Zeit.
Was ist das für ein Unsinn? Der Begriff "Girly code" ist mitnichten gängig. Der Begriff wurde bestimmt schon mal gebraucht, aber nur, weil er einen syntaktisch korrekten Ausdruck darstellt. Darüberhinaus ist er eine Erfindung des Autors. Als IT-Profi habe ich "Girly code" noch nie gehört.Vor allem: auch inhaltlich ist der Begriff Unsinn. Wie der Programmcode aussieht ist keineswegs so wichtig. Architektur einer Software und Design der Implementierung sind bestimmend. Eine optisch übersichtliche Gestaltung des Programmcodes ist letztendlich eine Selbstverständlichkeit, die dazugehört, der aber für sich gesehen keineswegs eine solche Bedeutung zukommt. Ich würde sagen: Der Verfasser ist ein Aufschneider, der mit großem Geschwätz Werbung für seine Firma machen will. Das sich die Zeit für sowas hergibt. Siehe Frage im Betreff.
Ich glaube, man muss zwischen Design und Realisierung des Programms unterscheiden.Schoenheit in der Realisierung (dem Programmtext) ist schlichtes Handwerk. Einrueckungen, aussagekraeftige Variablen, klare Beschreibungen/Kommentare von Modulen, usw. sind einfach handwerkliche Faehigkeiten, die man erwarten kann/sollte. Spaghetticode sollte bei (professionellen) Programmierern schlichtweg nicht toleriert werden. (Er wird nauterlich im Interesse der allmaechtigen Deadline toleriert.) Schoenheit im Design hingegen ist ein zweischneidiges Schwert. Nicht immer laesst sich z.B. das optimale Design mit der verwendeten Programmiersprache optimal realisieren. Dann ist zwar die Loesung schoen, die Umsetzung aber kompliziert, umfangreich und so wieder schlechter verstandlich.Manchmal stellt sich auch die Frage, ab wann die Loesung so elegant ist, dass sie nicht mehr nachvollziehbar ist. Klar, das kann durch Kommentare ausgeglichen werden - aber nur zum Teil.Die aesthetisch/logisch optimale Loesung fuer eine Aufgabe ist meistens auch eine Loesung, die relativ unflexibel ist - etwas Neues hinzuzufuegen wird dann teilweise sehr schwierig. Ich habe mir schon manches Mal gewuenscht, dass meine Vorgaenger den einfachen, zuverlaessigen und Standard-konformen Weg gegangen waeren statt die "coole, intelligente, schnelle" Abkuerzung zu nehmen.
Jetzt aber mal halblang:Im Artikel wird die Herkunft des Begriffs "Girly code" doch einwandfrei erklärt; ich kannte diese Bezeichnung bislang auch nicht und sie ist sicherlich nicht gängig, aber eine Erfindung des Autors ist sie nachweislich nicht.Wichtiger Quellcode wird interessanterweise häufiger von Menschen gelesen als von Maschinen; dennoch programmieren gerade unerfahrene Softwareentwickler so, als ob die einzige Zielgruppe aus ihrem Rechner besteht. Ich würde mich nicht wundern, wenn Programmieren das menschliche Gehirn ähnlich nutzt und beansprucht wird, wie beim Schreiben oder Komponieren. Insofern ist es tatsächlich interessant sich auch als Softwareentwickler mit Schreibtechniken und Stilistik zu beschäftigen. Das Bild vom Programmierer als Ingenieur ist meiner Meinung nach nicht nur falsch, sondern könnte sogar ein Grund für das Scheitern vieler Softwareprojekte sein. Vertreter der "Softwareingenieur"-Metapher bemühen oft Argumente, nach denen das planende und sorgfältige Vorgehen eben gerade einen Vergleich zum Ingenieurswesen bedingt; jedem professionellen Autor wird es bei derartigen Vergleichen die Zehennägel aufrollen.
Ich finde nicht, dass eine solche Unterscheidung (Realisierung und Design) hier Sinn macht. Kodieren, als konkrete Tätigkeit der Realisierung, ist mitnichten eine rein handwerkliche Tätigkeit. Reale Softwareprobleme entziehen sich dem einfachen Bild von Planung mit anschließender Kodierung meist recht geschickt. Die beste Form der Kodierung beschreibt deklarativ das Problem selbst; ob eine solche Form möglich ist hängt sicherlich von den verwendeten Werkzeugen, aber mehr noch vom Geschick des Entwicklers ab. Insofern: Ja es gibt eine ganze Reihe handwerklicher Fähigkeiten. Von einem Autor erwartet man auch, dass er Rechtschreibung, Grammatik und einige simple Grundregeln der Stilistik beherrscht; es gehört allerdings mehr dazu, wirklich gut zu schreiben.Sie stellten auch fest, dass gerade die Schönheit im Design, die ästhetisch/logisch optimale Lösung nach ihrer Erfahrung unflexibel, unzuverlässig und schlecht verständlich sind. Kommentare würden zwar manchmal aushelfen, aber nur bedingt. Für mich bedeutet "schöner, ästhetisch gelungener Code", dass er (am besten auch ohne Kommentare) das Problem auf einfachste und ideale Weise beschreibt. Schlecht verständlicher, unflexibler Quellcode ist niemals ästethisch und niemals gut.
Wie gesagt: Mag sein, dass der Begriff schon verwendet wurde, sicherlich in den zitierten Quellen. Er ist aber eben nicht geläufig.Programmieren hat mit "Schreibtechniken" und "Stilistik" wirklich absolut nicht das geringste zu tun. Programmieren, respektive Softwareentwicklung, ist keine "schriftstellerische" Sache, sondern die Konstruktion informationeller Mechanismen. Dass einem funktionierenden, konsistenten Werk - und zwar nicht nur einer Software(komponente), sondern einer Brücke, einem Flugzeug oder einem mathematischen Beweis gleichermaßen - eine gewisse Ästhetik innewohnt, ist quasi ein Nebeneffekt der Tatsache, dass der menschliche Sinn für Schönheit nichts anderes ist als ein intuitives Erfassen von Wohlgeformtheit in der Natur, der materiellen wie der immateriellen.
Bitte melden Sie sich an, um zu kommentieren