Was schöne Software ausmacht: Prinzipien für die Schönheit von Programmiercode

Hartmut Schlosser

(c) Shutterstock / Vladimir Sazonov

Kennen Sie Hass-getriebene Softwareentwicklung? Nun, ein offizieller Terminus ist das nicht, Rafe Colburn definiert Hate Driven Development (HDD) allerdings so, dass ein Programmierer mit der Zeit einen derartigen Hass gegenüber seinem Projekt entwickelt, dass er es möglichst schnell fertig stellt.

Schönheit statt HDD

HDD ist also produktivitätsfördernd – aber erfüllend ist es freilich nicht. In der Idealvorstellung eines Entwicklers will man doch spannende Aufgaben gestellt bekommen, die man möglichst intelligent mit möglichst „schönem“ Programmiercode löst.

Was allerdings die „Schönheit“ von Programmiercode ausmacht, ist nicht so einfach zu fassen. Jeder hat sicherlich schon einmal den Satz gehört – wenn nicht selbst ausgesprochen: „Das ist aber ein schönes Stück Software!“ Was ist es aber, das wir in solchen Situationen mit „Schönheit“ in Verbindung bringen? Gibt es gar ein einheitliches Set an Coding-Prinzipien, über die sich die „Schönheit von Code“ beschreiben lässt?

Prinzipien für „schönen“ Code

Nun, hart definieren oder gar quantifizieren werden sich solche Prinzipien wohl nicht lassen. Ole Lensmar versucht auf seinem Blog aber, einige dieser Prinzipien zu beschreiben:

  • Integrität. Schöne Software löst ein Problem besser als andere – und zwar vollständig und ausschließlich, ohne sich von möglichen erweiterten Funktionalitäten vom rechten Weg abbringen zu lassen. Integrität bezieht sich auch auf die Interaktionen mit dem User: Konsistente Benutzerführung ohne Überraschungen. Sei es harsche Einfachheit oder süße Verspieltheit – Hauptsache, die „Tonlage“ wird in der gesamten Software beibehalten.
  • Usability. Schöne Software nimmt auch den Anfänger an die Hand und führt ihn zum Ziel. Stets bemüht, den falschen Gebrauch von Features zu verhindern, versucht schöne Software, die Bedürfnisse des Users vorauszusehen und ihm die richtigen Hinweise zu geben. Die offensichtliche Nutzung soll so einfach wie möglich sein, ohne fortgeschrittenen Anwendern die Möglichkeit zu nehmen, das volle Potenzial der Software auszuschöpfen.
  • Innovation. Schöne Software scheut nicht davor zurück, neue Wege zu beschreiten, um ein Problem zu lösen. Wenn eine Interaktion, für die man früher in verschachtelten Menüstrukturen wühlen musste, plötzlich mit einem Klick zu haben ist und man nach kurzer Zeit das Gefühl hat, „Wie konnte ich das denn früher nur ohne dieses Feature machen!“, beginnt man, neu über eine Problemdomäne nachzudenken. Innovative Lösungen öffnen einem die Augen und lassen neue Möglichkeiten – aber auch neue Risiken – erkennen.

Short is beautiful

Auf einen noch einfacheren Nenner bringt es Johanna Rothman, die die Schönheit von Software mit der Kürze und Prägnanz in Verbindung bringt: Short is beautiful! Dabei schließt sie auch den Entwicklungsprozess selbst mit ein. Ganz im agilen Fahrwasser schwimmend spricht sie von kurzen Storys, kurzen Iterationen und kurzen Feadback-Zyklen. Hinzufügen könnte man noch die Schule des Clean Code und das KISS-Prinzip, das meist mit: „Keep it simple and stupid.“ übersetzt wird. Alternativ haben sich übrigens folgende Interpretationen eingebürgert:

  • Keep it simple, stupid.
  • Keep it short and simple
  • Keep it simple and smart
  • Keep it simple and straightforward
  • Keep it safe and sound
  • Keep it sweet and simple
  • Keep it small and simple
  • Keep it simple and safe
  • Keep it safe and simple
  • Keep it strictly simple
  • Keep it speckless and sane
  • Keep it sober and significant

Kann Code „schön“ sein?

Ganz zufrieden stellen uns diese Schönheits-Prinzipien zwar noch nicht, aber sie kommen doch unserem „Gefühl“ näher, was die Schönheit von Code ausmachen könnte. Oder sind wir da ganz auf dem falschen Dampfer? Jeff Atwood von Coding Horror meint jedenfalls, dass sich Schönheit eigentlich gar nicht auf Programmiercode anwenden lässt. Ideen können schön sein, Algorithmen können schön sein – Programmiercode selbst aber nicht:

The beauty of code lies in the architecture, the ideas, the grander algorithms and strategies that code represents.

Und in der Tat beziehen sich die oberen Prinzipien nicht unbedingt auf das Aussehen des Codes, sondern darauf, was dieser Code bewirkt, wofür er steht (und kleine Seitennotiz: Mit der gewählten Programmiersprache haben die Schönheitsprinzipien auch nichts zu tun).

Andererseits kennen wir doch alle Software, bei der uns das Grauen kommt, wenn wir einen Blick auf den Programmiercode werfen. Wenn es also hässlichen Code gibt, muss es wohl auch schönen geben, oder?

Vielleicht können Sie in dieser Frage ja weiterhelfen: Was war Ihr „schönstes“ Stück Software, das Sie geschrieben haben? Und was genau war es, das Sie dazu veranlasst, Ihren Programmiercode mit „Schönheit“ in Verbindung zubringen?

Aufmacherbild: Double exposure portrait of young woman with bouquet of flowers von Shutterstock / Urheberrecht: Vladimir Sazonov

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: