Suchen

Programmierer als Künstler

| Autor / Redakteur: Maja Hoock* / Sebastian Gerstl

Abgabetermine und Effizienzansprüche der Auftraggeber drängen viele dazu, Code nach Schema F abzuliefern. Dabei kann viel Gutes entstehen, wenn man Programmieren als Form von Kunst betrachtet.

Firma zum Thema

Ob Programmieren als Kunst betrachtet werden kann, hat nicht nur mit dem Ergebnis - also dem Code selbst -, sondern auch mit dem Prozess des Programmierens zu tun.
Ob Programmieren als Kunst betrachtet werden kann, hat nicht nur mit dem Ergebnis - also dem Code selbst -, sondern auch mit dem Prozess des Programmierens zu tun.
(Bild: gemeinfrei / Pixabay )

Code kann eine künstlerische Handschrift bekommen - vorausgesetzt die Verfasser verstehen ihr Handwerk so gut, dass es nicht mehr nur ums Funktionieren geht, sondern auch um die Ästhetik. „Wissenschaft ist das, was wir gut genug verstehen, um es einem Computer zu erklären“, sagte der US-amerikanische Informatikpionier Donald E. Knuth dazu einmal in einem Interview mit Jack Woehr. „Alles andere ist Kunst.“

Knuth hat mit seiner vierbändigen Mammutausgabe The Art of Computer Programming (Die Kunst der Computerprogrammierung) schon 1968 die Debatte ins Rollen gebracht, ob Programmieren eine Form von Kunst ist. Der Programmierer Boris Cipot sagt dazu: „Jeder Code unterscheidet sich stilistisch vom anderen.“ Cipt ist Senior Engineer beim Sicherheits-Software-Anbieter Synopsys, programmiert neben seinem Job auch als Hobby und betrachtet Coden wie viele seiner Kollegen nicht nur als Job, sondern auch als seine Leidenschaft. Während seiner Tätigkeit hat er nicht nur viel Code geschrieben, sondern auch gesehen. „Man kann wirklich sagen, dass ein Entwickler immer seinen Fingerabdruck im Code hinterlässt“, sagt er im Gespräch mit Golem.de.

Perfekter Code: elegant und lesbar

So erkenne er gelegentlich anhand der Code-Gestaltung von Hacking-Angriffen, aus welcher Richtung sie kommen. Hacker, die nicht nur so schnell wie möglich Geld machen wollen, sondern sich die Mühe machen, atemberaubenden Code dazu zu verwenden, fallen auf und bleiben mit ihrer ganz eigenen Didaktik in Erinnerung.

„Es ist so ähnlich wie bei Texten von Autoren: Sind sie besonders leicht zu verstehen, elegant und lesbar oder verworren und ohne Anhaltspunkte geschrieben? Daran kann man erkennen, wer guten Source Code programmiert, tiefgreifendes Verständnis besitzt, und wer nur etwas abtippt, das er auf einer Website gefunden hat, also Copy-and-Paste macht und seine Arbeit so schnell wie möglich erledigen wollte.“

Linus Torvalds und Kevin Mitnick sind Code-Künstler

Der Softwareentwickler und Initiator der Linux-Kernels, Linus Torvalds, ist virtuos darin, solch einen künstlerischen Code zu schreiben. Boris Cipot sagt: „Er hat extrem viel in die Kunst des Programmierens gesteckt und vertritt eine sehr starke Meinung darüber, wie Code aussehen sollte und wie man ihn mit welcher Programmiersprache schreiben muss.“

„Er ist total auf C fokussiert, mag C++ zum Beispiel überhaupt nicht, weil es Dinge verbirgt und man nicht sieht, wie tiefere Methoden implementiert worden sind. Linus wollte seine eigenen Methoden schreiben und deren Komplexität offenlegen, statt sie zu verstecken.“

Auch der ehemalige Hacker Kevin Mitnick gilt unter vielen Programmierern als Coding-Artist und hat in seinen Büchern The Art of Deception (Die Kunst der Täuschung), The Art of Intrusion und The Art of Invisibility weit mehr beschrieben als nur gutes Handwerk: „Er ist mein Personal Hero von der dunklen Seite“, sagt Cipot. „Er hat, denke ich, auch eine künstlerische Ader, wenn auch nicht so sehr im Programmieren selbst, aber im Bereich Social Engineering - also darin, Menschen über den Computer zu manipulieren, um etwa Zugang zu Netzwerken zu erhalten.“

Ob Programmieren als Kunst betrachtet werden kann, hat nicht nur mit dem Ergebnis - also dem Code selbst -, sondern auch mit dem Prozess des Programmierens zu tun.

Donald E. Knuth: Programmieren als Kunst

Laut Donald E. Knuth geht es hierbei wesentlich darum, Freude an der Arbeit zu haben. „Numerische Unterprogramme sollten Ergebnisse liefern, die, wann immer möglich, einfachen, nützlichen mathematischen Gesetzen genügen. Ohne zugrundeliegende Symmetrieeigenschaften wird das Nachweisen interessanter Ergebnisse äußerst unangenehm“, schreibt Knuth im zweiten Band von The Art of Computer Programming. „Die Freude an den eigenen Werkzeugen ist ein wesentlicher Bestandteil erfolgreicher Arbeit.“

„Art“ ist im Titelkontext zwar eher als Handwerk zu verstehen denn als Bildende Kunst, wie sie im Museum hängt. Definiert man aber Kunst als „schöpferisches Gestalten aus den verschiedensten Materialen oder mit den Mitteln der Sprache in Auseinandersetzung mit der Welt“, wie es der Duden tut, macht Knuth genau das.

Um seine Ausführungen zu illustrieren, nutzte er nämlich eine selbst entwickelte Assemblersprache für einen fiktiven idealen Computer namens MIX. Er schuf imaginäre Konstrukte, um einen Teil der Welt, und zwar mathematisch-physikalische Gegebenheiten, mit kreativen Mitteln begreifbar zu machen.

1974 spitzte er den Titel sogar noch weiter zu: Mit Computer Programming as an Art drehte der Autor ihn um und machte damit deutlich, dass es sich in seinen Augen eben nicht nur um ein Handwerk, sondern tatsächlich um eine Kunst handelt: "Wir haben gesehen, dass die Computerprogrammierung eine Kunst ist, weil sie das angesammelte Wissen auf die Welt anwendet, weil sie Geschicklichkeit und Einfallsreichtum erfordert und vor allem, weil sie Objekte von Schönheit hervorbringt", heißt es am Ende des Buchs.

Ein Coder, der sich unbewusst als Künstler betrachtet, genießt Knuth zufolge seine Arbeit und wird dadurch automatisch auch besser darin. Dazu zählen Frontend-Programmierung wie mit Java Script gestaltete Bewegungen auf einer beeindruckenden Website genauso wie schlank geschriebene, sichere, schnelle Backend-Programme - also das Beherrschen von Programmierkunst über die notwendigen Basics hinaus.

Guter Code: Zeitdruck und Effizienzansprüche vs. Kreativität und Innovation

Da Knuth E-Mails verweigert und nur schwer über den Postweg erreichbar ist, kann man den 82-Jährigen nicht leicht dazu befragen, wie er die heutigen Entwicklungen einer digitalisierten Welt einordnet, die Entwicklern immer mehr Dienst nach Vorschrift abverlangt und aufgrund von Zeitdruck und ökonomischen Zwängen wenig Raum für solche Kreativität einräumt. Die Antwort gibt er aber praktisch schon 1974 auf Seite 671 seines Buches: „Das eigentliche Problem ist, dass Programmierer viel zu viel Zeit damit verbracht haben, sich an den falschen Stellen und zur falschen Zeit um die Effizienz zu sorgen; vorzeitige Optimierung ist die Wurzel allen Übels (oder zumindest des größten Teils davon) in der Programmierung.“

Heißt also: Zu Beginn des Codens ist es notwendig, sich Freiraum und Zeit zu lassen, damit etwas Neues wie Programmiersprachen oder Frameworks überhaupt erst entstehen können. Zwar ist Programmieren an sich mehr als nur reine Mathematik und kreativ, doch Kunst im eigentlichen Sinn entsteht eben vor allem, wenn der Prozess nicht zweckgerichtet ist. Vielmehr muss er Experimentieren zulassen, durch das man auf Dinge stößt, die überraschen und zu etwas Neuem führen. Trial and Error.

Guter Code hilft auch Kunden mehr als schneller Code

Nicht jedem Programmierer ist etwas daran gelegen, der Nachwelt etwas zu hinterlassen oder sich selbst mit Code ein Denkmal zu setzen. Viele wollen in erster Linie ihre Arbeit fertigstellen - was für einige Auftraggeber auch attraktiver sein dürfte, als mehr Zeit und damit mehr Geld in schönen Code zu investieren.

„Auf der anderen Seite: Was ist schon effektiv?“, fragt Boris Cipot. „Wenn ich meine Arbeit möglichst gut mache und mein Code auch von anderen leicht gelesen, verstanden und die Methoden nachvollzogen werden können, wenn ich vielleicht nicht mehr da bin, ist es auch für Auftraggeber am Ende besser. Denn mit kompliziert geschriebenem Code aus verschiedenen Copy-and-Paste-Aktionen ohne Kommentare und mit kryptischen Variablen wird es schwer, diesen Code zu maintainen.“

Das heißt im Umkehrschluss: Mehr Zeit für den perfekten Code anzuberaumen, erscheint zwar vielen als unnötiger Luxus, zahlt sich aber spätestens dann aus, wenn Kollegen den Code übernehmen und weiter an ihm arbeiten müssen. Die Beherrschung des Handwerks ist es also, was Code künstlerisch werden lässt - „Kunst kommt von Können, käme sie von Wollen, hieße sie Wulst“, heißt es schließlich. Erst wenn das Können stimmt, kann man folglich nicht nur „schönen“ Code schreiben, sondern damit auch so sicher arbeiten, dass man damit experimentieren und Innovationen anstoßen kann.

Experimentelle Informatik und Devart

Ein Teilbereich der IT, in dem es genau darum geht, ohne konkreten Zweck oder Auftrag mit Code zu experimentieren und dadurch Innovation anzustoßen, ist die Experimentelle Informatik, wie sie an der Kunsthochschule für Medien Köln erforscht wird. Die Macher des Studiengangs gehen laut Selbstbeschreibung davon aus, dass die Wissenschaft bisher nicht über die Frage des Machens, also des Know-hows hinausging - was einer der Gründe dafür sei, dass die Gesellschaft die Technik intellektuell nie wirklich gemeistert habe. Nicht das technische Gewusst-wie stehe deshalb im Zentrum des Experimentieransatzes, sondern ein Untersuchen von Möglichkeiten.

In der Praxis verhalten sich die Programmierer also ähnlich wie die Künstler an der Kunsthochschule, bauen Installationen auf und schenken nach dem in der IT elementaren Trial-and-Error-Prinzip Fehlern genauso große Beachtung wie Erfolgen. Beispielsweise wurden Glitches, die bei dem Coden eines Body-Scanners für die Tanzkünstlerin Charlotte Triebus an der KHMK entstanden und die eingescannten Tanzbewegungen seltsam verzerrten, später selbst zur Hauptattraktion ihres Kunstwerks.

Georg Trogemann, der als Professor den Fachbereich leitet, schreibt in seiner Einführung in die Programmierung als künstlerische Praktik: „Virtuos programmieren zu können, stellt noch nicht sicher, dass man auch ein tieferes Verständnis vom Wesen dieser Tätigkeit besitzt. Bekanntlich kann man sich leichter auf eine Sache verstehen, als die Sache selbst zu verstehen. Die theoretische und ästhetisch-praktische Reflexion des Programmierens geschieht jedoch nicht von selbst, sondern bedarf eigener Methoden und Strategien der Analyse, des Experiments und der individuellen Auseinandersetzung.“

Devart: Code als Medienkunst

Einige - wenn auch aufgrund der Komplexität der Materie nicht allzu viele - Medienkünstler bedienen sich Methoden der Experimentellen Informatik. Devart ist eine Kunstrichtung, bei der Code dazu genutzt wird, Kunstwerke mit technologischem Bezug zu erschaffen. Der Computational Designer Kartsen Schmidt versucht etwa die ganze Welt, die ihn umgibt, mit den Augen eines Programmierers zu betrachten und zu dekonstruieren, um sie in Form von Code neu widerzuspiegeln.

So betrachtet er etwa einen Baum im Park und versucht, die Prozesse, die ihn am Leben halten und die ihn ausmachen, in generatives Design und Software zu übersetzen. „Ein Computer ist eigentlich nur Silizium und Elektrizität, aber die Kombination ist die stärkste bewusstseinserweiternde Kombination, die wir je geschaffen haben“, sagt er dazu.

Programmieren kann in vielerlei Hinsicht Kunst sein. Es geht dabei nicht nur um den Code selbst, sondern auch um kreative Wege, zu einem technologischen Ziel zu kommen, oder mit beschränkten Möglichkeiten Lösungen zu finden, zum Beispiel auf einem winzigen Mikroprozessor eine weite Funktionalität zu kreieren, die man sich ein paar Jahre zuvor noch gar nicht vorstellen konnte. Es sind also bei weitem nicht alle Programmierer Künstler - und sollen es auch gar nicht unbedingt sein. Aber in Code stecken auf jeden Fall Möglichkeiten, Kunst zu werden, wenn man ihn meisterlich beherrscht.

Originalveröffentlichung auf golem.de vom 28.07.2020

* Maja Hoock schreibt als freie Journalistin über Internet und Digitales.

(ID:46753023)