Die Geschichte der Computertechnik ist eine Geschichte der Konflikte zwischen Purismus und Pragmatismus. Dieser jahrhundertealte philosophische Konflikt über den Einsatz von beziehungsweise den Umgang mit Technologie wird im Softwarebereich wegen ihrer geradezu platonischen Unbeschreiblichkeit besonders deutlich. Worin die Unterschiede bestehen, kann durch eine Analogie zu Geschirr verdeutlicht werden.
Puristische Ansätze setzen auf verlockende Visionen. Sie sind genau wie kostbares „gutes“ Porzellangeschirr – es ist vor allem da, um betrachtet zu werden, und wird nur zu besonderen Anlässen wie Galadiners herausgeholt. Der Schaden, der durch einen achtlosen Umgang entsteht, kann den Wert eines Stücks extrem reduzieren. Zerbrochene oder verlorengegangene Stücke müssen ersetzt werden, damit die Kollektion ihren Wert behält. „Mix and Match“, das erneute Zusammenstellen oder der Austausch einzelner Stücke durch bescheideneres Alltagsgeschirr oder durch Porzellangeschirr mit einem anderen Muster ist für Puristen geradezu ein Sakrileg.
Der pragmatische Ansatz hingegen ähnelt der ungeregelten und häufigen Nutzung von robustem Alltagsgeschirr. Eventuelle Schäden durch ein unvorsichtiges Herumspielen haben keine grosse Auswirkung auf den Wert. Selbst zerbrochene Stücke können sich noch als nützlich erweisen und fehlende Stücke müssen nicht unbedingt ersetzt werden, sofern sie nicht wirklich gebraucht werden. Für Pragmatiker ist es nicht etwa ein Sakrileg, verfügbare Ressourcen auszutauschen, sondern etwas, das angeregt und gefördert werden sollte, besonders bei Kooperationen wie einem gemeinsamen Essen in der Nachbarschaft.
Im Bereich der Software lässt sich der Unterschied zwischen beiden Ansätzen gut anhand der Geschichte des Webbrowsers beschreiben.
Am 23. Januar 1993 versendete Marc Andreessen eine kurze E-Mail zur Ankündigung der Veröffentlichung von Mosaic, dem ersten grafischen Webbrowser:
07:21:17-0800 by marca@ncsa.uiuc.edu:
By the power vested in me by nobody in particular, alpha/beta version 0.5 of NCSA’s Motif-based networked information systems and World Wide Web browser, X Mosaic, is hereby released:
file://ftp.ncsa.uiuc.edu/Web/xmosaic/xmosaic-0.5.tar.Z
Gemeinsam mit Eric Bina hatte er in kurzer Zeit einen Prototypen entworfen, nachdem ihn sein erster Blick auf das World Wide Web begeistert hatte, das 1991 von Tim Berners-Lee von CERN in Genf der Öffentlichkeit zur Verfügung gestellt wurde. Die Mosaic-Veröffentlichung geschah einfach so, ohne Auftrag, Genehmigung, Autorisierung – eben „by the power vested in me by nobody in particular“. Im Laufe des nächsten Jahres schlossen sich mehrere andere Kollegen dem Projekt an, die ebenfalls vom Gedanken an die Möglichkeiten des Webs gepackt wurden. Sie alle warteten ungeduldig darauf, ihre Begeisterung mit anderen teilen und die Zukunft des Webs für andere öffnen zu können, insbesondere für Nichttechnologen.
Innerhalb der nächsten Jahre durchbrach der grafische Browser die Grenzen des staatlich geförderten Labors (das National Center for Supercomputing Applications der University of Illinois), in dem er entstanden war. Er reifte bei Netscape und später bei Microsoft, Mozilla und Google heran und lenkte das Web in unerwartete (und für manche unerwünschte) Richtungen. Diese rasante Entwicklung führte sowohl zu den legendären Browserkriegen als auch zu leidenschaftlichen Debatten über die Zukunft des Internets. Diese Konflikte der späten neunziger Jahre prägten das Internet von heute.
Einige visionäre Pioniere wie Ted Nelson, der seit Jahrzehnten ein puristisches Hypertext-Paradigma namens Xanadu entwickelt hatte, betrachteten den Browser als eine unerwünscht chaotische Entwicklungsrichtung des Internets. Für Pragmatiker repräsentierte der Browser eine wichtige Software, die sich genauso entwickelte, wie sie es sollte: auf eine pluralistische Art und Weise, die zahlreiche widerstreitende Ideen umfasste und dem entsprach, was die Internet Engineering Task Force (IETF) als „rough consensus and running code“ bezeichnete – bei ungefährer Klarheit über die Richtung einfach die Entwicklung laufen lassen.
Während jedes grosse Softwareprojekt sowohl von Puristen als auch von Pragmatikern inspiriert wurde, entstammte der Browser – genau wie andere Software, die zu den Grundpfeilern des Internets gehört – hauptsächlich dem Werk und den Ideen von Pragmatikern: Pioniere wie Jon Postel, David Clark, Bob Kahn und Vint Cerf, von denen die frühe Entwicklung des Internets durch hoch inklusive Institutionen wie der IETF massgeblich geprägt wurde.
Das pragmatische Hacking, das damals noch die Methode einer Minderheit darstellte, ist heute zum Prinzip der agilen Entwicklung herangereift, dem vorherrschenden Konzept der modernen Softwareentwicklung. Die Bedeutung dieses kleinen Stücks Geschichte geht jedoch über das Internet hinaus. Die pragmatische, agile Entwicklungsstrategie griff nicht nur auf andere Bereiche der Technik über, sondern auch auf Wirtschaft und Politik.
Das Wesen der Software beginnt, auch weit über die Software hinaus bedeutsam zu werden. Agile Philosophien verzehren die unterschiedlichsten Entwicklungsphilosophien. Unabhängig davon, ob man ein Technologe ist oder nicht, muss man die Agilität und ihre Wurzeln im Konflikt zwischen pragmatischen und puristischen Methoden der Informatik verstehen, um das Wesen der Welt von heute zu begreifen.
Bis in die frühen 1990er Jahre begann fast jede wichtige Software ihre Existenz eher als puristische architektonische Vision denn als pragmatische, konkrete Tüftelei. Der Grund hierfür liegt darin, dass es sich bei der frühen Programmierung mit Lochkarten-Grossrechnern um einen stark eingeschränkten Prozess handelte. Die iterative Verbesserung ging nur langsam voran und war sehr kostspielig. Agilität war nichts als ein ferner Traum: Oft mussten Programmierer zwischen Durchläufen mehrere Wochen warten. Wenn ein Programm beim ersten Mal nicht funktionierte, gab es unter Umständen keine zweite Chance. Auf Papier ausgearbeitete puristische Architekturen dienten dazu, unter diesen Umständen Risiken zu minimieren und die Ergebnisse zu optimieren.
Als Folge wurde die frühe Programmierung von kreativen Architekten angeführt (häufig Mathematiker und üblicherweise männlich, abgesehen von seltenen Ausnahmen wie Klari von Neumann und Grace Hopper), die die Strukturen komplexer Programme so vollständig wie möglich im Vorhinein ausarbeiteten. Die eigentliche Programmierung auf Lochkarten wurde von grossen Teams an Programmierern vorgenommen (hauptsächlich von Frauen1), die über deutlich weniger Autonomie verfügten und dafür verantwortlich waren, Details zur Implementierung auszuarbeiten.
Kurz gesagt gaben puristische Architekturen den Weg vor und pragmatisch-praktisches Hacking war praktisch unmöglich. Versuch-und-Irrtum-Verfahren waren schlicht zu riskant und zu langsam, was bedeutete, dass nennenswerte praktische Kreativität zugunsten der Produktivität aufgegeben werden musste.
Mit der Entwicklung kleinerer Computer, die interaktive Eingaben ermöglichten, wurde Hacking möglich. In frühen Hackerzentren wie dem MIT in den sechziger Jahren begann sich eine von hoher Autonomie geprägte Programmier-Kultur herauszubilden. Auch wenn dieses Umdenken erst nach dem Jahr 2000 weithin anerkannt werden sollte, wandelte sich der kreative Teil der Programmierung vom visionären Konstruieren hin zum praktischen Coding. Schon in den 1970er Jahren entstand wichtige und hochwertige Software wie das Unix-Betriebssystem aus der Hackerkultur, die den Minicomputern am Rande der industriellen Programmierung entwuchs.
Während der siebziger Jahre hielt sich ein (instabiles) Machtgleichgewicht zwischen puristischen Architekten und pragmatischen Hackern. Mit Einführung des vernetzten Personal Computing in den achtziger Jahren hingegen wurde das praxisorientierte Hacking zur bestimmenden Programmierungs-Methode. Die Kultur früher Hackerzentren wie MIT und Bell Labs breitete sich allmählich in der ganzen Welt des Programmierens aus. Der Archetyp des Programmierers war geboren: Vom austauschbaren Mitglied eines grossen Teams wurde er zum einzigartig kreativen Hacker, der am PC herumtüftelt und sich über Netzwerke mit seinesgleichen austauscht. Anstatt pflichtschuldig einem Architekten zu gehorchen, widmen die besten Programmierer einen wachsenden Anteil ihrer kreativen Energie der Lösung von Problemen, die aus persönlichen Bedürfnissen entstehen.
Als 1986 die IETF gegründet wurde, verschob sich das Gleichgewicht entschieden zugunsten der Pragmatiker. Im Januar jenes Jahres traf sich eine Gruppe von 21 Forschern in San Diego und legte den Grundstein dessen, was zur modernen „Regierung“ des Internets werden sollte.
Trotz ihres täuschend nach Bürokratie klingenden Namens hat die IETF wenig mit anderen Normungsorganisationen der Geschichte gemeinsam, beginnend mit der Tatsache, dass sie keine Bedingungen für die Mitgliedschaft stellt und allen Interessierten offen steht. Ihre Kernphilosophie wird in einem Dokument dargelegt, das ausserhalb der Welt der Technik kaum bekannt ist: The Tao of the IETF. Dieses Dokument kombiniert die Ungezwungenheit und das Selbstbewusstsein eines guten Blogs mit dem Pathos einer Unabhängigkeitserklärung und der aphoristischen Weisheit von Zen-Kōans. Der folgende häufig zitierte Abschnitt illustriert seinen grundlegenden Geist:
Die IETF baut in vielfältiger Weise auf der Überzeugung ihrer Teilnehmer auf. Eine der grundsätzlichen Überzeugungen wird durch ein Zitat über die IETF von David Clark versinnbildlicht: „Wir lehnen Könige, Präsidenten und Wahlen ab. Wir glauben an die grobe Übereinstimmung und das Ausführen von Code.“ Ein weiteres Zitat, das zum allgemeinen Glauben an die IETF wurde, stammt von Jon Postel: „Seien Sie konservativ beim Senden und liberal beim Annehmen.“
Auch wenn die IETF zu Anfang eine Zusammenkunft staatlich geförderter Forscher war, repräsentierte sie gleichzeitig eine bedeutende Verlagerung des Schwerpunkts der Programmierung – weg von staatlichen Laboren, hin zu den Welten von Kommerz und Open Source. In den beinahe drei Jahrzehnten, die seitdem vergangen sind, wurde sie zum bedeutendsten Vertreter 2 des inklusiven, pluralistischen und egalitären Geistes des Internets. Die IETF prägte auf unsichtbare Weise die breiteren ökonomischen und politischen Dimensionen der Software, die die Welt verzehrt.
Der Unterschied zwischen puristischen und pragmatischen Ansätzen wird deutlich, wenn wir die Entwicklung der Programmierung in den USA und Japan seit den frühen achtziger Jahren vergleichen. Um 1982 entschied sich Japan, den puristischen anstelle des pragmatischen Weges einzuschlagen, indem das Projekt zur Entwicklung der fünften Computergeneration („Fifth Generation Computer Systems“) in Angriff genommen wurde. Das hochgradig korporatistische staatlich gesteuerte Programm, das in Amerika viel Nervosität verursachte, erwies sich weitgehend als Sackgasse. Der amerikanische Ansatz hingegen entwuchs seinen staatlich geförderten Wurzeln und ermöglichte die Geburt des modernen Internets. Japans zeitgenössische Beiträge im Softwarebereich, beispielsweise die sehr beliebte Programmiersprache Ruby von Yukihiro Matsumoto, sind ein direkter Bestandteil der pragmatischen Hackertradition.
Ich werde darlegen, weshalb dieses Entwicklungsmuster nicht auf die Computerwissenschaften beschränkt ist. Jeder Bereich, der von Software verzehrt wird, erfährt einen Übergang des kreativen Teils vom visionären Denken hin zu praktischen Aktivitäten und einen disruptiven Wandel in der Sozialstruktur aller Berufsbilder. Klassische Ingenieursdisziplinen wie Maschinenbau, Bauwesen und Elektrotechnik haben sich bereits in den neunziger Jahren grösstenteils dem praktisch-pragmatischen Hacking ergeben. Nicht-technische Bereiche wie das Marketing stehen am Beginn dieses Wandels.
Die Bedeutung des Sieges der pragmatischen Methoden über den Purismus kann somit nicht genug betont werden: Er ist in der Welt der Technologie vergleichbar mit dem Fall der Berliner Mauer.
[1] Diese Unterschiede zwischen Architekten mit hoher Autonomie und Programmierern auf niedriger Ebene in den Anfangsjahren der Programmierung werden in populären Darstellungen der Rolle der Frauen in der frühen Informatik häufig schöngefärbt. Solche beliebten Wohlfühl-Erzählungen lassen die Arbeit auf hoher Ebene von Frauen wie Klari von Neumann und Grace Hopper (Letztere ist in gewisser Hinsicht die „Zombie-Marie Curie“ der Informatik, deren totemistische Prominenz die Taten anderer zukunftsweisender Frauen teilweise ins Vergessen geraten lässt) mit den Routinetätigkeiten der breiten Masse weiblicher Programmierer verschmelzen. Hierdurch gelingt es den populären Erzählungen, den kreativen Beitrag der Frauen in den frühen Jahren zu überhöhen und dadurch paradoxerweise die tatsächliche Frauenfeindlichkeit der 1940er und 50er Jahre herunterzuspielen. Auf diese Weise entsteht ein irreführendes Bild des Niedergangs nach einem imaginären goldenen Zeitalter der Frau in der Informatik. Eine geeignetere Kennziffer für die Geschichte von Frauen in der Informatik wäre die Häufigkeit ihrer Mitwirkung im Bereich des interaktiven Computings, beginnend mit der Hackerkultur der frühen sechziger Jahre, die sich beispielsweise bei MIT im Umgang mit den ersten interaktiven Minicomputern wie dem PDP-1 entwickelte. Angesichts dieser Grundwerte gehe ich davon aus, dass die Mitwirkung von Frauen in der kreativen und praktischen Programmierung seit dem anfänglichen frauenfeindlichen Tiefpunkt stetig gestiegen ist und vermutlich deutlich höher ausfällt als in anderen technischen Bereichen. Allerdings verfüge ich nicht über die erforderlichen Daten, um diese Behauptung zu belegen.
[2] Dieser Aufschwung bezüglich institutioneller Macht und philosophischem Einfluss rief natürlich Kritik hervor. Die häufigste Kritik kommt vonseiten der Puristen und war zu erwarten: Sie besteht in der Behauptung, die Philosophie des IETF ermutige zu Inkrementalismus und kurzsichtigem Denken. Diese Art der Kritik wird in den Essays kurz angesprochen, doch es handelt sich hierbei nicht um eine Meinungsverschiedenheit innerhalb der pragmatischen Philosophie, sondern um eine grundlegende philosophische Spaltung, die am besten mit der Kluft zwischen Rechts und Links im Bereich der Politik vergleichbar ist. Auch innerhalb des pragmatischen Lagers gab es umsetzbare Kritik. So wurde beispielsweise das zuvor zitierte Stabilitätsprinzip von Postel („Seien Sie konservativ beim Senden und liberal beim Annehmen“) von Joel Spolsky kritisiert, da es Chaos in Standardisierungsbemühungen verursache und zu viele „softe Fehlschläge“ („soft failure“) ermögliche. Diese spezielle Kritik wurde vom IETF in dem alternativen Entwicklungsprinzip „fail hard and fast“ berücksichtigt.