coding as a playground 

Excerpt from: Creative Coding Beyond the Economic Imperative
Silvio Lorusso, 2022

Coding occupies a weird place within the field of graphic design. While it is recognized as a practice that profoundly shapes our artificial environment, its actual adoption within schools and studios is still minoritarian, to say the least. Moreover, as some of the interviews in this volume show, graphic designers are not always capable of perceiving the computational virtues of a project, such as an elegant workflow, or an ingenious generative process. I speak from experience: in almost five years of teaching, I’ve caught a few students outsourcing the programming part of their projects. Several of them expressed frustration with and disinterest in coding, which is often framed as the mere execution of a creative idea. Sadly, a gendered component is also likely to be in play, probably as a result of women’s internalized estrangement from the so-called STEM (science, technology, engineering and mathematics). In fact, most of the students who at the very outset disclose to me that “coding is not their cup of tea” are women. On the bright side, I have had the pleasure of seeing many complex code-heavy projects made by women designers. These projects were not about the Promethean hubris that code often inspires, or the proud display of the “power” of programming. Instead, they focused on the sociocultural aspects of coding as a practice that brings people together with machines and through machines. More on that later. Should this practice be within the designer’s domain? This has been a question that has elicited ongoing and heated debate for as long as I can remember. The question, simply put, is “should designers have to be able to code?” For some notable practitioners, the answer is a hard yes. One of them is John Maeda. His position is unsurprising, since he created the language Design by Numbers, Processing’s predecessor, and he could be considered a pioneer of computational design. Computational design is, according to Maeda, design that uses the fabric of anything involving computing, sensing and actuating. In his view, computational designers would not, at least in the near future, replace “classical designers” but simply work on different challenges. Another position is more down to earth: sure, coding skills are nice to have, a skill that facilitates the dialog with developers, but in practice, the place of graphic, UI and even UX designers is the wireframe, the mockup, the clickable prototype designed in Illustrator or (goosebumps) Photoshop; and more recently in Figma, Sketch or Invision, with the occasional venture into CSS or SASS territory. I don’t mean to offer yet another take on this vexata quaestio, but rather to zoom out on the frameworks we adopt when we consider coding as a practice. I hope to indicate two paradigms which influence and reconfigure each other. I will refer to them as Learn to Code and Code to Learn. A clarification, before we start: in this essay I use the terms “coding”, “programming” and “hacking” interchangeably as the difference between them and their relative hierarchy is often fuzzy and artificial. However, as I will explain, they are ideologically attached to the paradigms.

Link zu den verknüpften TextenC.4_E.3
Link zu den verknüpften Texten C.4_E.3

Learn to Code In 2021, the economic imperative to train and retrain has never been so strong. After the pandemic’s dramatic impact on artists’ economies, a skepticism about “creative” work is emerging, portraying it as unproductive daydreaming, and a wholly unessential industry. The emphasis is now on hard labor and effectiveness. The fundamental idea of Learn to Code is that the ability to program is a historical necessity for people working at a useless or obsolete job, and that these people must serve the economic imperatives of capitalism. This servitude is referred to as “retraining”. Perhaps it is useful at this point to briefly reiterate the distinction between coders and programmers. While programmers are recognized as having an acknowledged and relatively arcane expertise with a correspondingly high salary, coding is increasingly perceived as semi-skilled labor. The programmer belongs to a profession, the coder to a workforce. Back to design. Currently, public recognition of graphic designers is not so different from that of journalists. Both are now perceived as entire professions that it would be good to automate once and for all. Jobs meant to become buttons. According to this scenario, coding emerges as a professional panacea linked to the rhetoric of skill obsolescence and employability. Coding becomes a skill, in the most reductive sense of the term: something to add to your CV, better if exploded into discrete units. HTML and CSS: good, JavaScript: basic. The book Graphic Design Surveyed shows that US and UK students consider coding the third most useful skill to acquire (after networking and idea generation). In 2014, German media theorist Florian Cramer dissected the various meanings of the term “post-digital”. One of them was “the contemporary disenchantment with digital information systems and media gadgets.” The Learn to Code meme suggests that disenchantment does not only revolve around the tools of the trade, but also around the trade itself. Coding, in the light of retraining, doesn’t seem to be so emancipating. Another understanding of post-digital Cramer highlighted has to do with the revival of old media. This might be a bit of a stretch, but what is more “old media”, more 20th-century, than the idea of a workforce to be forged for the good of the nation? Of course, the Learn to Code narrative hints at the fact that jobs, skills and aspirations do not exist in a vacuum. However, due to a combination of disenchantment with programming and old-media labor rhetoric, coding emerges as a post-digital manifestation of capitalist realism, forcing graphic designers, journalists and coal miners alike to deal with their situations. All of them must go through mandatory updates, just like software. Is programming itself immune to this logic? Not really, it would seem, as the angelus novus of AI promises or threatens (depending on whom you ask) to automate the coder as well.

Code to Learn Ted Nelson once said: “The computer is as inhuman as we make it.” The fact that coding is a cognitive activity does not make it intrinsically humane. It can also become a tedious, repetitive, industrialized exercise. This is what the jobs of a “new collar” workforce might look like, especially if such a workforce were a coercively retrained one. What then is coding beyond the not very empowering economic imperative of “learning to code”? Coding—whether it consists of writing HTML and CSS, posting a Javascript snippet on Github Gist, tweaking a Processing sketch, or publishing a Python module—can be not merely the content of a learning process, but its very medium. Thus, it can be a craft and a culture, or even better, a cultural meeting point. Who would we find there? A community of practice.

Link zu den verknüpften TextenC.4_E.3
Link zu den verknüpften Texten C.4_E.3

Learning with Computers In a time when much is being said about the creativity of autonomous AI-powered machines, it is good to reconsider Licklider’s notion of human-computer symbiosis. When you code, you instruct the computer to execute a more or less complex task, which is then immediately performed. You do not always know what to expect: the result might awe or disappoint you, allowing you to reorient or even redefine your initial goal. Part of the symbiosis is intrinsic to the language shared by user and machine—namely, code. Creativity unfolds through this micro-iterative learning process: it is neither in the mind nor in the machine, but rather in the continuous scripted dialogue between the subject and their extensions. The computer is just one of those extensions, but a particularly powerful one, since it is, to use Alan Kay’s term, a metamedium, that is, a medium capable of simulating all others. As such the computer should be a thing that can be shaped and transformed. When it becomes less malleable, the computer is fixed within a stable media, which is perhaps more efficient, but also less surprising, less “creative.” You do more but you learn less. Fundamentally, creativity is a question of time. Mostly of our daily activity with computers happens through hopefully speedy but ossified software. We use the computer in “speedrun mode.” This is the paradox of creative coding: the coding part is supposed to make things faster, the creative part requires that things go slowly. According to permacomputing principles, one might say that Learn to Code is very “yang”, and Code to Learn does also value the “yin”: it “accepts the aspects that are beyond rational control and comprehension. Rationality gets supported by intuition. The relationship with the system is more bidirectional, emphasizing experimentation and observation.”

Link zu den verknüpften TextenC.4_E.3
Link zu den verknüpften Texten C.4_E.3

Learning through Computers Coding does not just manifest as a relationship between a user and a computer, but also between users through computers. Users exchanging techniques in real life or on Stack Overflow, appreciating each others’ solutions, using coding as an excuse to just hang out, or building upon each other’s tools. The input of this process is patience and a capacity for listening; the output is fun and a sense of belonging. Coding can also be a bridge linking us to past users. We see this in Ted Davis’ assignment to recreate pioneering computer works or with the Re-Programmed Art Project, where a series of contemporary designers reinterpreted “analog” works of the Italian collective Gruppo T, active in the 1960s.

Link zu den verknüpften TextenE.1_E.2
Link zu den verknüpften Texten E.1_E.2

Coding as a Craft While Learn to Code turns coding into a resumé-ready skill, Code to Learn is about coding as a craft. My understanding of craft is wide-ranging: “a good job well done,” as Sennett defines it. A craft is a savoir faire that is capable of stabilizing and consolidating one’s identity. In a time when designers are urged to constantly decorate their bio with strategic labels, a craft is a reflective activity, in the sense that the crafted things and the tools for crafting are a reflection of their maker, who generally recognizes themselves in them. This is also true of coding. As Roberto Arista, creator of the Python for Designers course, puts it: Programming then can become a way to escape [the confinement of desktop publishing software], connecting different regions and patiently rebuilding the workshop within the tools that effectively destroyed these regions. The craftsperson enters their own physical or digital workshop—a local hackerspace, a custom i3 setup, a DIY CMS—and feels at home. This is where they code and learn, learn and code. This is where they can forget, for a while at least, if they are lucky, the pressures and economic necessities of daily life. Without neglecting Learn to Code’s stressful refrain of employability and professional obsolescence, Code to Learn helps by considering the coding activity in itself, and not merely as an inevitable destiny. Opting for one model over the other in a graphic design school also means determining how to teach programming. When I speak of coding in and of itself I do not mean it as an index of technical notions (variables, loops, etc.). That is precisely the instrumental reduction of the Learn to Code attitude. Rather, I mean it in a broader sense: coding as a social activity and a cultural domain. This is what Code to Learn is all about.


Auszug aus: Kreatives coding jenseits des wirtschaftlichen Imperativs
Silvio Lorusso, 2022

Coding nimmt im Bereich des Grafikdesigns einen merkwürdigen Platz ein. Obwohl es als eine Praxis anerkannt ist, die unsere künstliche Umgebung tiefgreifend prägt, ist seine tatsächliche Annahme in Schulen und Studios immer noch gering, um es vorsichtig auszudrücken. Wie einige der Interviews in diesem Band zeigen, sind Grafikdesigner außerdem nicht immer in der Lage, die rechnerischen Vorzüge eines Projekts zu erkennen, wie etwa einen eleganten Workflow oder einen genialen generativen Prozess. Ich spreche aus Erfahrung: In fast fünf Jahren meiner Lehrtätigkeit habe ich einige Studenten dabei erwischt, wie sie den Programmierteil ihrer Projekte auslagerten. Mehrere von ihnen äußerten ihre Frustration und ihr Desinteresse an der Programmierung, die oft als bloße Umsetzung einer kreativen Idee dargestellt wird. Bedauerlicherweise dürfte auch eine geschlechtsspezifische Komponente im Spiel sein, wahrscheinlich als Folge der verinnerlichten Entfremdung von Frauen vom sogenannten MINT (Naturwissenschaften, Technik, Ingenieurwesen und Mathematik). Tatsächlich sind die meisten Studenten, die mir gleich zu Beginn sagen, dass „Programmieren nicht ihr Ding ist“, Frauen. Positiv zu vermerken ist, dass ich das Vergnügen hatte, viele komplexe Code-lastige Projekte von Designerinnen zu sehen. Bei diesen Projekten ging es nicht um die prometheische Hybris, die Code oft hervorruft, oder um die stolze Zurschaustellung der „Macht“ der Programmierung. Stattdessen konzentrierten sie sich auf die soziokulturellen Aspekte des Codierens als eine Praxis, die Menschen mit Maschinen und durch Maschinen zusammenbringt. Mehr dazu später. Sollte diese Praxis in der Domäne des Designers liegen? Diese Frage hat, solange ich mich erinnern kann, eine anhaltende und hitzige Debatte ausgelöst. Die Frage lautet vereinfacht gesagt: „Sollten Designer in der Lage sein, zu programmieren?“ Für einige namhafte Praktiker ist die Antwort ein klares Ja. Einer von ihnen ist John Maeda. Seine Position ist nicht überraschend, da er die Sprache Design by Numbers, den Vorgänger von Processing, geschaffen hat und als Pionier des Computational Design gelten kann. Computational Design ist laut Maeda ein Design, das die Struktur von allem nutzt, was mit Rechnen, Erkennen und Betätigen zu tun hat. Seiner Ansicht nach würden Computerdesigner zumindest in naher Zukunft die „klassischen Designer“ nicht ersetzen, sondern lediglich an anderen Herausforderungen arbeiten. Eine andere Position ist bodenständiger: Natürlich sind Programmierkenntnisse schön, eine Fähigkeit, die den Dialog mit Entwicklern erleichtert, aber in der Praxis ist der Platz von Grafik-, UIund sogar UX-Designern das Wireframe, das Mockup, der anklickbare Prototyp entworfen in Illustrator oder (Gänsehaut) Photoshop; und in jüngerer Zeit in Figma, Sketch oder Invision, mit gelegentlichem Vorstoß in CSS- oder SASS-Gebiet. Ich möchte diese ärgerliche Frage nicht noch einmal aufgreifen, sondern vielmehr auf die Rahmenbedingungen eingehen, die wir anwenden, wenn wir Coding als Praxis betrachten. Ich hoffe, zwei Paradigmen aufzuzeigen, die sich gegenseitig beeinflussen und neu konfigurieren. Ich werde sie als „Programmieren lernen“ und „Programmieren um zu lernen“ bezeichnen. Eine Klarstellung, bevor wir beginnen: In diesem Aufsatz verwende ich die Begriffe „Coding“, „Programmierung“ und „Hacking“ austauschbar, da der Unterschied zwischen ihnen und ihrer relativen Hierarchie oft unklar und künstlich ist. Wie ich jedoch erklären werde, sind sie ideologisch an die Paradigmen gebunden.

Link zu den verknüpften TextenC.4_E.3
Link zu den verknüpften Texten C.4_E.3

Programmieren lernen
Im Jahr 2021 war die wirtschaftliche Notwendigkeit der Aus- und Umschulung noch nie so groß. Nach den dramatischen Auswirkungen der Pandemie auf die Wirtschaft der Künstler wächst eine Skepsis gegenüber „kreativer“ Arbeit, dieals unproduktive Tagträumerei und als völlig unwesentliche Branche dargestellt wird. Der Schwerpunkt liegt jetzt auf harter Arbeit und Effektivität. Die Grundidee von Programmieren lernen besteht darin, dass die Fähigkeit zum Programmieren eine historische Notwendigkeit für Menschen ist, die an einem nutzlosen oder veralteten Arbeitsplatz arbeiten, und dass diese Menschen den wirtschaftlichen Zwängen des Kapitalismus dienen müssen. Diese Knechtschaft wird als „Umschulung“ bezeichnet. Vielleicht ist es an dieser Stelle sinnvoll, noch einmal kurz auf die Unterscheidung zwischen Codierern und Programmierern einzugehen. Während Programmierern anerkanntermaßen über anerkannte und relativ obskure Fachkenntnisse verfügen und ein entsprechend hohes Gehalt zahlen, wird das coden zunehmend als angelernte Arbeitskraft wahrgenommen. Der Programmierer gehört einem Beruf an, der Coder einer Belegschaft. Zurück zum Design. Derzeit unterscheidet sich die öffentliche Anerkennung von Grafikdesignern nicht so sehr von der von Journalisten. Beide werden mittlerweile als ganze Berufszweige wahrgenommen, die es gut wäre, ein für alle Mal zu automatisieren. Jobs sollen zu Knöpfen werden. Diesem Szenario zufolge erweist sich Coding als professionelles Allheilmittel, das mit der Rhetorik der Veralterung von Fähigkeiten und der Beschäftigungsfähigkeit verbunden ist. Das Programmieren wird zu einer Fähigkeit, im reduziertesten Sinne des Wortes: etwas, das Sie Ihrem Lebenslauf hinzufügen können, besser noch in diskrete Einheiten zerlegt. HTML und CSS: gut, JavaScript: einfach. Das Buch „Graphic Design Surveyed“ zeigt, dass Studierende in den USA und im Vereinigten Königreich das Programmieren als die drittnützlichste Fähigkeit betrachten, die es zu erwerben gilt (nach Networking und Ideengenerierung). Im Jahr 2014 untersuchte der deutsche Medientheoretiker Florian Cramer die verschiedenen Bedeutungen des Begriffs „postdigital“. Einer davon sei „die zeitgenössische Ernüchterung gegenüber digitalen Informationssystemen und Mediengeräten“. Das Learn to Code- Meme legt nahe, dass sich Ernüchterung nicht nur um die Werkzeuge des Hand- werks, sondern auch um das Handwerk selbst dreht. Das Programmieren scheint angesichts der Umschulung nicht so emanzipierend zu sein. Ein weiteres Verständnis des PostDigitalen, das Cramer hervorhob, hat mit der Wiederbelebung alter Medien zu tun. Das ist vielleicht etwas übertrieben, aber was ist „alter“ als die Idee einer Arbeitskraft, die zum Wohle der Nation geschmiedet werden soll? Natürlich deutet die Erzählung „Learn to Code“ darauf hin, dass Arbeitsplätze, Fähigkeiten und Ambitionen nicht im luftleeren Raum existieren. Aufgrund einer Kombination aus Programmierverdrossenheit und Arbeitsrhetorik der alten Medien entpuppt sich coding jedoch als eine postdigitale Manifestation des kapitalistischen Realismus, die Grafikdesigner, Journalisten und Bergleute gleichermaßen dazu zwingt, sich mit ihrer Situation auseinanderzusetzen. Sie alle müssen, genau wie Software, obligatorische Updates durchlaufen. Ist die Programmierung selbst gegen diese Logik immun? Scheinbar nicht wirklich, denn der Angelus Novus der KI verspricht oder droht (je nachdem, wen man fragt), auch den Programmierer zu automatisieren.

Programmieren um zu lernen
Ted Nelson sagte einmal: „Der Computer ist so unmenschlich, wie wir ihn machen.“ Die Tatsache, dass coding eine kognitive Aktivität ist, macht sie nicht grundsätzlich menschlich. Es kann auch zu einer mühsamen, sich wiederholenden, industrialisierten Übung werden. So könnten die Arbeitsplätze einer „New Collar“-Belegschaft aussehen, insbesondere wenn es sich bei dieser Belegschaft um eine Zwangsumschulung handelte. Was ist dann coden jenseits des wenig bestärkenden wirtschaftlichen Imperativs „Programmieren lernen“? Programmieren – sei es das Schreiben von HTML und CSS, das Posten eines Javascript-Snippets auf Github Gist, das Optimieren einer Processing- Skizze oder das Veröffentlichen eines Python-Moduls – kann nicht nur der Inhalt eines Lernprozesses sein, sondern sein eigentliches Medium. Somit kann es ein Handwerk und eine Kultur sein, oder noch besser, ein kultureller Treffpunkt. Wen würden wir dort finden? Eine Praxisgemeinschaft.

Link zu den verknüpften TextenC.4_E.3
Link zu den verknüpften Texten C.4_E.3

Lernen mit Computern
In einer Zeit, in der viel über die Kreativität autonomer KI-betriebener Maschinen gesprochen wird, ist es gut, Lickliders Vorstellung von der Mensch- Computer-Symbiose zu überdenken. Beim Programmieren weisen Sie den Computer an, eine mehr oder weniger komplexe Aufgabe auszuführen, die dann sofort ausgeführt wird. Sie wissen nicht immer, was Sie erwartet: Das Ergebnis kann Sie beeindrucken oder enttäuschen, sodass Sie sich neu orientieren oder Ihr ursprüngliches Ziel sogar neu definieren können. Ein Teil der Symbiose ist in der gemeinsamen Sprache von Benutzer und Maschine verankert, nämlich im Code. Kreativität entfaltet sich durch diesen mikroiterativen Lernprozess: Sie findet weder im Kopf noch in der Maschine statt, sondern im kontinuierlichen Skriptdialog zwischen dem Subjekt und seinen Erweiterungen. Der Computer ist nur eine dieser Erweiterungen, aber eine besonders mächtige, da er, um Alan Kays Begriff zu verwenden, ein Metamedium ist, also ein Medium, das inder Lage ist, alle anderen zu simulieren. Als solcher sollte der Computer etwas sein, das gestaltet und verändert werden kann. Wenn er weniger formbar wird, wird der Computer in einem stabilen Medium fixiert, was vielleicht effizienter, aber auch weniger überraschend und weniger „kreativ“ ist. Sie tun mehr, lernen aber weniger. Grundsätzlich ist Kreativität eine Frage der Zeit. Die meisten unserer täglichen Aktivitäten mit Computern erfolgen über hoffentlich schnelle, aber verknöcherte Software. Wir nutzen den Computer im „Speedrun-Modus“. Das ist das Paradoxon des kreativen Codierens: Coding soll die Dinge schneller machen, der kreative Teil erfordert, dass die Dinge langsam ablaufen. Gemäß den Prinzipien des Permacomputing könnte man sagen, dass Programmieren lernen sehr „Yang“ ist, und Programmieren um zu lernen schätzt auch das „Yin“: Es „akzeptiert die Aspekte, die außerhalb der rationalen Kontrolle und des Verständnisses liegen.“ Rationalität wird durch Intuition unterstützt. Die Beziehung zum System ist eher bidirektional und betont das Experimentieren und Beobachten.“

Link zu den verknüpften TextenC.4_E.3
Link zu den verknüpften Texten C.4_E.3

Lernen durch Computer
Coding manifestiert sich nicht nur als Beziehung zwischen einem Benutzer und einem Computer, sondern auch zwischen Benutzern über Computer. Benutzer tauschen Techniken im echten Leben oder auf Stack Overflow aus, schätzen die Lösungen der anderen, nutzen das Programmieren als Vorwand, um einfach nur Zeit zu verbringen, oder bauen auf den Tools der anderen auf. Der Input dieses Prozesses ist Geduld und die Fähigkeit zum Zuhören; Der Output macht Spaß und ein Zugehörigkeitsgefühl. Coding kann auch eine Brücke sein, die uns mit früheren Benutzern verbindet. Wir sehen dies bei Ted Davis‘ Auftrag, bahnbrechende Computerwerke nachzubilden, oder beim Re- Programmed Art Project, bei dem eine Reihe zeitgenössischer Designer „analoge“ Werke des in den 1960er Jahren aktiven italienischen Kollektivs Gruppo T neu interpretierten.

Link zu den verknüpften TextenE.1_E.2
Link zu den verknüpften Texten E.1_E.2

Programmiern als Handwerk
Während „Learn to Code“ das Programmieren zu einer lebenslauffertigen Fertigkeit macht, geht es bei „Code to Learn“ um das Programmieren als Handwerk. Mein Verständnis von Handwerk ist weitreichend: „gute Arbeit gut gemacht“, wie Sennett es definiert. Ein Handwerk ist ein Savoir-faire, das die eigene Identität stabilisieren und festigen kann. In einer Zeit, in der Designer aufgefordert werden, ihre Biografie ständig mit strategischen Etiketten zu versehen, ist ein Handwerk eine reflektierende Tätigkeit in dem Sinne, dass die hergestellten Dinge und die Werkzeuge zum Basteln ein Spiegelbild ihres Schöpfers sind, der sich im Allgemeinen darin wiedererkennt. Dies gilt auch für die Programmierung. Wie Roberto Arista, Erfinder des Kurses „Python für Designer“, es ausdrückt: „Programmieren kann dann eine Möglichkeit sein, [der Beschränkung der Desktop-Publishing- Software] zu entkommen, verschiedene Regionen zu verbinden und die Werk statt mit den Tools, die diese Regionen effektiv zerstört haben, geduldig neu aufzubauen.“ Der Handwerker betritt seine eigene physische oder digitale Werkstatt – einen lokalen Hackerspace, ein benutzerdefiniertes i3-Setup, ein DIY- CMS – und fühlt sich wie zu Hause. Hier programmieren und lernen, lernen und programmieren sie. Hier können sie, wenn sie Glück haben, zumindest für eine Weile den Druck und die wirtschaftlichen Notwendigkeiten des täglichen Lebens vergessen. Ohne den stressigen Refrain von Learn to Code auf Beschäftigungsfähigkeit und berufliche Veralterung zu vernachlässigen, hilft Programmieren um zu lernen, indem es coding an sich betrachtet und nicht nur als ein unvermeidliches Schicksal. Sich in einer Grafikdesign-Schule für ein Modell gegenüber dem anderen zu entscheiden, bedeutet auch, festzulegen, wie das Programmieren gelehrt werden soll. Wenn ich von coding an sich spreche, meine ich damit nicht einen Index technischer Begriffe (Variablen, Schleifen usw.). Genau das ist die instrumentelle Reduzierung der Learn to Code-Einstellung. Ich meine es vielmehr in einem weiteren Sinne: Programmieren als soziale Aktivität und kulturelle Domäne. Darum geht es bei Code to Learn.