Fork (Softwareentwicklung)
aus Wikipedia, der freien Enzyklopädie
Ein Fork (von engl. fork = Gabel) bezeichnet in der Softwareentwicklung die Aufspaltung eines Projektes in zwei oder mehr Folgeprojekte, wobei Teile des Quellcodes kopiert werden und dann unabhängig von dem ursprünglichen Projekt weiterentwickelt werden. Gründe für einen Fork können verschiedene Ziele für das Projekt, Uneinigkeiten in der technischen Ausführung oder persönliche Unstimmigkeiten zwischen den Entwicklern sein.
Zum Zeitpunkt eines Forks erhalten beide Gruppierungen die gleichen intellektuellen Rechte. Typischerweise erhält jedoch nur die größere Gruppe oder die, in der der ursprüngliche Chefentwickler verbleibt, den Originalnamen des Projektes und das damit verbundene soziale Kapital.
In der Regel führt ein Fork zu zwei verschiedenen, untereinander inkompatiblen Produkten. Manchmal werden die beiden Projekte später wieder zusammengeführt, manchmal werden gute Ideen ausgetauscht, manchmal besteht nach dem Fork keine Verbindung mehr zwischen den Projekten. Ein Fork kann sein Ursprungsprojekt überdauern und an Popularität übersteigen.
Forks finden überwiegend in freien Software-Projekten statt, da bei diesen jeder das Recht zur Weiterentwicklung und Veränderung besitzt. Manche betrachten die Aufteilung in mehrere Projekte als Schwäche der freien Software, da die einen Fork üblicherweise begleitenden Diskussionen viel menschliche Arbeitszeit und Nerven kosten, die somit nicht mehr dem eigentlichen Projekt gewidmet werden können. Es kann auch bei Closed-Source-Projekten zu Forks kommen, wenn mehrere Firmen zusammenarbeiten und sich die Rechte an dem Produkt teilen.
Die Entstehung von Forks wird immer dann begünstigt, wenn grundlegende Entwicklungsschritte in der Hardware-Innovation zum Stillstand gekommen sind. Besonders ist dies im Zusammenhang mit den Stammbäumen der führenden Grafikchiphersteller zu beobachten. Gerade in der jüngsten Zeit ist durch den über drei Jahre währenden Stillstand bei Microsofts DirectX 9.x ein Innovationsstau zu verzeichnen. Da die Grafikprozessoren gleichermaßen nichts wirklich Neues, jedoch bessere und schneller Berechnung althergebrachter Effekte aufbieten, scheint es für die marktführenden Spieleentwickler wiederum lukrativ, Forks einzugehen, auch wenn dies zu Ungunsten der Diversifizierung des Engine-Marktes geht, damit also auch zur Konkurrenz unter den Engines. Dies ist nicht unbedingt schlimm: Hervorragende Engines werden weiterentwickelt, es wird verhindert, dass Spieleschmieden Millionen in den Sand setzen um eine Engine zu kreieren, die letztendlich keine Käufer findet und macht den Markt durch die Patentverflechtungen unpraktisch komplex, aber sehr stabil. Spätestens der nächste Durchbruch im Hardwaredesign oder Schnittstellen-Bereich mischt die Karten des Marktes neu.
[Bearbeiten] Beispiele für Projekte, die aus Aufspaltungen entstanden sind
- Der Editor XEmacs, entstanden aus Emacs.
- Weblink (englisch): Gegenüberstellung von XEmacs und Emacs, aus Sicht der XEmacs-Entwickler
- Der Compiler EGCS entstand aus GCC.
- Weblink (englisch): Ankündigung des „EGCS Project“
- Der Internetbrowser Mozilla hat viele Tochterprojekte, einige davon sind Mozilla Firefox und Galeon, der wiederum aufgeteilt wurde: Epiphany.
- Weblink (englisch): Die Geschichte von Galeon, inklusive des Epiphany-Zweiges
- Der Multimediaplayer MPlayerXP ist aus MPlayer hervorgegangen.
- Das NTFS-Dateisystem basiert auf HPFS, dem Dateisystem von OS/2.
- Die Filesharing-Software aMule (eDonkey-Netzwerk) ging aus xMule hervor.
- Die Peer-to-Peer-Software FrostWire ging aus LimeWire hervor.
- Das BSD-Derivat OpenBSD ging aus NetBSD hervor und legt höheren Wert auf Sicherheit als das Mutterprojekt.
- X.Org ging aus XFree86 hervor, dessen Entwickler mit Version 4.4 eine andere Lizenz durchsetzen wollten.
- Der Composite Window Manager Beryl ist nach unstimmigkeiten in den eigenen Reihen aus Compiz entstanden.
[Bearbeiten] Übertragung des Begriffs
Manchmal wird der Begriff auch auf Open-Content-Projekte übertragen. Prominentes Beispiel ist dafür der Ableger von Wikipedia, Wikinfo.