Kulturtechniken 2.0: Kommandozeile, Texteditor, Versionskontrolle
Drei Defizite hindern Menschen daran, Computer effektiv, effizient und selbstbestimmt zu benutzen. Sie fürchten die Kommandozeile, übersehen den Texteditor und haben keine Ahnung, wozu man eine Versionskontrolle braucht. Die Kommandozeile, der Texteditor und die Versionskontrolle gehören deshalb auf den Lehrplan aller Schulen.
Dieser Tage startete wieder einmal eins dieser gut gemeinten Projekte, mit denen in Deutschland in regelmäßigen Abständen versucht wird, die Beliebtheit von MINT-Fächern zu steigern. Mit prominenter Unterstützung versucht die Initiative ›Jeder kann programmieren‹1, »einen breit angelegten Diskurs über Technologie in unserer Gesellschaft« zu starten. Und weiter heißt es: »Der kreative Umgang mit Algorithmen und Daten ist die »Sprache des 21. Jahrhunderts«. Durch ›Jeder kann programmieren‹ werden möglichst viele Menschen an diese herangeführt.« Dies ist natürlich nicht die erste und einzige Initiative, die sich ein solches Ziel gesetzt hat. So veranstaltet beispielsweise der Python Software Verband e.V. mit einem Etat, der nahezu gegen Null geht, den Programmierwettbewerb PyMove3D, der von Programmier-Workshops begleitet wird.2 Ich selbst habe mehrere Jahre lang in der Schule meiner Söhne eine Programmier-AG geleitet. Was den guten Willen betrifft und das Engagement Einzelner, so müsste es in Deutschland um die MINT-Fächer gut bestellt sein. Und im Vergleich zum praktisch nicht mehr existenten Schulfach Geschichte3 leben die Naturwissenschaften in Deutschland immer noch wie die Maden im Speck. Aber mit historischem Verständnis und einem aufgeklärten Geist kann man bekanntlich keine Maschinen bauen und exportieren. Die Politik will unpolitische Ingenieure.
Aber kehren wir zurück zum Thema. Jeder kann programmieren, behauptet die Initiative. Aus sicherer Quelle weiß ich, dass nicht einmal alle Informatiker mit Hochschulabschluss programmieren können. Man muss das Motto der Initiative also metaphorisch verstehen. Es ist ja auch nicht jeder in der Lage, drei Sätze geradeaus zu schreiben, dem in der Schule der Analphabetismus ausgetrieben wurde. Aber jeder Romancier hat Lesen und Schreiben gelernt. Die Frage lautet also. Welche Kulturtechniken sind die Grundlage fürs Programmieren? Ich möchte die Frage etwas anders formulieren. Welche Kulturtechniken ermöglichen es, einen Computer überhaupt sinnvoll bedienen zu können?
Die Frage mag absurd klingen, weil heutzutage fast jeder ein Smartphone besitzt und auf Facebook, Twitter oder anderen sozialen Netzwerken aktiv ist. Der Punkt ist nur. Das Internet ist größer als Facebook und der Computer ist nicht bloß zum chatten und liken da.
Ich arbeite seit Mitte der 80er Jahre mit Computern und beobachte ebenso lang, wie andere Menschen Computer nutzen. Ich habe nie ernsthaft programmiert, aber ich habe viele Betriebssysteme kennengelernt und mit den unterschiedlichsten Programmen gearbeitet. Alles, was ich heute kann und weiß, verdanke ich anderen Menschen, die echte Experten waren. Ich bin Laie, ich habe nie Informatik studiert. Aber ich habe das Glück gehabt, immer von denen zu lernen, die es richtig machen, und nicht von denen, die es so machen, wie es immer schon gemacht wurde. Ich habe mittlerweile eine Vorstellung davon, welche Dinge jeder Mensch wenigstens rudimentär auf einem Computer bedienen sollte. Es sind: die Kommandozeile, der Texteditor und die Versionsverwaltung.
Die Kommandozeile
Wer Programmierer, Systemadministratoren und andere erfahrene Computernutzer beobachtet, wird feststellen, dass sie immer wieder auf die Kommandozeile wechseln. Das Command Line Interface (CLI) ist so ziemlich eine der ältesten Schnittstellen zwischen Mensch und Maschine, wenn man den Lochstreifen einmal außen vor lässt. Die Kommandozeile ist nicht Opas Computer, sondern pure Steinzeit. Es gibt zahllose grafische Benutzeroberflächen, die es jedem Kind ermöglichen, einen Computer zu bedienen. Warum also starten diese Leute immer wieder ein Terminalprogramm, um archaische Befehle einzutippen? Die Antwort ist einfach: weil es schneller, effektiver und effizienter ist, als sich durch Menüs und Widgets zu hangeln. Die Kommandozeile ist für viele Tätigkeiten immer noch die beste Schnittstelle zum Computer. Die Kommandozeile ermöglicht ihnen mehr zu schaffen, ihre Aufgaben schnell und sicher abzuarbeiten.
Jedes Kind sollte in der Schule die Kommandozeile kennen lernen – die GUIs können sie ohnehin bedienen. Wer auf der Kommandozeile arbeiten kann, wird niemals ratlos vor dem Update eines grafischen Programms stehen, weil ein Button von links oben nach rechts unten versetzt wurde, denn wer auf der Kommandozeile arbeitet, lernt die Abstraktion kennen. Er weiß, dass ein Button nicht der Befehl selbst ist, sondern lediglich eine Metapher darstellt. Wer die Kommandozeile beherrscht, wird deshalb wesentlich souveräner und sicherer mit graphischen Benutzeroberflächen umgehen, weil er ihre Metaphern nicht wörtlich nimmt.
Der Texteditor
Der Texteditor gehört zur Grundausstattung eines Entwicklers. Wer programmiert, tut das in der Regel mit einem Texteditor. Selbst teure IDEs sind nichts anderes als Texteditoren, um die herum andere nützliche Dinge hinzugefügt wurden. Doch es geht mir hier nicht um Entwickler.
Ein Texteditor produziert reine Textdateien, also die kompatibelsten Dateien überhaupt. Ich kann heute noch problemlos Textdateien lesen, die ich Anfang der 90er Jahren erstellt habe. Und auch in 100 Jahren wird man reine Textdateien noch öffnen, lesen und weiterverarbeiten können. Denn Programme, die reine Textdateien lesen, wird es vermutlich immer geben. Wer seinen Enkeln und Urenkeln seine Weisheiten hinterlassen möchte, tut gut daran, sie als reinen Text zu speichern oder sie auszudrucken.
Ein Texteditor ist ein Anfang, kein Ende wie eine Textverarbeitung wie Word. In einem E-Book-Forum dürfte die am häufigsten gestellte Frage diese sein: Wie kann ich aus Word heraus ein E-Book erstellen? Vor 15 Jahren lautete die Frage vermutlich: Wie kann ich aus Word heraus eine Webseite erstellen? Noch nie habe ich die Frage gelesen: Wie kann ich aus Vim heraus ein E-Book oder eine Webseite erstellen? Benutzer eines Texteditors wissen, dass man den im Editor erstellten Text dazu einfach in ein Programm lädt, mit dem man E-Books oder Webseiten erstellt. Vom Texteditor führt der Weg überall hin, Word dagegen ist eine Sackgasse, aus der man nur mit umständlichen Tricks wieder herauskommt. Ein Texteditor kann am Anfang eines höchst effizienten Produktionsprozesses stehen, in dem natürlich auch die Kommandozeile eine zentrale Aufgabe hat.
Dezentrales Versionskontrollsystem
Kollaboratives Arbeiten war wohl der Megatrend des letzten Jahrzehnts. Arbeitsgruppenserver stehen heute in jedem Büro. Wikis und Content Management Systeme sind wie Pilze aus dem Boden geschossen. Und mit Google Docs und Etherpad sind Tools entstanden, mit denen Menschen in Echtzeit gemeinsam an einem Text arbeiten können. Wer spontan mit anderen zusammenarbeiten möchte, kann auf Werkzeuge zurückgreifen, von denen man in den 90ern nicht einmal zu träumen wagte. Sobald es aber ernst wird, kommen Versionskontrollsysteme zum Einsatz. In diesem Bereich hat sich in den letzten Jahren immens viel getan. Durch den Siegeszug der dezentralen Versionskontrollsysteme sowie bekannter Hosting-Plattformen wie GitHub und Bitbucket kann heute jeder Technologien nutzen, die früher aufwändig auf einem Server installiert und administriert werden mussten. DVCS werden längst nicht mehr nur in der Softwareentwicklung eingesetzt. Auch Bücher, Handbücher, Dokumentationen und andere Texte werden mittlerweile in einem Repository revisionssicher verwaltet. Git, Mercurial und andere DVCS sind so flexibel, dass sie die unterschiedlichsten Worksflows unterstützen.
Kollaboratives Arbeiten ist heute der Normalfall. Ob im Beruf oder in der Freizeit – überall arbeite ich mit anderen Leuten zusammen. Leider ist der Austausch von Word-Dokumenten per E-Mail auch heutzutage immer noch die Regel. Auch hier zeigt sich, dass Word ein Ende und kein Anfang ist. Die in Word hinein gefriemelte Änderungsverfolgung ist ein Karikatur. Und sie verhindert natürlich nicht, dass verschiedene Versionen des gleichen Texts in Umlauf sind.
Wir alle hätten heute weniger Probleme, wenn in Stellenanzeigen keine Office-, sondern DVCS-Kenntnisse gefordert würden. Doch davon sind wir leider weit entfernt. Während Wikis, Google Docs und Etherpads den Sprung in den Mainstream außerhalb der Entwicklerszene geschafft haben, bleiben Versionskontrollsysteme weiterhin die Domäne von Programmierern. Ich gebe zu, dass es keineswegs trivial ist, die Konzepte einer Versionskontrolle zu erlernen. Lesen, Schreiben und Rechnen zu lernen, ist auch nicht einfach. Aber es lohnt sich, denn man lernt dabei sehr viel über Methoden und Prozesse des Zusammenarbeitens.
Warum keine Programmiersprache?
Viele Leser werden sich vermutlich fragen, warum ich das Erlernen einer Programmiersprache nicht zu den grundlegenden Kulturtechniken des 21. Jahrhunderts zähle. Die Antwort ist einfach. Ohne die drei oben beschriebenen Kulturtechniken kommt man mit seinen Programmierkenntnissen nicht weit. Sie bilden vielmehr die Grundlage, um eine Programmiersprache sinnvoll einsetzen zu können. Wer Kindern also das Programmieren beibringen möchte, sollte sie vorher oder gleichzeitig in der Kommandozeile, dem Texteditor und der Versionskontrolle unterrichten. Von diesen drei Techniken werden sie auch dann profitieren, wenn sie keine Programmierer werden.
Ausblick
Was unser Bildungssystem angeht, so mache ich mir da keine falschen Hoffnungen mehr. Bildung muss heute leider immer häufiger gegen das System durchgesetzt werden, zum Beispiel durch engagierte Lehrer, Eltern und Schüler, die in AGs die Dinge unterrichten, die im Lehrplan nicht vorkommen. Uns bleiben im Grunde nur die Möglichkeiten, außerhalb des Bildungssystems etwas zu tun. Und da gibt es eine ganze Reihe. So kann man Live-CD-Systeme zusammenstellen, die sich zum Ziel setzen, Kinder und Jugendliche an die selbstbestimmte Nutzung des Computers heranzuführen. Das Internet selbst bietet die Chance, durch Online-Angebote mehr Menschen zu erreichen. Wichtig ist auch, dass die Entwicklergemeinschaft sich nicht abschließt und ihre Tools als Werkzeuge für Spezialisten ansieht. Das sind sie nicht. Häufig handelt es sich dabei um computergestützte Kulturtechniken, die universell genutzt werden können. Die Kommandozeile, der Texteditor und die Versionskontrolle kann jeder nutzen, ob er programmiert oder nicht. Die Entwicklergemeinschaft hat in den letzten Jahren Werkzeuge und Methoden entwickelt, die auch in anderen Zusammenhängen positive Wirkungen entfalten können. Agile programming und continuous integration sind Methoden, die man durchaus auf andere Bereiche übertragen könnte. Die Formulierung von Gesetzen erinnert mich doch sehr an die starre Definition eines Pflichtenhefts, durch das dann schließlich ein System entsteht, das den wirklichen Anforderungen der Nutzer kaum entspricht. Die Entwicklergemeinschaft hat effiziente Lösungen für komplexe Probleme gefunden. Sie kann diese Lösungen durchaus selbstbewusst in die Gesellschaft weitertragen. Und wir alle können von ihr lernen.
Literatur
Große Defizite im Schulfach Geschichte - Keine Ahnung von Demokratie - bildungsklick.de. 2012. Internet: http://bildungsklick.de/a/84363/grosse-defizite-im-schulfach-geschichte-keine-ahnung-von-demokratie/. Zuletzt geprüft am: 27.9.2014.
PyMove3D - Der Python Wettbewerb für Mädchen & Jungen 2014. 2014. Internet: http://pymove3d.pysv.org/. Zuletzt geprüft am: 27.9.2014.
Start Coding. 2014. Internet: http://jeder-kann-programmieren.de/. Zuletzt geprüft am: 27.9.2014.
Fußnoten
-
Start Coding. 2014. Internet: http://jeder-kann-programmieren.de/. Zuletzt geprüft am: 27.9.2014. ↩︎
-
PyMove3D - Der Python Wettbewerb für Mädchen & Jungen 2014. 2014. Internet: http://pymove3d.pysv.org/. Zuletzt geprüft am: 27.9.2014. ↩︎
-
Große Defizite im Schulfach Geschichte - Keine Ahnung von Demokratie - bildungsklick.de. 2012. Internet: http://bildungsklick.de/a/84363/grosse-defizite-im-schulfach-geschichte-keine-ahnung-von-demokratie/. Zuletzt geprüft am: 27.9.2014. ↩︎