Wikisage, de vrije encyclopedie van de tweede generatie, is digitaal erfgoed

Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.

  • Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
  • Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
rel=nofollow

Fork (ontwikkeling)

Uit Wikisage
Naar navigatie springen Naar zoeken springen
Bestand:Unix history-simple.png
De historische ontwikkeling van Unix.

In softwareontwikkeling wordt over fork (ofwel: afsplitsing) gesproken wanneer op basis van de broncode van een softwarepakket een nieuw en onafhankelijk project wordt gestart.

Vrije of opensourcesoftware is per definitie software waarvan het mogelijk is een afsplitsing te starten zonder toestemming van de originele maker. Gelicentiëerde afsplitsingen van propriëtaire software komen echter ook voor (een voorbeeld is Unix).

Branching

Een veel voorkomende vorm van afsplitsing, die intern is binnen een project, is een stabiele (stable) of vrijgegeven (release)versie, waarin uitsluitend nog programmeerfouten worden verbeterd. Deze bestaan naast de ontwikkelversie, waar nieuwe functionaliteit wordt ontwikkeld. Dergelijke splitsingen worden meestal aangeduid als "branches" (aftakkingen, hoewel ook in het Nederlands de Engelse term het meest wordt gebruikt), om de negatieve connotatie van het woord fork te voorkomen.

Vrije software

De definitie van "vrije software" staat het toe af te splitsen zonder voorgaande toestemming ("Vrijheid 3: De vrijheid om het programma te verbeteren en daarna te verspreiden, zodat de hele gemeenschap er voordeel uit kan halen. Beschikbaarheid van de broncode is hiervoor eveneens noodzakelijk.". Ook bij open source is dit het geval ("Opensourcesoftware is software waarvan de broncode is gepubliceerd en vrij beschikbaar is voor het publiek, waardoor iedereen het vrij kan kopiëren, aanpassen en verspreiden zonder kosten aan auteursrechten en toeslagen").

In vrije software is een afsplitsing meestal het resultaat van een verschil in visie of persoonlijke conflicten. Beide partijen gaan verder met nagenoeg identieke broncode, maar normaliter zal alleen de grotere groep of de groep waar de originele softwarearchitect deel van uitmaakt de oorspronkelijke naam en de gebruikersgemeenschap behouden. Afsplitsen heeft meestal een verlies van reputatie tot gevolg. De relatie tussen de beide teams kan beleefd zijn (bijvoorbeeld Ubuntu en Debian), rancuneus (X.Org Server en XFree86 of cdrtools en cdrkit) of niet noemenswaardig (de meeste Linux-distributies).

Afsplitsen wordt gezien als een expressie van de vrijheid die vrije software biedt. Als zwakke punten worden beschouwd het dupliceren van ontwikkel-werkzaamheden en verwarring bij gebruikers over welke afsplitsing te gebruiken. Ontwikkelaars hebben altijd de mogelijkheid om samen te werken binnen vrije software, maar dit wordt niet gegarandeerd door vrije softwarelicenties. Uitsluitend toewijding van de ontwikkelaars kan hiervoor zorgen. Desondanks nemen veel ontwikkelaars wel degelijk de moeite om wijzigingen in alle relevante afsplitsingen aan te brengen, bijvoorbeeld bij de verschillende BSD varianten.

In The Cathedral and the Bazaar (1997, [1]) wordt geopperd dat "De meest belangrijke karakteristiek van een afsplitsing is dat het leidt tot concurrerende projecten waartussen later geen uitwisseling van broncode mogelijk is, en een opsplitsing van de ontwikkel-gemeenschap.". Dit is echter heden ten dage niet per definitie waar.

Soms kan een afsplitsing weer terugvloeien in het oorspronkelijke project, of het zelfs vervangen. EGCS (het 'Experimental/Enhanced GNU Compiler System), een afsplitsing van GCC, bleek vitaler dan het oorspronkelijke project en werd na verloop van tijd gezegend als het officiële GCC-project. Er zijn gevallen waarin dit resultaat met opzet werd nagestreefd, zo begon Mozilla Firefox als een officieus project binnen Mozilla, dat al gauw de originele Mozilla Suite verdrong als primaire focus van ontwikkeling.

De Jargon File zegt over afsplitsen:

"Afsplitsen wordt gezien als een slechte zaak — niet alleen vanwege de verloren moeite maar vooral omdat een afsplitsing normaliter samen gaat met wrijving en boosheid tussen de groepen over zaken als legitimiteit, opvolging en ontwerp. Er is zeker sociale druk om niet af te splitsen. Hierdoor zijn belangrijke afsplitsingen (zoals de splitsing tussen GNU Emacs/XEmacs, het opsplitsen van de 386BSD-groep in drie dochterprojecten en de splitsing van korte duur tussen GCC/EGCS) zeldzaam, en worden ze afzonderlijk en in groot detail opgetekend in hackerfolklore."

Een afsplitsing afroepen is simpel, maar het kost veel moeite om onafhankelijke ontwikkeling en ondersteuning mogelijk te blijven maken. Afsplitsingen lopen daarom het risico om snel inactief te worden, zoals bijvoorbeeld GoneME dat een afsplitsing is van GNOME. Ondanks publicitaire aandacht lukte het de voormalige GNOME-ontwikkelaar niet om de afsplitsing in leven te houden. Er zijn echter genoeg bekende voorbeelden van afsplitsingen die wel succesvol bleken, zoals X.Org-server, een afsplitsing van XFree86. Deze afsplitsing vond veel bijval van ontwikkelaars en gebruikers en versnelde de ontwikkeling van X aanzienlijk.

Propriëtaire software

Van propriëtaire software ligt het auteursrecht meestal bij de werkgever en niet bij de individuele software-ontwikkelaars. Afsplitsingen zijn hier dan ook gebruikelijker wanneer de eigenaar verschillende versies wil ontwikkelen, zoals een grafische versie en een versie voor gebruik vanaf de commandoregel, of versies voor verschillende besturingssystemen zoals een tekstverwerker voor IBM PC-systemen en Apple-computers. Over het algemeen hebben dergelijke afsplitsingen dezelfde uiterlijke kenmerken en gebruikersinterface, dezelfde gegevensindeling en gelijke functionaliteit, zodat een gebruiker ongeacht het besturingssysteem met de software overweg kan en documenten tussen de verschillende systemen kan uitwisselen. Dit is zo goed als altijd een economische beslissing om een groter marktaandeel te veroveren. Derhalve wegen de extra inkomsten op tegen de hogere kosten door dubbel ontwikkelwerk.

Een uitzondering hierop zijn de vele afsplitsingen van Unix — allemaal afsplitsingen (al dan niet indirect) van AT&T Unix en allemaal bekend als "Unix". De vele verschillende versies vertonen echter steeds meer incompatibiliteit.

De BSD-licentie staat het toe dat afsplitsingen propriëtaire software worden. Volgens sommigen zorgen commerciële motivaties er voor dat het propriëtair maken van software zo onvermijdelijk is. Enkele voorbeelden zijn Cedega en CrossOver (propriëtaire afsplitsingen van Wine), EnterpriseDB (een afsplitsing van PostgreSQL met Oracle-compatibiliteit), Fujitsu Supported PostgreSQL met een propriëtair ESM-opslagsysteem, en Netezza's propriëtaire op schaalbaarheid georiënteerde versie van PostgreSQL. Sommige van deze bedrijven geven veranderingen terug aan het oorspronkelijke, vrije, project terwijl andere deze voor hun eigen concurrentievoordeel behouden.

Andere opvallende afsplitsingen

  • De meeste Linux-distributies stammen af van andere distributies, de meeste met als gemeenschappelijke voorouder Debian, Red Hat of Slackware. Omdat een groot deel van een distributie bestaat uit vrije software is de uitwisseling van ideeën en software ongehinderd. Samensmeltingen zijn zeldzaam (voorbeelden zijn United Linux en Mandriva).
  • Pretty Good Privacy kent afsplitsingen buiten de Verenigde Staten om de restrictieve wetten in de VS op het gebied van export van cryptografische technieken te vermijden.
  • Het spel NetHack kent een aantal varianten gebaseerd op de oorspronkelijke broncode, in het bijzonder Slash'EM. NetHack zelf was een afsplitsing van Hack.
  • OpenBSD is een afsplitsing van NetBSD 1.0 door Theo de Raadt
  • OpenSSH is een afsplitsing van SSH. Aanleiding voor de afsplitsing was de niet-vrije licentie op SSH 2.x (ook al was de broncode beschikbaar). Een oudere versie van SSH 1.x, de laatste versie die als vrije software was gepubliceerd, was de basis van deze afsplitsing. Binnen enkele maanden hadden zo goed als alle Linux-distributies, BSD-versies en zelfs sommige propriëtaire Unices SSH vervangen door OpenSSH.
  • DragonFly BSD is een afsplitsing van FreeBSD 4.8, een initiatief van oudgediende BSD-ontwikkelaar Matt Dillon, vanwege meningsverschillen over de technische richting van FreeBSD 5.
  • Adempiere is een gemeenschaps-gedragen afsplitsing van Compiere 2.5.3b, met als aanleiding onenigheid over de commerciële en technische richting van Compiere Inc.
  • NeoOffice is een afsplitsing van OpenOffice.org, met een afwijkende licentie (GPL in plaats van LGPL), vanwege onenigheid over de licentie en de beste methode om OpenOffice.org te porten naar Mac OS X.
  • Funpidgin is een afsplitsing van de Instant messaging-software Pidgin, vanwege onenigheid over automatische aanpassing van de grootte van het tekst-invoerveld en een gebrek aan andere functionaliteit die door gebruikers werd gevraagd.

Referenties