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.
- Datum 24.04.2008 - 11:48 Uhr
- Seite 1 | 2 | Auf einer Seite 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