Ist Programmieren kreativ?
In der Praxis sind Kreation und Programmierung scheinbare Gegensätze. Die meisten Werbe- und Webagenturen trennen diese Bereiche. Auch die schulische und universitäre Ausbildung trennt diese Bereiche. Die Frage ist nicht ob das weitere Ergebnis des Programmierens, also der Output eines Programms, kreativ ist, sondern der Akt des Programmierens selbst eine kreative Leistung darstellt. Ausser Frage steht, dass Programme, wie Grafiksoftware, Kreativen als technisches Hilfsmittel den Kreationsprozess vereinfachen bzw. überhaupt erst ermöglichen.
Was ist Kreativität?
Laut Wikipedia bezeichnet Kreativität: "Die Fähigkeit neue Problemstellungen durch die Anwendung erworbener Fähigkeiten zu lösen. Die Anwendung erworbener Fähigkeiten auf ein neues Problem wird als Kreativer Prozess bezeichnet."
Was ist Programmierung?
Programmierung, im weiteren Sinne, bezeichnet die Tätigkeit, Computerprogramme zu erstellen. Das umfasst alle Tätigkeiten, die mit der Programmerstellung verbunden sind, insbesondere auch den konzeptionellen Entwurf. Im engeren Sinne bezeichnet Programmierung lediglich das Umsetzen dieses konzeptionellen, abstrakten Entwurfes in konkreten Quelltext, also in Reihe geschriebener Arbeitsanweisungen für eine Maschine. Üblicherweise nimmt das Erstellen des Quelltextes weniger als 50 Prozent der Zeit eines Programmierers in Anspruch. Konzeptioneller Entwurf, funktionale Spezifikation, Tests, Änderungen, Fehlerbehebung, Dokumentation, sonstige Planung und Besprechungen nehmen deutlich mehr Zeit in Anspruch.
Kreativ Programmieren?
Trotz einschränkenden Vorgaben ist Programmieren eine kreative Tätigkeit: Die Spezifikation gibt zwar einen Funktionsrahmen mehr oder weniger eng vor, doch dieser kann auf unterschiedliche Weise umgesetzt werden. Bittet man mehrere Programmierer eine bestimmte gewünschte Funktionalität umzusetzen, wird jeder Programmierer mit grosser Sicherheit die Aufgabe anders lösen. Deshalb gelten für Quelltexte auch ähnliche Urheberrechte wie für natürliche Sprache.
Quelltexte haben Ähnlichkeiten mit Texten in natürlicher Sprache. Jeder Text besteht aus Buchstaben, Wörtern und Symbolen - aber nicht jeder Text ist Literatur. Programmieren selbst muss also nicht kreativ sein, es ist aber ein Werkzeug das hilft kreativ zu sein.
Der Unterschied zur natürlichen Sprache ist: der Quelltext hat zwei unterschiedliche Zielgruppen – die Computer auf denen er ausgeführt wird und die Programmierer die ihn lesen. Dem Computer sind die kreativen Fähigkeiten des Programmierers wahrscheinlich völlig egal, für ihn zählt nur die funktionale Bedeutung und die Effizienz eines Programms. Die Programmier-Kollegen werden das etwas anders sehen. Für sie bedeutet gute Programmierung: lesbaren, wiederverwendbaren, wartbaren und dokumentierten Quelltext zu schreiben. Gute Programme, die den Anforderungen beider Zielgruppen genügen, entstehen zum Beispiel, wenn redundante Anweisungen und Daten vermieden werden. Und dazu braucht man Kreativität!
Kreative Programmierer müssen ihr Denken flexibel gestalten und offen für Neues sein. John Maeda, Autor des Buches Creative Code und Professor für Design- und Informatik, sagt: "Um schöpferisch, z.B. im Bereich Grafik, tätig zu sein, muss man programmieren können". Sicher eine extreme Meinung. Eine Welt ohne Computer und Programmcode ist heute allerdings schwer vorstellbar. Wenn ein Kreativer nicht die Algorithmen beeinflusst, beherrscht und durchschaut, die seinen Gestaltungs-Prozess ausmachen, kann er auch das Endprodukt, nicht gänzlich selbst gestalten.
Wenn Ihre Neugierde geweckt wurde ...
Für alle die sich noch nicht näher mit Programmierung beschäftigt haben, jetzt aber neugierig geworden sind, bietet sich die, auf Grafik und Animation spezialisierte, Programmiersprache Processing als Einstieg an. Die Processing Entwicklungsumgebung ist kostenlos und erlaubt mit wenigen Zeilen Code Videos wiederzugeben, 2D- und 3D-Grafiken zu erstellen, diese zu manipulieren und auch zu animieren. Auch eine JavaScript Implementation, gibt es schon. Wer weiß: Processing.js kombiniert mit HTML5 könnte ja auch einmal eine Flash-Alternative werden. Als Einstieg empfiehlt sich das Buch Getting Started with Processing von den Processing Erfindern, und Maeda Schülern, Ben Fry und Casey Reas.
Und hier finden Sie unser Processing Experiment "Boid Arts" - basierend auf dem Flocking Example der beiden Autoren.