Auf der OpenRheinRuhr bin ich mit Frank Lanitz und Wolfgang Romey zusammen gekommen um über verschiedene Aspekte der Nachhaltigkeit von IT und Software zu diskutieren. Frank hat uns zusammengebracht, weil im Eigenbaukombinat in Halle eine Informationsreihe zum Thema Upcycling geplant ist. In diesem Rahmen fragten wir uns ob es eigentlich ein upcycling von Software gibt? Was könnte man darunter verstehen?
Nehmen wir mal die laut Wikipedia erste Definition von upcycling zur Grundlage:
“‚Recycling‘, sagte er, ‚ich nenne es Down-cycling. Sie schlagen Steine kaputt, sie schlagen alles kaputt. Was wir brauchen, ist Up-cycling, bei dem alte Produkte einen höheren Wert erhalten, keinen geringeren.”
Es geht also darum ein gefertigtes Produkt in einer Weise zu verändern, dass es einen “höheren Wert” erhält, folglich geht es darum ein existierendes, in die Jahre gekommenes, Produkt nochmals aufzuwerten, zu verbessern.
Wir haben die These aufgestellt, dass ein “Forken” von Software ein Upcycling-Prozess ist. Oder zumindest unter Umständen zu einem upcycling Prozess werden kann. Als Forken bezeichnet man die Abspaltung einer Software-Community inklusive des Codes aus einem bestehenden Projekt heraus um daraus ein neues Projekt zu formen. Zum Beispiel ging Libre Office aus einer Abspaltung von Open Office hervor, das wiederum aus einer Abspaltung von Star Office hervorging. Möglich ist dieser Prozess grundsätzlich bei aller Software, deren Code frei lizensiert ist.
Um den Bogen zu obiger Definition zu schlagen, sind die genannten Abspaltungen jeweils Beispiele in denen ein bereits gefertigtes Produkt (für seine Aufgabe verwendbarer und ausführbarer Software code) genommen wurde und zu einem “höheren Wert” fortan verändert wurde (Weiterentwicklung des codes). Wobei der “höhere Wert” im Sinne einer Qualität sicher oft schwer zu bemessen ist beziehungsweise ein Punkt ist an dem sich so manche Geister scheiden. “Qualität” im klassischen Sinne soll deshalb an dieser Stelle keine Rolle spielen soll. Der “höhere Wert” der Abspaltungen wird stattdessen daran ermessen, dass es den Abspaltungen jeweils gelungen ist, eine größere Community aufzubauen als ihre “Mutter” und mit schnelleren Entwicklungszyklen das Projekt voranzutreiben.
Ich habe nun den Gedanken des upcyclens von Software etwas weiter gesponnen und bin dabei mit folgender Gedankenskizze zu möglichen Klassifizierungen von upcycling-Prozessen rausgekommen:
Im folgenden kurze Erläuterungen zu den jeweiligen Prozessen:
- Forken: Wie oben bereits ausgeführt, bezeichnet Forken in der Softwareentwicklung die Abspaltung eines Projektes in ein Folgeprojekt, bei dem die Quelltexte oder Teile davon fortan unabhängig vom ursprünglichen Mutterprojekt weiterentwickelt werden. Bekanntes Beispiel dafür ist die Abspaltung von Open Office zu Libre Office oder von Owncloud zu Nextcloud. Oft werden derartige Abspaltungen von einem oder mehreren Kern-Entwicklern des bestehenden Projektes vorangetrieben, die es vermögen dabei große Teile der Community an das neue Projekt mitzunehmen. Weshalb in solchen Beispielen die Fortentwicklung des Abkömmlings oft schneller und innovativer ist als das ihrer “Mutter” und sie damit auch schnell höhere Nutzerzahlen als ihre Mutter erreichen. Die Qualität außen vor gelassen, lassen allein die höheren Nutzerzahlen und schnellere Entwicklung des Abkömmlings über Zeit auf einen “höheren Wert” schließen.
Es soll vermerkt sein, dass eine Abspaltung nicht zwangsläufig zu einem “höhen Wert” führen muss. Aber es ist möglich das dies passiert, und in diesen Fällen kann man von einem upcycling von Software sprechen, weil ein altes Produkt einen höheren Wert bekommt. - “Befreiung” / “Open sourcing”: Mitte der Neunziger gab es einen sogenannten “Browser War”, den Netscape Navigator damals gegen Microsoft’s Internet Explorer verlor. Als das Ende absehbar war, entschied man sich bei Netscape den Code des Browsers zu veröffentlichen und damit eine Freie Software als Alternative zu Microsofts IE auf den Markt zu bringen. Daraus ging dann schließlich nach ein paar weiteren Zwischenschritten der heute weitbekannte Mozilla Firefox hervor.
Es ist quasi die Geschichte einer “Wiederbelebung” einer “sterbenden Software”. “Sterbend” in dem Sinne, dass die Nutzerzahlen bei Netscape derart eingebrochen waren, dass weitere Investitionen unwirtschaftlich erschienen und das Unternehmen beschloss die weitere Entwicklung einzustellen. Doch, um dem “Tod der Software” zu entgehen, wurde damals entschieden den Code zu veröffentlichen. Dieser wurde von anderen Entwicklern aufgegriffen und eine Community bildete sich die am Ende den Code gar neu geschrieben hat. Die sterbende Software hat durch die veröffentlichung des Codes unter einer freien Lizenz einen komplett neuen Lebenszyklus bekommen, es ist ein neues Produkt entstanden und dieses war am Ende schließlich besser als die Ursprungsmaterie. Man könnte im Sinne der Definition also auch bei einem erfolgreichen befreien / open-sourcing von einem upcycling-Prozess sprechen. - Verbreitung: id Software hat in den Neunziger Jahren das Shooter-Genre geprägt, beziehungsweise es unter anderem mit dem Titel “Doom” erst populär gemacht – heutzutage der “Klassiker” schlechthin. Außerdem hat id Software eine policy, dass sie 5 Jahre nach dem Erscheinen ihrer Spiele-Engines diese als Freie Software veröffentlichen. Damit ist auch Doom eines Tages unter einer freien Lizenz veröffentlicht worden (siehe vorherigen Punkt: Befreiung/Open sourcing) und es erfreut sich seitdem in einer gewissen Szene großer Beliebtheit Doom auf allen möglich oder unmöglichen Endgeräten zum Laufen zu bringen. Möglich wird dies durch die freie Verfügbarkeit des Codes und seines hohen Alters, weshalb er aus heutiger Perspektive nur sehr geringe Hardwareansprüche hat.
Ist das nun upcycling? Nein könnte man sagen, denn der eigentliche Code oder das Spiel wird ja nicht verbessert – es wird lediglich portiert auf andere Geräte. Aber, auch wenn der eigentliche Code keine Veränderung erfährt kann man einer Software durchaus unterstellen, dass sie einen “höheren Wert” hat, auf je mehr unterschiedlichen Geräten sie installiert und ausgeführt werden kann. Eine Software wird damit schlichtweg universaler Anwendbar und weniger Abhängig von der Hardware. Mit jedem weiteren Gerät, auf dem Doom lauffähig gemacht wird, erfährt nach dieser Vorstellung die ursprüngliche Software einen Stück weit ein upcycling, einen höheren Wert. Und, um nochmal die Analogie des sterbenden Codes zu bedienen: Sie erfährt zugleich eine Wiederbelebung, bzw ein Weiterleben. Denn die Computer, für welche Doom ursprünglich geschrieben wurde die gibt es heutzutage kaum noch. - Wiederbeleben: Wenn eine Software keine Entwickler mehr hat und der letzte Nutzer gegangen ist, dann ist sie quasi tot, ist sie doch schließlich nur noch ungenutzter Code. Davon gibt es übrigens bereits jede Menge. Man könnte sich aber vorstellen, in einer fernen Zukunft, da liegt dieser alte unbenutzte code auf einem alten Datenträger herum und wird dann auf neue oder gar andere Weise wiederverwendet. Quasi wieder gefunden und “wiederbelebt”. Vielleicht weil dieser alte Code etwas ganz besonderes kann in Verbindung mit einem neuen Gerät. Oder, um sich etwas des Science Fiction Genres zu bedienen, es könnte in dieser fernen Zukunft auch der Code sein, der als einziges noch nicht vom imperialen Computersystem unter dessen Herrschaft gezogen ist und der den Rebellen als Grundbasis für ihre neue Welt dient … oder so ähnlich : )
Um das Argument etwas greifbarer zu machen muss man auch gar nicht so weit in die Zukunft schauen. Eine derartige “Wiederbelebung” ist heutzutage auch schon denkbar. Und im Sinne unserer Definition wäre eine “Wiederbelebung” von altem Code zu neuen Aufgaben sicher ein “höherer Wert” und damit ein upcycling-Prozess. - Virtualisierung: ScummVM ist ein Beispiel für eine Software, die es durch einen Interpreter ermöglicht, viele ältere Computer- und Konsolen-Spiele auf wesentlich moderneren oder auch ganz anderen Plattformen zum Laufen zu bringen. Dabei handelt es sich insbesondere um Hardware-Umgebungen, deren ursprüngliche Entwickler weder vorhersehen noch bei der Programmierung berücksichtigen konnten. Anders als bei dem Beispiel von Doom (siehe Punkt: Verbreitung) werden diese neue Umgebungen allerdings nicht möglich, weil die Spiele selbst Freie Software wären. Lediglich die ScummVM selbst ist Freie Software und ermöglicht es anderer Software sich weiter zu verbreiten, indem alte Software auf neuen Hardware-Umgebungen zum Laufen gebracht wird. Wie in dem Punkt “Verbreitung” weiter oben ausgeführt, kann argumentiert werden, dass der Wert eine Software mit jeder Hardware steigt, auf der sie ausgeführt werden kann. ScummVM betreibt damit ein upcycling für alte Software, es ist quasi ein “upcycler”.
Als nächsten Schritt würde ich gerne die gerade ausgeführten Gedanken zum “upcycling von Software” diskutieren und freue mich über mehr Input dazu. Wenn ihr also weitere Gedanken dazu habt, tretet bitte in Kontakt mit mir.
Und wenn man von hier aus noch einen Schritt weiter gehen möchte, dann könnte man sich wohl als nächstes Überlegen, was für Bedingungen die oben beschriebenen Prozesse begünstigen oder gar deren Voraussetzung sind. Wobei schon sehr offenkundig ist, dass die freie Verfügbarkeit des Source Codes eine bedeutende Rolle spielt.