Neu in meiner Bibliothek: Drei Bücher zu P5.js
Der Titel dieses Beitrags ist eigentlich leicht übertrieben, denn lediglich die Neuauflage von »The Nature of Code« ist wirklich neu in meiner Bibliothek, während »Aesthetic Programming« und »Generative Gestaltung« schon seit ein paar Monaten meine Regalwand schmücken. Ich wollte diese drei Bücher zu Creative Coding und P5.js aber gemeinsam besprechen.
Ich beginne mit dem Buch, auf das ich am längsten und ungeduldig gewartet hatte: Daniel Shiffmans Neuauflage von »The Nature of Code«1, in dem er seinen Klassiker von 2012 nicht nur von Processing (Java) nach P5.js portiert, sondern auch um wesentliche Teile ergänzt und erweitert hatte, sollte nach Angaben seines Verlages eigentlich schon im Juli 2024 erscheinen. Ich hatte es daher im Oktober dieses Jahres bestellt. Warum Amazon (oder No Starch Press) es dann erst geschafft hatten, das Buch Anfang Dezember auszuliefern, wird wohl ein Geheimnis des Verlages bleiben. Aber egal, die Schwarte ist jetzt da und hat mit ihren 11 Kapiteln auf über 600 Seiten alle meine Erwartungen übertroffen. Nach den Grundlagen physikalischer Systeme (wie zum Beispiel Vektoren, Kräfte und Bewegungen) werden in den darauffolgenden Kapiteln Themen wie Partikelsysteme, Autonome Agenten, Physik-Bibliotheken, Zelluläre Automaten, Fraktale, Evolutionäre Algorithmen, Neuronale Netze und Neuroevolution behandelt. Das Themenspektrum ist also breit und wird mich über Wochen, ach was … über Monate an meine Rechner fesseln.
Wie von Shiffman gewohnt, behandelt er die Themen zwar in einer lockeren Sprache, ohne jedoch die Gründlichkeit zu vernachlässigen. Daher – das gilt aber auch für die beiden folgenden Bücher – ist es sicher sinnvoll, die einzelnen Beispiele selber am Rechner nachzuprogrammieren. Lediglich bei den Quellen hätte ich es begrüßt, wenn sie etwas besser kenntlich gemacht wären (zum Beispiel als Fußnoten oder in einem separaten Apparat). So sind sie verstreut im Fließtext eingefügt und manchmal schwer zu finden. Aber »The Nature of Code« ist kein wissenschaftliches Werk und so ist Shiffmans Quellenbehandlung legitim.
»The Nature of Code« kann man auch für umme online lesen!
Das zweite Buch »Aesthetic Programming. A Handbook of Software Studies«2 von Winnie Soon und Geoff Cox hat mich ein wenig überrascht. Es verbindet einen kulturtheoretischen Ansatz mit einer Einführung in P5.js und behandelt daher (auch) Themen, die sonst in Programmierbüchern nicht vorkommen: Software Design in einer kapitalistischen Gesellschaft, Software und Marxismus, Software und Zugänglichkeit, Software und rassistische und sexuelle Diskriminierung. Und das ohne die Zielgruppe, also Programmiererinnen und Programmierer (und solche, die es werden wollen) aus den Augen zu verlieren. Es verzichtet daher dankenswerterweise über weite Strecken auf den vielfach üblichen sozialwissenschaftlichen Jargon – an einigen Stellen mussten die Verfasser aber dennoch darauf zurückgreifen.
Die Autorin und der Autor haben P5.js als Programmierumgebung gewählt, weil sie ihrer Meinung nach weitestgehend auch für »nichttechnische« Menschen – also Menschen ohne Informatik-Hintergrund – zugänglich ist. Und sie haben zu den manchmal sperrigen Themen interessante Beispielprogramme und Aufgaben entwickelt, die eine Anfängerin oder einen Anfänger nicht überfordern, fortgeschrittenen Programmiererinnen und Programmierern aber auch Raum für eigene Experimente lässt.
Den Punktabzug aber gibt es für die Kapitelüberschriften. Der verwendete Font ist nahezu unlesbar, ich habe oft Minuten gebraucht, um eine Überschrift zu entziffern. Das steht der propagierten, diskriminierungsfreien Zugänglichkeit doch weit entgegen.
Ansonsten bin ich ein begeisterter Leser von Aestetic Programming und habe bisher die ersten neun Kapitel (von zehn Kapiteln und einem Nachwort) durchgearbeitet. Zwar haben einige der dort verbreiteten Thesen ein leichtes Stirnrunzeln bei mir hervorgerufen, aber sie sind legitim und können (mindestens) als Diskussionsgrundlage für sonst in der Regel in der Informatik nicht behandelte Fragen dienen. Und der Apparat entspricht allen Anforderungen eines wissenschaftlichen Werkes, kann aber auch überflogen werden, ohne daß die Verständlichkeit leidet.
Das Buch steht unter einer Creative Commons Licence (CC-BY-SA) und kann hier kostenlos online gelesen werden. Aber auch der Download als PDF ist möglich, zum Beispiel hier. Und natürlich hat Amazon auch ein Paperback für (aktuell) 20,20 €.
Das letzte, heute vorgestellte Buch »Generative Gestaltung«3 hat – ähnlich wie »The Nature of Code« – eine lange Geschichte hinter sich: Es erschien in der Erstauflage 2009 ebenfalls mit Processing (Java) als Programmiergrundlage und wurde so auch ins Englische übersetzt. 2018 erschien dann eine gründlich überarbeitete Neufassung, die – wie der erweiterte Titel »Creative Coding im Web. Entwerfen, Programmieren und Visualisieren mit Javascript in p5.js« andeutet – mit P5.js als Grundlage. Wie schon die Erstauflage ist es auch ästthetisch ein wunderschönes Buch geworden, das mit seinen über 250 durchgehend farbigen Seiten die Leserin oder den Leser in seinen Bann zieht.
Das Buch unterscheidet sich teilweise stark von der Erstauflage. Es sind viele neue Beispiele hinzugekommen und es wurde Wert darauf gelegt, daß alle Programme webtauglich sind. Der Schwerpunkt liegt eindeutig auf Gestaltung, Design und Ästetik, daher ist der wuchtige, großformatige Band eine wunderbare Ergänzung zu den mehr technisch orientierten, beiden anderen, oben besprochenen Büchern und ist – trotz seines Preises von 40 € – ebenfalls eine Empfehlung von mir. Denn wer diese drei Bücher besitzt, braucht kein anderes Buch zu P5.js mehr.
Bild: Der belesene und kreative Dachs, erstellt mit Scenario. Prompt: »A badger in a red dressing gown sits in a wing chair and reads a book. Next to him is another stack of thick books. In the background is a large easel with a colorful, unfinished picture. The badger lives in a cave; the spring sun shines through holes in the cave walls«. Modell: Flux LoRA, Style: Luminous Depths.
Fußnoten
Daniel Shiffman: The Nature of Code. Simulating Natural Systems with JavaScript, San Francisco (no starch press) 2024↩︎
Winnie Soon, Beoff Cox: Aesthetic Programming. A Handbook of Software Studies, London (Open Humanities Press) 2020↩︎
Benedikt Groß, Hartmut Bohnacker, Julia Laub, Claudius Lazzeroni: Creative Coding im Web. Generative Gestaltung. Entwerfen, Programmieren und Visualisieren mit Javascript in P5.js, Mainz (Verlag Hermann Schmidt) 2018↩︎