{"id":530,"date":"2015-08-08T01:00:40","date_gmt":"2015-08-07T23:00:40","guid":{"rendered":"https:\/\/www.bubenhofer.com\/sprechtakel\/?p=530"},"modified":"2015-08-08T12:01:11","modified_gmt":"2015-08-08T10:01:11","slug":"coding-cultures-ueber-den-zusammenhang-von-programmiersprachen-und-denkstilen","status":"publish","type":"post","link":"https:\/\/www.bubenhofer.com\/sprechtakel\/2015\/08\/08\/coding-cultures-ueber-den-zusammenhang-von-programmiersprachen-und-denkstilen\/","title":{"rendered":"Coding Cultures: \u00dcber den Zusammenhang von Programmiersprachen und Denkstilen"},"content":{"rendered":"<p>Ich habe zwei\u00a0Javascript-Bibliotheken (<a href=\"http:\/\/www.d3js.org\">D3.js<\/a> und <a href=\"http:\/\/www.p5js.org\">p5.js<\/a>) f\u00fcr mich entdeckt, um damit sprachliche Daten zu visualisieren. Ich lernte damit nicht nur eine Methode kennen, um ein Problem zu l\u00f6sen, sondern bin nebenbei auf etwas Interessantes gesto\u00dfen: Ich glaube, es gibt einen engen Zusammenhang zwischen der <strong>Wahl einer Programmiersprache<\/strong> und <strong>wissenschaftlichen Denkstilen<\/strong>. Und dass es sich lohnt, als (auch nicht programmierende\/r) Geisteswissenschaftler\/in dar\u00fcber nachzudenken. Doch der Reihe nach.<br \/>\n<!--more--><\/p>\n<h2>Einfach h\u00e4sslich<\/h2>\n<p>Wenn Sie eine Million Tweets analysieren m\u00fcssen, werden Sie auf Software zur\u00fcckgreifen, um dies zu tun. Sie k\u00f6nnen die Tweets in eine Tabelle (Excel, Calc, was auch immer) schmei\u00dfen, bestimmte Features der Tweets erheben und das Vorkommen der Features ausz\u00e4hlen. Dann wollen Sie vielleicht ein Balkendiagramm erstellen, um zu visualisieren, wie sich die Anzahl der Tweets \u00fcber die Zeit verteilt. Daf\u00fcr verwenden Sie den Diagramm-Assistenten, der Ihre Zahlen ruckzuck in ein Balken-, Linien- oder klaglos auch Tortendiagramm verwandelt \u2013 wenn Sie es wirklich wollen auch in 3d.<\/p>\n<div id=\"attachment_532\" style=\"width: 650px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.06.31.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-532\" class=\"size-large wp-image-532\" src=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.06.31-1024x506.png\" alt=\"Diagramm-Assistenten\" width=\"640\" height=\"316\" srcset=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.06.31-1024x506.png 1024w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.06.31-300x148.png 300w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.06.31-900x445.png 900w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-532\" class=\"wp-caption-text\">Google Bildersuche &#8222;Diagramm-Assistent&#8220;<\/p><\/div>\n<p>Ihr Diagramm wird h\u00e4sslich aussehen, aber das st\u00f6rt Sie vielleicht nicht.<\/p>\n<h2>Einfach komplex, ohne Fummeln<\/h2>\n<p>Anstelle von Excel oder Calc k\u00f6nnen Sie aber auch R verwenden. R ist eine Programmiersprache, die sich besonders gut f\u00fcr statistische Analysen und Visualisierungen von gro\u00dfen Datenmengen eignet. Eine Google-Suche &#8222;<a href=\"https:\/\/www.google.com\/search?q=r+vs+excel&amp;ie=utf-8&amp;oe=utf-8\">r vs excel<\/a>&#8220; deckt schnell die \u00fcblichen Argumente auf, die f\u00fcr R sprechen (z.B. von <a href=\"http:\/\/fantasyfootballanalytics.net\/2014\/01\/why-r-is-better-than-excel.html\">Isaac Petersen<\/a>):<\/p>\n<ul>\n<li>bessere Datenmanipulation m\u00f6glich<\/li>\n<li>Automatisierbarkeit von Analysen<\/li>\n<li>schneller<\/li>\n<li>Reproduzierbarkeit<\/li>\n<li>kostenlos<\/li>\n<li>OpenSource<\/li>\n<li>aktive Entwickler\/innen-Gemeinde, die Pakete f\u00fcr spezielle (und alle m\u00f6glichen) Bed\u00fcrfnisse entwickelt<\/li>\n<li>\u2026<\/li>\n<\/ul>\n<p>Fast \u00fcberall wird auch ein Nachteil genannt: Der Einstieg ist etwas schwierig, die Lernkurve steiler und man muss programmieren. Aber als Akademikerin m\u00fcssen Sie sowieso auf R setzen, das machen alle so.<\/p>\n<p>Gl\u00fcckwunsch, Sie arbeiten jetzt also mit R. Sie geh\u00f6ren jetzt zu den Informierten. Doch bald werden Sie merken: Es gibt doch noch einen Kreis von R-Nutzer\/innen, die noch informierter sind. Diese verwenden n\u00e4mlich f\u00fcr die Erstellung ihrer Visualisierungen nicht die Standardfunktionen von R, sondern jene eines speziellen Pakets, &#8222;ggplot2&#8220;:<\/p>\n<blockquote><p>ggplot2 is a plotting system for R, based on the grammar of graphics, which tries to take the <strong>good parts<\/strong> of base and lattice graphics and <strong>none of the bad parts<\/strong>. It takes care of many of the <strong>fiddly<\/strong> details that make plotting a <strong>hassle<\/strong> (like drawing legends) as well as providing a powerful model of graphics that makes it <strong>easy<\/strong> to produce <strong>complex<\/strong> multi-layered graphics. (http:\/\/ggplot2.org\/, Hervorhebungen Herr Sprechtakel)<\/p><\/blockquote>\n<p>Interessant, wie emotional man \u00fcber Programmiersprachen sprechen kann! Kein Rumfummeln und kein \u00c4rger mehr bei der Verwendung des Pakets ggplot2 in R und trotzdem die M\u00f6glichkeit, komplexe Diagramme zu erstellen:<\/p>\n<div id=\"attachment_533\" style=\"width: 650px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.49.44.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-533\" class=\"size-large wp-image-533\" src=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.49.44-1024x500.png\" alt=\"Google Bildersuche &quot;ggplot2&quot;\" width=\"640\" height=\"313\" srcset=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.49.44-1024x500.png 1024w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.49.44-300x146.png 300w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-05-um-22.49.44-900x439.png 900w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-533\" class=\"wp-caption-text\">Google Bildersuche &#8222;ggplot2&#8220;<\/p><\/div>\n<h2>Die Wahl zwischen Excel oder R:\u00a0The Software is the Message<\/h2>\n<p>Welche Auswirkungen hat nun Ihre Wahl des Werkzeugs auf das Ergebnis Ihrer Forschung? Sie k\u00f6nnten der Ansicht sein: Naja, Excel oder R, das sind ja <strong>nur Tools<\/strong>. Das eine ist vielleicht besser f\u00fcr den Zweck geeignet als das andere. Sie glauben aber daran, dass das Tool Ihrer Forschung untergeordnet ist. Es macht, was Sie wollen, und wenn es das nicht tut, dann suchen Sie sich ein anderes.<\/p>\n<p>Falsch.<\/p>\n<p>Mit der Wahl des Tools ordnen Sie sich einem <strong>wissenschaftlichen Denkstil<\/strong> unter und reproduzieren ihn wieder. Denn ein Tool ist weit mehr, als ein Tool.\u00a0Software ist Kultur.<\/p>\n<p>Der Begriff des Denkstils geht auf den Immunologen und Erkenntnistheoretiker\u00a0<a href=\"https:\/\/de.wikipedia.org\/wiki\/Ludwik_Fleck\">Ludwik Fleck<\/a>\u00a0(1896-1961) zur\u00fcck. Ein Philosophe und eine Biologin verstehen sich wissenschaftlich nicht, da sie unterschiedlichen Denkkollektiven angeh\u00f6ren, die unterschiedliche Denkstile pflegen, die inkompatibel miteinander sind. Diese unterschiedlichen Stile \u00e4u\u00dfern sich in verschiedenen Kategoriensystemen, unterschiedlichen Auffassungen \u00fcber angemessene Methoden oder dar\u00fcber, was eine Wahrheit ist. Sichtbar werden die unterschiedlichen Denkstile so:<\/p>\n<blockquote><p>Ich m\u00f6chte nur noch zwei Mittel erw\u00e4hnen, \u00fcber die der wissenschaftliche Denkstil verf\u00fcgt, um seinen Produkten den Charakter einer Sache zu verleihen.<\/p>\n<ul>\n<li>Eines von ihnen sind <strong>technische Termini<\/strong> [\u2026].<\/li>\n<li>Das zweite Mittel ist das <strong>wissenschaftliche Ger\u00e4t<\/strong> [\u2026].<\/li>\n<\/ul>\n<p>Wer es versteht, in ein Fernrohr zu schauen und an den Saturn zu denken,\u00a0benutzt damit allein bereits einen bestimmten abgegrenzten Denkstil.<br \/>\nFleck: Das Problem einer Theorie des Erkennens (1936)<\/p><\/blockquote>\n<p>Software, so viel ist klar, ist nach Flecks Terminologie ein wissenschaftliches Ger\u00e4t. Software pr\u00e4gt damit Denkstile mit und ist in wissenschaftliche Kulturen eingebettet. Diese Erkenntnis existiert schon l\u00e4nger und wird z.B. von Lev Manovich vertreten:<\/p>\n<blockquote><p>Software as a theoretical category is still invisible to most academics, artists, and cultural professionals interested in IT and its cultural and social effects. [\u2026] Software is the interface to our imagination and the world \u2013 a universal language through which the world speaks, and a universal engine on which the world runs.<br \/>\nManovich <a href=\"http:\/\/lab.softwarestudies.com\/2013\/12\/software-is-message-new-mini-article.html\">2014: 80<\/a><\/p><\/blockquote>\n<p>Manovich bezieht sich auf McLuhans\u00a0&#8222;The Medium is the Message&#8220; wenn er sagt: &#8222;The Software is the Message.&#8220;\u00a0Computer sind ein\u00a0Metamedium, mit dem das Schreiben von neuer Software eine kulturelle Aktivit\u00e4t geworden ist. Diesen Gedanken \u2013 Manovich verweist darauf \u2013 findet sich bereits bei\u00a0Kay und Goldberg (1977): &#8222;the computer, viewed as a medium itself, can be all other media&#8220;.<\/p>\n<div id=\"attachment_535\" style=\"width: 650px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/640px-Alan_Kay_and_the_prototype_of_Dynabook_pt._5_3010032738.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-535\" class=\"size-full wp-image-535\" src=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/640px-Alan_Kay_and_the_prototype_of_Dynabook_pt._5_3010032738.jpg\" alt=\"Alan Kay mit einem Prototypen des Dynabooks. Als Metamedium sollte dieser Computer bereits Kindern erm\u00f6glichen, neue Medien zu schaffen, indem sie z.B. programmieren (Quelle: Marcin Wichary from San Francisco, U.S.A. - Alan Kay and the prototype of Dynabook, pt. 5)\" width=\"640\" height=\"426\" srcset=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/640px-Alan_Kay_and_the_prototype_of_Dynabook_pt._5_3010032738.jpg 640w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/640px-Alan_Kay_and_the_prototype_of_Dynabook_pt._5_3010032738-300x200.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-535\" class=\"wp-caption-text\">Alan Kay mit einem Prototypen des Dynabooks. Als Metamedium sollte dieser Computer bereits Kindern erm\u00f6glichen, beliebige andere\u00a0Medien damit zu nutzen oder neue zu schaffen, indem sie z.B. programmieren (Quelle: Marcin Wichary from San Francisco, U.S.A. &#8211; <a href=\"http:\/\/www.flickr.com\/photos\/8399025@N07\/3010032738\/\">Alan Kay and the prototype of Dynabook, pt. 5<\/a>)<\/p><\/div>\n<p>Wenn Sie also Excel statt R (oder umgekehrt) w\u00e4hlen, um Ihre Daten weiterzuverarbeiten, f\u00fcgen Sie sich damit einem der Software innewohnenden Denkstil unter. Bei Excel ist es offensichtlich \u2013 Sie sind sogar sehr beschr\u00e4nkt, welche Typen von Visualisierungen Sie beispielsweise erzeugen. Bei einem flexibleren Tool wie R gilt das aber nach wie vor, wie man z.B. an folgendem Zitat sehen kann, das R anpreist:<\/p>\n<blockquote><p>The visualizations you can create in R are much more sophisticated and much more nuanced. And, philosophically, you can tell that the visualization tools in R were created by people more interested in good thinking about data than about beautiful presentation. (The result, ironically, is a much more beautiful presentation, IMHO.) (<a href=\"http:\/\/www.michaelmilton.net\/2010\/01\/26\/when-to-use-excel-when-to-use-r\/\">http:\/\/www.michaelmilton.net\/2010\/01\/26\/when-to-use-excel-when-to-use-r\/<\/a>)<\/p><\/blockquote>\n<p>Wenn Sie R verwenden, um Ihre Daten zu visualisieren, <em>d\u00fcrfen<\/em> Sie sich also nicht zuerst mit \u00e4sthetischen Kriterien befassen, sondern von den Daten her denken. Sie <em>d\u00fcrfen<\/em> aber gleichzeitig sicher sein, dass die Visualisierung ambitionierten \u00e4sthetischen Kriterien gen\u00fcgt, gerade <em>weil<\/em> Sie sich nicht damit befassen d\u00fcrfen. Aber glauben Sie mir: Wenn Sie mit R gearbeitet haben, erkennen Sie meist auf den ersten Blick, dass die Grafik von R stammt.<\/p>\n<h2>Und wie entsteht Software? Der Code und das Coden<\/h2>\n<p>Software ist eine Sammlung von Programmcode in einer bestimmten Programmiersprache (sehr lesenswert dazu: <a href=\"http:\/\/www.bloomberg.com\/graphics\/2015-paul-ford-what-is-code\/\">Paul Ford, What is Code<\/a>). R ist bereits eine Programmiersprache. Excel wurde wahrscheinlich in Programmiersprachen wie C++ und C# programmiert. Eine Programmiersprache erlaubt die Formulierung von Anweisungen an den Computer in einer sog. Hochsprache, die in Maschinencode, der den Computer steuert, \u00fcbersetzt wird. Es gibt sehr viele verschiedene Programmiersprachen, die sich nicht nur in ihrem Vokabular unterscheiden, sondern auch bestimmte Wege, wie man Software baut, beg\u00fcnstigen. M\u00f6chte ich eben mal ein bisschen Code schreiben, um in einer Textdatei alle W\u00f6rter, die mit &#8222;Ent-&#8220; beginnen, auszuz\u00e4hlen? Oder gibt es ein ganzes Team, das nach einem genauen Plan Software erstellt, die modular aufgebaut und erweiterbar ist und die mit riesigen Datenmengen effizient umgehen k\u00f6nnen muss?<\/p>\n<p>Es gibt das technische Argument, das f\u00fcr die Wahl einer Programmiersprache spricht. Es gibt aber auch ganz andere Argumente:<\/p>\n<blockquote><p>But the choice of a main programming language is the most important signaling behavior that a technology company can engage in.<br \/>\nTell me that you program in Java, and I believe you to be either serious or boring.<br \/>\nIn Ruby, and you are interested in building things quickly.<br \/>\nIn Clojure, and I think you are smart but wonder if you ship.<br \/>\nIn Python, and I trust you implicitly. In PHP, and we sigh together.<br \/>\nIn C++ or C, and I nod humbly. In C#, and I smile and assume we have nothing in common.<br \/>\nIn Fortran, and I ask to see your security clearance.<br \/>\nThese languages contain entire civilizations.<br \/>\n(<a href=\"http:\/\/www.bloomberg.com\/graphics\/2015-paul-ford-what-is-code\/\">Ford 2015: What is Code?<\/a>)<\/p><\/blockquote>\n<p>Programmiersprachen sind Ausdruck kultureller Praxis. Und genau so, wie es schwierig ist, bewusst und absichtlich neue nat\u00fcrlichsprachliche Variet\u00e4ten zu begr\u00fcnden, ist es schwer, eine neue Programmiersprache zu erfinden:<\/p>\n<blockquote><p>Making a new language is hard. Making a popular language is much harder still and requires the smile of fortune. And changing the way a popular language works appears to be one of the most difficult things humans can do, requiring years of coordination to make the standards align. Languages are large, complex, dynamic expressions of human culture.<br \/>\n(<a href=\"http:\/\/www.bloomberg.com\/graphics\/2015-paul-ford-what-is-code\/\">Ford 2015: What is Code?<\/a>)<\/p><\/blockquote>\n<p>Aus kulturwissenschaftlicher Sicht w\u00fcrde ich deshalb behaupten: Die Erfindung oder Weiterentwicklung einer Programmiersprache und die Wahl einer Programmiersprache hat <strong>sehr wenig mit technischen Aspekten zu tun<\/strong>, wie sie in der Informatik gelehrt werden. Nein, es hat\u00a0<strong>viel mehr<\/strong> damit zu tun, ob man sich einer <strong>kulturellen Praxis, einer Coding Culture<\/strong> zugeh\u00f6rig f\u00fchlt, sich von einer kulturellen Praxis, einer Coding Culture abgrenzen m\u00f6chte oder eine neue begr\u00fcnden will.<\/p>\n<p>Allerdings ist diese Sicht noch etwas vereinfachend, denn genau genommen gibt es nicht nur Programmiersprachen und Software, sondern auch noch Entwicklungsumgebungen und Programmierstile (vgl. dazu auch <a href=\"http:\/\/www.bloomberg.com\/graphics\/2015-paul-ford-what-is-code\/\">Ford 2015<\/a>). Ob ich mein Perl-Script in einem Texteditor erstelle oder daf\u00fcr eine professionelle Entwicklungsumgebung wie Eclipse verwende, macht ebenso einen Unterschied, wie ob ich dem objekt- oder komponentenorientierten <a href=\"https:\/\/de.wikipedia.org\/wiki\/Programmierparadigma\">Programmierparadigma<\/a> folge.\u00a0Vereinfachend verstehe ich unter &#8222;Wahl der Programmiersprache&#8220; die Kombination von Programmiersprache, Umgebung und Paradigma.<\/p>\n<h2>Die Wahl und der Stil: Excel, R, D3.js oder P5.js?<\/h2>\n<p>Programmiersprachen werden heute im Netz vorgestellt, dokumentiert und in Form von damit erstellten Programmen illustriert. Und\u00a0an gro\u00dfen &#8222;Entwicklerkonferenzen&#8220; versammeln sich die Anh\u00e4nger\/innen der Programmiersprache und vergewissern sich gegenseitig ihrer Programmierkultur.<\/p>\n<p>Die Kulturen k\u00f6nnten nicht unterschiedlicher sein. Ber\u00fchmt ist etwa folgendes Zeugnis kultureller Praxis an einer Entwicklerkonferenz von Microsoft:<\/p>\n<p>https:\/\/www.youtube.com\/watch?v=wvsboPUjrGc<\/p>\n<p>Der (damalige) CEO von Microsoft, Steve Ballmer, repr\u00e4sentiert eine Kultur des wei\u00dfen, lauten und selbstbewussten Mannes, der mit seiner Programmierung die Firma zum Marktleader bringt. Wer mit Microsoft-Produkten programmiert, geht strategisch, systematisch und effizient vor \u2013 so das Versprechen.<\/p>\n<p>Wie viel Ballmer-Coding-Culture\u00a0steckt in Ihrem Excel-Diagramm?<\/p>\n<p>Der Kontrast wird vielleicht sichtbar, wenn wir uns <a href=\"http:\/\/www.p5js.org\">P5.js<\/a> zuwenden. Das ist eine Javascript-Bibliothek (man programmiert also mit Javascript \u2013 lesenswert zu den Hintergr\u00fcnden dieser Sprache wieder <a href=\"http:\/\/www.bloomberg.com\/graphics\/2015-paul-ford-what-is-code\/\">Ford, Kapitel 5.7<\/a>), die ihre Wurzeln in der Programmiersprache <a href=\"https:\/\/processing.org\/\">Processing<\/a> hat. Die Hauptentwicklerin (!) Lauren McCarthy und ihr Kollege Dan\u00a0Shiffman pr\u00e4sentieren die Programmiersprache so (Quelle: <a href=\"http:\/\/hello.p5js.org\/\">http:\/\/hello.p5js.org\/<\/a>):<\/p>\n<div id=\"attachment_540\" style=\"width: 650px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/hello.p5js.org\/\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-540\" class=\"size-large wp-image-540\" src=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-06-um-15.48.06-1024x638.png\" alt=\"Lauren McCarthy und Ben Shiffman pr\u00e4sentieren p5.js (Klick f\u00fcrs Original)\" width=\"640\" height=\"399\" srcset=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-06-um-15.48.06-1024x638.png 1024w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-06-um-15.48.06-300x187.png 300w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-06-um-15.48.06-900x561.png 900w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-06-um-15.48.06.png 1279w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-540\" class=\"wp-caption-text\">Lauren McCarthy und Dan\u00a0Shiffman pr\u00e4sentieren p5.js (<a href=\"http:\/\/hello.p5js.org\/\">Klick f\u00fcrs Original<\/a>)<\/p><\/div>\n<p>Diese Programmiersprache steht f\u00fcr eine andere Coding Culture: weiblich, spielerisch, k\u00fcnstlerisch, cool k\u00f6nnten vielleicht die Attribute sein. Das bereits l\u00e4nger existierende und mit p5.js verwandte Processing pr\u00e4sentiert sich textlich so:<\/p>\n<blockquote><p>But the most important thing about Processing and culture is not high-profile results \u2013 it&#8217;s how the software has engaged a new generation of visual artists to consider programming as an essential part of their creative practice.<br \/>\n(<a href=\"https:\/\/processing.org\/overview\/\">https:\/\/processing.org\/overview\/<\/a>)<\/p><\/blockquote>\n<p>Klar, man kann rein technisch mit p5.js oder Processing Dinge tun, die man mit Excel nicht machen kann. Mit C++, Java oder Python allerdings schon \u2013 aber man macht es nicht (kaum), da diese anderen Programmiersprachen nicht den kulturellen N\u00e4hrboden daf\u00fcr bieten. Die entsprechenden Communities sind von anderen Denkstilen durchdrungen.<\/p>\n<p>p5.js ist, wie gesagt, eine Javascript-Bibliothek. Mit p5.js und Javascript, sowie weiteren Technologien wie HTML5, Canvas und SVG ist es m\u00f6glich, komplexe Anwendungen f\u00fcr Webbrowser zu entwickeln. Das ist noch nicht lange so. Fr\u00fcher konnten Browser weniger (HTML lie\u00df nicht sonderlich viel zu, au\u00dfer das Erstellen von statischen Webseiten) und f\u00fcr komplexere Anwendungen mussten andere technische L\u00f6sungen gefunden werden, die oft auf propriet\u00e4ren Technologien, die jeweils nur auf einem Betriebssystem liefen, beruhten. Die modernen Webtechnologien haben es also sehr vereinfacht, komplexe Anwendungen zu entwickeln, die in jedem aktuellen Browser auf allen Betriebssystemen laufen. Google konnte z.B. dank dieser Technologien ein eigenes &#8222;Office&#8220; f\u00fcrs Web, &#8222;Google Docs&#8220;, entwickeln.<\/p>\n<h2>Selbsterm\u00e4chtigung<\/h2>\n<p>Bestimmte Technologien und Programmiersprachen f\u00fchrten also zu einer neuen Art von\u00a0Softwareentwicklung,\u00a0die vielleicht beschrieben werden kann als:<\/p>\n<ul>\n<li>(Meist) <strong>OpenSource<\/strong> (mit Ausnahmen wie Google Docs) \u2013 der Quellcode liegt offen da und kann (je nach Lizenz) einfach weiterverwendet und f\u00fcr neue Applikationen angepasst werden.<\/li>\n<li><strong>Entprofessionalisierung<\/strong>: Nicht nur Informatiker\/innen k\u00f6nnen ansprechende Anwendungen bauen, sondern auch informatiktechnische Laien.<\/li>\n<li><strong>Experimentierfreudigkeit<\/strong>: Software wird nicht nur nach strikten Baupl\u00e4nen systematisch entwickelt, sondern experimentierend und im positiven Sinn eklektisch und erratisch gebaut.<\/li>\n<li><strong>Selbsterm\u00e4chtigung<\/strong>: Die grafischen Benutzeroberfl\u00e4chen vereinfachten zwar die Benutzung der Computer, nahmen\u00a0den Nutzer\/innen aber auch immer mehr Einflussm\u00f6glichkeiten auf das System. Die aktuellen Smartphones und\u00a0Tablet-Computer in Verbindung mit App-Stores sind ein gutes Beispiel: Auf ihnen soll konsumiert und nicht Neues geschaffen werden, schon gar nicht unter Umgehung der Oberfl\u00e4che. Durch die Aspekte OpenSource, Entprofessionalisierung und Experimentierfreudigkeit ist es jedoch wieder einfacher geworden, sich gegen\u00fcber dem Computer (und den Computerkonzernen) selbst zu erm\u00e4chtigen, also zu programmieren.<\/li>\n<\/ul>\n<p>Diese neue Art von Softwareentwicklung f\u00fchrte zu einer Bibliothek wie p5.js (siehe <a href=\"http:\/\/p5js.org\/examples\/\">hier<\/a> und <a href=\"http:\/\/p5js.org\/gallery\/\">hier<\/a> f\u00fcr ein paar Beispielanwendungen).<\/p>\n<p>In der Wissenschaft ist eine andere Javascript-Bibliothek, D3.js, wahrscheinlich erfolgreicher. D3.js eignet sich besonders gut, um gro\u00dfe Datenmengen zu visualisieren. Die Website pr\u00e4sentiert in einem &#8222;<a href=\"http:\/\/p5js.org\/gallery\/\">Visual Index<\/a>&#8220; viele Beispiele f\u00fcr solche Visualisierungen.<\/p>\n<div id=\"attachment_543\" style=\"width: 249px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/p5js.org\/gallery\/\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-543\" class=\"size-large wp-image-543\" src=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-08-um-00.16.18-239x1024.png\" alt=\"&quot;Visual Index&quot; auf der Website von D3.js\" width=\"239\" height=\"1024\" srcset=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-08-um-00.16.18-239x1024.png 239w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-08-um-00.16.18-70x300.png 70w\" sizes=\"auto, (max-width: 239px) 100vw, 239px\" \/><\/a><p id=\"caption-attachment-543\" class=\"wp-caption-text\">&#8222;<a href=\"http:\/\/p5js.org\/gallery\/\">Visual Index<\/a>&#8220; auf der Website von D3.js (Ausschnitt)<\/p><\/div>\n<p>Einerseits er\u00f6ffnet diese Bibliothek eine enorme Vielfalt an interaktiven und neuen Formen von Visualisierungen, die weit \u00fcber Visualisierungen in Excel oder auch R hinaus gehen. Auf den zweiten Blick aber sieht man selbst in <a href=\"http:\/\/christopheviau.com\/d3list\/gallery.html\">sehr gro\u00dfen Beispielsammlungen<\/a>\u00a0eine gewisse Uniformit\u00e4t: Eine bestimmte \u00c4sthetik, bestimmte wiederkehrende Formen und Datensatztypen als Grundlagen f\u00fcr die Visualisierungen. Es wird der Denkstil eines Denkkollektivs &#8222;Datenvisualisierung&#8220; sichtbar, beeinflusst von technischen Grundlagen und einer spezifischen Programmiersprache.<\/p>\n<p>Im Gegensatz zu p5.js scheint mir die D3.js-Community systematischer und weniger experimentell zu sein. Die Systematik zeigt sich beispielsweise darin, dass das Team um <a href=\"https:\/\/vega.github.io\">Jeff Heer eine &#8222;Visualisierungsgrammatik&#8220;<\/a> entwickelt hat, die eine Art Hochsprache ist, um relativ abstrakt eine Visualisierung zu definieren, die dann (unter anderem) mit D3.js umgesetzt wird. Dass sich eine solche Visualisierungsgrammatik entwickelt, liegt eben an der Eigenlogik der Denkkollektivs. F\u00fcr p5.js w\u00e4re so etwas zu rigid, f\u00fcr Excel zu clever.<\/p>\n<h2>Wider den Denkstil<\/h2>\n<p>Um neue Wege zu finden, m\u00fcssen Denkstile durchbrochen werden. Wenn Programmiersprachen Denkstile pr\u00e4gen und repr\u00e4sentieren, ist die Entscheidung f\u00fcr eine Programmiersprache nicht prim\u00e4r eine technische Entscheidung, sondern hat weitreichende Folgen. W\u00e4hlt man die dem Denkstil entsprechende Sprache wird man gut begangene, bew\u00e4hrte Pfade verfolgen, jedoch keine neuen Pfade finden.<\/p>\n<p>Deswegen ist es gerade aus geisteswissenschaftlicher Sicht entscheidend, sich f\u00fcr die &#8222;Coding Cultures&#8220; zu interessieren und sich der programmiertechnischen Pr\u00e4missen bewusst zu sein, wenn ein bestimmtes Tool eingesetzt wird. Und vielleicht findet man neue Pfade, indem man eine neue Programmiersprache und damit auch eine neue kulturelle Praxis verwendet, um Daten zu verarbeiten.<\/p>\n<p>Beim Experimentieren mit p5.js versuchte ich meine Twitter-Timeline zu visualisieren. Die Visualisierung ist zu unklar, um den Paradigmen der Informationsvisualisierung zu entsprechen. Aber vielleicht gehorcht sie eben eher einem anderen Denkstil, weil die p5.js-Coding-Culture dahinter steckt, nicht D3.js, R oder Excel:<\/p>\n<div id=\"attachment_546\" style=\"width: 650px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/pub.cl.uzh.ch\/projects\/visuallinguistics\/tweetvis\/\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-546\" class=\"size-large wp-image-546\" src=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-07-um-23.49.45-1024x593.png\" alt=\"Noah Bubenhofer: TweetViz \u2013 Visualisierung einer Twitter-Timeline\" width=\"640\" height=\"371\" srcset=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-07-um-23.49.45-1024x593.png 1024w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-07-um-23.49.45-300x174.png 300w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Bildschirmfoto-2015-08-07-um-23.49.45-900x521.png 900w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-546\" class=\"wp-caption-text\">Noah Bubenhofer: TweetViz \u2013 Visualisierung einer Twitter-Timeline (<a href=\"https:\/\/pub.cl.uzh.ch\/projects\/visuallinguistics\/tweetvis\/\">Klick f\u00fcr Originalanwendung<\/a>)<\/p><\/div>\n<p><a href=\"http:\/\/www.pixelstorm.ch\/\">Andres Wanner<\/a>, Physiker, Kommunikationsdesigner, K\u00fcnstler und Lehrer f\u00fcr digitales Design und Medienkunst (seine Berufsbezeichnung sprengt bereits verschiedene Denkkollektive), <a href=\"http:\/\/www.pixelstorm.ch\/pro_TRIUMF_ImagineTheBeam.php?lang=en\">l\u00e4sst die Arbeit eines Teilchenbeschleunigers auf eine Art visualisieren<\/a>, wie sie die Physikerin nicht akzeptieren wird, die aber vielleicht gerade deswegen eine neue Erkenntnis bietet.<\/p>\n<div id=\"attachment_545\" style=\"width: 710px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Gallery_TRIUMF.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-545\" class=\"size-full wp-image-545\" src=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Gallery_TRIUMF.jpg\" alt=\"Andres Wanner: Hypothetical Beam I\" width=\"700\" height=\"394\" srcset=\"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Gallery_TRIUMF.jpg 700w, https:\/\/www.bubenhofer.com\/sprechtakel\/wp-content\/uploads\/2015\/08\/Gallery_TRIUMF-300x169.jpg 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-545\" class=\"wp-caption-text\">Andres Wanner: Hypothetical Beam I<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ich habe zwei\u00a0Javascript-Bibliotheken (D3.js und p5.js) f\u00fcr mich entdeckt, um damit sprachliche Daten zu visualisieren. Ich lernte damit nicht nur eine Methode kennen, um ein Problem zu l\u00f6sen, sondern bin nebenbei auf etwas Interessantes gesto\u00dfen: Ich glaube, es gibt einen &hellip; <a href=\"https:\/\/www.bubenhofer.com\/sprechtakel\/2015\/08\/08\/coding-cultures-ueber-den-zusammenhang-von-programmiersprachen-und-denkstilen\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[65],"tags":[103,104,102,101,96,106],"class_list":["post-530","post","type-post","status-publish","format-standard","hentry","category-visual-linguistics","tag-coding-cultures","tag-datenvisualisierung","tag-denkkollektiv","tag-denkstil","tag-ludwik-fleck","tag-visual-linguistics"],"_links":{"self":[{"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/posts\/530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/comments?post=530"}],"version-history":[{"count":11,"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/posts\/530\/revisions"}],"predecessor-version":[{"id":549,"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/posts\/530\/revisions\/549"}],"wp:attachment":[{"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/media?parent=530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/categories?post=530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bubenhofer.com\/sprechtakel\/wp-json\/wp\/v2\/tags?post=530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}