Gabel (Softwareentwicklung)

In der Softwaretechnik geschieht eine Projektgabel, wenn Entwickler eine Kopie des Quellcodes von einem Softwarepaket nehmen und unabhängige Entwicklung darauf anfangen, ein verschiedenes Stück der Software schaffend. Der Begriff bezieht häufig nicht bloß einen Entwicklungszweig, aber einen Spalt in der Entwickler-Gemeinschaft, einer Form des Schismas ein.

Freie und offene Quellsoftware ist das, das definitionsgemäß von der ursprünglichen Entwicklungsmannschaft ohne vorherige Erlaubnis gegabelt werden kann, ohne jedes Urheberrechtsgesetz zu verletzen. Jedoch, lizenzierte Gabeln der Eigentumssoftware (z.B. Unix) auch geschehen.

Etymologie

Der Begriff "Gabel" wurde zuerst im Sinne "des Zweigs" von Eric Allman 1980 gebraucht, um sich formende Zweige in SCCS zu beschreiben:

:Creating ein Zweig "Gabeln von" einer Version des Programms.

Der Begriff war im Gebrauch auf Usenet vor 1983 für den Prozess, eine Untergruppe zu schaffen, um Themen der Diskussion dazu zu bewegen.

Wie man

bekannt, ist "Gabel" im Sinne eines Gemeinschaftsschismas während der Ursprünge von Klarem Emacs (jetzt XEmacs) (1991) oder der BSDs (1993-1994) nicht verwendet worden; Russ Nelson hat den Begriff "Zerschmettern" für diese Sorte der Gabel 1993 gebraucht, es John Gilmore zuschreibend. Jedoch war "Gabel" im Gebrauch im gegenwärtigen Sinn vor 1995, um den XEmacs-Spalt zu beschreiben, und war ein verstandener Gebrauch im GNU-Projekt vor 1996.

Freie und offene Quellsoftware gabelnd

Freie und offene Quellsoftware kann ohne die Billigung von denjenigen gesetzlich gegabelt werden, die zurzeit ein Softwareprojekt oder das Verteilen der Software pro Definitionen "der kostenlosen Software" führen:

  • "Freiheit 3: Die Freiheit, das Programm zu verbessern, und Ihre Verbesserungen zum Publikum, so dass die ganzen Gemeinschaftsvorteile" und der zu veröffentlichen
  • "Offene Quelle" — "3. Abgeleitete Arbeiten: Der Neuverteilung von Modifizierungen muss erlaubt werden, um das gesetzliche Teilen zu erlauben und neue Eigenschaften oder Reparaturen zu erlauben".

In der kostenlosen Software ergeben sich Gabeln häufig aus einem Schisma über verschiedene Absichten oder Persönlichkeitszusammenstöße. In einer Gabel nehmen beide Parteien fast identische Codebasen an, aber normalerweise nur die größere Gruppe, oder wer auch immer die Website kontrolliert, wird den vollen eigentlichen Namen und die verbundene Benutzergemeinschaft behalten. So gibt es eine mit dem Gabeln vereinigte Ruf-Strafe. Die Beziehung zwischen den verschiedenen Mannschaften kann herzlich oder sehr bitter sein.

Eric S. Raymond, in seinem Aufsatz Homesteading Noosphere, hat festgestellt, dass "Die wichtigste Eigenschaft einer Gabel ist, dass es konkurrierende Projekte erzeugt, die Code nicht später austauschen können, die potenzielle Entwickler-Gemeinschaft spaltend". Er bemerkt in der Jargon-Datei:

:Forking wird als ein Schlechtes Ding — nicht bloß betrachtet, weil er viel vergeudete Anstrengung in der Zukunft einbezieht, aber weil Gabeln dazu neigen, durch sehr viel Streit und Schärfe zwischen den Nachfolger-Gruppen über Probleme der Gesetzmäßigkeit, Folge und Designrichtung begleitet zu werden. Es gibt ernsten sozialen Druck gegen das Gabeln. Infolgedessen sind Hauptgabeln (wie der Gnu-Emacs/XEmacs spaltet sich, der fissioning 386BSD Gruppe in drei Tochter-Projekte und der kurzlebige GCC/EGCS-Spalt auf), selten genug, dass sie individuell in der Hacker-Volkskunde nicht vergessen werden.

David A. Wheeler bemerkt vier mögliche Ergebnisse einer Gabel mit Beispielen:

  1. Der Tod der Gabel. Das ist bei weitem der allgemeinste Fall. Es ist leicht, eine Gabel, aber beträchtliche Anstrengung zu erklären, unabhängige Entwicklung und Unterstützung fortzusetzen.
  2. Ein Wiedermischen der Gabel (z.B, egcs das Werden "selig" als die neue Version von gcc).
  3. Der Tod des Originals (z.B X.Org das Server-Folgen und XFree86-Sterben).
  4. Das erfolgreiche Ausbreiten, normalerweise mit der Unterscheidung (z.B, OpenBSD und NetBSD).

Mehr kürzlich hat verteilte Revisionskontrolle (DVCS) Werkzeuge einen weniger gefühlsbetonten Gebrauch des Begriffes "Gabel" verbreitet, die Unterscheidung mit "dem Zweig" verschmierend. Mit einem DVCS solcher als Quecksilberig oder Schwachkopf ist die normale Weise, zu einem Projekt beizutragen, zum ersten Zweig das Behältnis, und bemühen Sie sich später, Ihre Änderungen mit dem Hauptbehältnis integrieren zu lassen. Seiten wie Github, Bitbucket und Launchpad stellen freien DVCS zur Verfügung, der ausdrücklich das Unterstützen unabhängiger Zweige, solch veranstaltet, dass die technischen, sozialen und finanziellen Barrieren für das Gabeln eines Quellcodebehältnisses massiv reduziert werden.

Gabeln fangen häufig Version wiederan, die von 0.1 oder 1.0 numeriert, selbst wenn die ursprüngliche Software an der Version 3.0, 4.0, oder 5.0 war. Eine Ausnahme ist, wenn die gabelförmige Software entworfen wird, um ein Störsignal-Ersatz des ursprünglichen Projektes zu sein, in welchem Fall, zum Beispiel, gabelförmige Version 5.2 mit der Version 5.2 der ursprünglichen Software vereinbar ist (wie es im Fall von MariaDB und MySQL bezüglich 2011 geschieht).

Das Gabeln der Eigentumssoftware

In der Eigentumssoftware wird das Copyright gewöhnlich durch die Beschäftigungsentität gehalten, nicht von den individuellen Softwareentwicklern. Eigentumscode wird so allgemeiner gegabelt, wenn der Eigentümer zwei oder mehr Versionen, wie eine mit Fenster versehene Version und eine Befehl-Linienversion oder Versionen für das Unterscheiden Betriebssysteme, wie ein Textverarbeitungsprogramm für IBM PC vereinbare Maschinen und Computer von Macintosh entwickeln muss. Allgemein werden sich solche inneren Gabeln darauf konzentrieren, denselben Blick, Gefühl, Datenformat und Verhalten zwischen Plattformen zu haben, so dass ein mit man vertrauter Benutzer auch produktiv sein oder auf dem anderen erzeugte Dokumente teilen kann. Das ist fast immer eine Wirtschaftsentscheidung, einen größeren Marktanteil zu erzeugen und so die verbundenen durch die Gabel geschaffenen Extraentwicklungskosten zurückzuerstatten.

Eine bemerkenswerte Eigentumsgabel nicht dieser Art ist die vielen Varianten von Eigentumsunix - fast alle abgeleitet AT&T Unix, und alle haben "Unix", aber zunehmend gegenseitig unvereinbarer genannt. Sieh UNIX Kriege.

Die BSD-Lizenzerlaubnis-Gabeln, um Eigentumssoftware zu werden, und sagen einige, dass kommerzielle Anreize so proprietisation fast unvermeidlich machen. Beispiele schließen Mac OS X (gestützt auf Eigentumsnextstep und der offenen Quelle FreeBSD), Cedega und CrossOver ein (Eigentumsgabeln von Wein, obwohl CrossOver Wein verfolgt und beträchtlich beiträgt),

EnterpriseDB (eine Gabel von PostgreSQL, Orakel-Vereinbarkeitseigenschaften hinzufügend), Fujitsu Unterstützter PostgreSQL

mit ihrem ESM Eigentumslagerungssystem und der hoch ersteigbaren Eigentumsableitung von Netezza von PostgreSQL. Einige dieser Verkäufer tragen zurück Änderungen zum Gemeinschaftsprojekt bei, während einige ihre Änderungen als ihre eigenen Wettbewerbsvorteile behalten.

Siehe auch

  • Liste von Softwaregabeln

Links


Funktionelle Ableitung / Gabel (Betriebssystem)
Impressum & Datenschutz