Warum müssen Open-Source-Programmierer ständig das Rad neu erfinden?

Vergebliche Liebesmüh

Braucht die Menschheit wirklich 315 Linux-Distributionen? Die ewige Neuerfindung des Gleichen wird gerne als Vorzug der Open-Source-Welt gepriesen. Tatsächlich führt sie aber nur zu einem Wildwuchs unausgegorener Software.

Als im letzten ADMIN-Heft mein Kollege Brendel die Vielfalt an Open-Source-Software lobte, war ich, vorsichtig gesagt, etwas überrascht. Denn der Schwerpunkt dieses Heftes zeigt, wohin das führt: Mehr als ein Dutzend Ableger des Monitoring-Paketes Nagios gibt es mittlerweile, da drängt sich doch schnell die Frage auf, wem dieses Chaos nützen soll.

Heute existieren über 300 Linux-Distributionen mit mindestens vier verschiedenen Paketmanagement-Systemen [1]. Neuerdings fangen die Linux-Entwickler an, verschiedene Init-Systeme wie System-V, Upstart, Systemd und so weiter zu verwenden. Jetzt muss sogar ein neues Logging-Subsystem her, meint Lennart Poettering, der sich schon durch die Neuerfindung von Linux-Audio per Pulseaudio einen Namen gemacht hat.

Natürlich haben Hersteller und Systemhäuser Interesse daran, Geld zu verdienen. Da mag es naheliegen, sich ein freies Software-Paket zu nehmen, es ein bisschen anzupassen und dann mit dem eigenen Stempel zu versehen. Doch auch sonst scheint die Neigung weit verbreitet zu sein, einen Fork oder gleich ein komplett neues Projekt zu starten. Prinzipiell gibt es dagegen wenig zu sagen, schließlich leben wir in einem freien Land, und jeder kann mit seiner Zeit anfangen, was er will. Wer beispielsweise anfängt, das Programmieren zu lernen, findet nur schwer ein Anwendungsfeld, das noch gänzlich unberührt ist. Außerdem ist es für Anfänger fruchtbar, ein Projekt von Grund auf zu entwickeln – auch wenn es Vergleichbares schon gibt.

Not Invented Here

Jenseits solcher Fälle neigen aber auch gestandene Programmierer bei freien und kommerziellen Linux-Distributionen dazu, Dinge zu programmieren, die es eigentlich schon gibt. Oft drängt sich der Eindruck auf, der Grund dafür sei einfach, dass das Bestehende von jemand gemacht wurde, der nicht zum eigenen Team gehört. Im englischsprachigen Raum ist das als "Not Invented Here" (NIH) bekannt: Wenn es nicht von uns ist, muss es schlecht sein, also neu gemacht werden. Dabei läge der Sinn von freier Software doch eher darin, gemeinsam an einem Projekt zu arbeiten, Fehler zu finden, zu beheben und es damit Stück für Stück ein bisschen besser zu machen. Vorbilder dafür finden sich im Bestand der GNU-Software, etwa der GNU-Compiler, der Editor Emacs und der zahllosen Bibliotheken und kleinen Tools, die teilweise mehr als 20 Jahre alt und entsprechend ausgereift sind.

Heute hat sich die Situation umgekehrt: Kleinste Unstimmigkeiten führen sofort zur Neugründung eines Projektes, wie man es etwa bei Google beobachten kann, das sich das Motto "Don't be evil" auf die Fahnen geschrieben hat. Existierende Open-Source-Webbrowser wie Firefox waren nicht gut genug, also musste das eigene Chrome her. Betriebssysteme für Mobiltelefone gab es ebenfalls schon als freie Software, sogar auf Linux basierend, doch Google wollte lieber Android neu erfinden, einschließlich einer neuen Runtime-Umgebung, die aber Java doch so ähnlich ist, dass Google nun darüber mit Oracle im Patentstreit liegt.

Neuerfinder Google

Seit Neuestem stößt sich Google auch an Javascript, das mittlerweile auf eine mehr als 10-jährige Geschichte mit entsprechend ausgereiften Tools, Standardisierung durch die ECMA und Know-how von Entwicklern zurückblicken kann. Jetzt soll es die Neuerfindung "Dart" richten, denn schließlich leistet man sich mit Milliardenbudget nicht umsonst Sprachentwickler wie Gilad Bracha. Dass Dart [2] sich wieder nur minimal von anderen Programmiersprachen unterscheidet, muss nicht stören. Vermutlich lassen sich die anstehenden Probleme eines Web 3.0 nur damit lösen. Die ebenfalls schon bei Google von Rob Pike und Ken Thompson entwickelte Programmiersprache Go fristet derweil ein Nischendasein.

Vom Ubuntu-Hersteller Canonical erreicht uns die Nachricht, man verabschiede sich demnächst von der NoSQL-Datenbank CouchDB, weil diese nicht wie gewünscht skaliere. Man rechne für den eigenen Subskriptionsdienst Ubuntu One mit einem Wachstum bis zu Millionen Benutzern, und das könne CouchDB nicht stemmen. Die Lösung für das Problem sieht Canonical aber nicht etwa darin, eine der mehr als 20 existierenden NoSQL-Datenbanken auf dem Markt oder eine gute alte SQL-Datenbank mit Sharding (verteilt über viele Rechner) zu verwenden. Damit kommen zwar Top-Ten-Websites wie Twitter und Facebook zurecht, bei Canonical soll es aber lieber eine Eigenentwicklung mit dem Arbeitstitel U1DB richten.

Ähnliche Artikel

comments powered by Disqus