# Fork

En informàtica, una bifurcació (o fork, de l'anglès, en el sentit de ramal) pot tenir diferents significats depenent del context.
Generalment, es refereix a una nova branca d'un projecte de programari que inicia una nova versió, paral·lela a l'original, amb la seva pròpia evolució. En poques paraules, una bifurcació és una aplicació desenvolupada a partir d'una existent. Normalment, el programa o aplicació de partida sol ser programari lliure, ja que la creació d'una bifurcació implica que els autors del projecte inicial han d'autoritzar la modificació, la utilització i la redistribució del codi font, fet que es troba implícit en les llibertats que atorga aquest tipus de programari.
Un fork també pot ser una funció emprada en programació, com ara la funció fork d'UNIX, molt usada entre les aplicacions client servidor amb molts clients simultanis. De fet, la primera accepció té l'origen en la segona a causa del seu paral·lelisme: es crea un projecte nou a partir d'un altre d'idèntic sense destruir l'original.

## Característiques

* Una bifurcació parteix d'una còpia idèntica del projecte original i a partir d'ella evoluciona.
* Permet experimentar i modificar el codi lliurement sense afectar el projecte original.
* Els canvis fets en la bifurcació no es reflecteixen automàticament en el projecte original, i viceversa.
* És útil per proposar modificacions a projectes de tercers o per utilitzar un projecte existent com a base per a noves idees.
* Sovint es crea per l'abandonament del manteniment del projecte original per part dels primers desenvolupadors.

## Bifurcacions conegudes
### Distribucions de programari

La majoria de distribucions linux són descendents d'altres distribucions, la majoria a partir de Debian, Red Hat o Slackware. Donat que la major part del contingut d'una distribució és programari lliure, les idees i el lliure intercanvi de codi aporten profit a cada distribució. Les mescles (com ara United Linux o Mandriva) són rares. Exemples de bifurcacions de sistemes operatius:
* Ubuntu, la famosa distribució Linux és una bifurcació de Debian, una de les primeres distribucions GNU/Linux.
* LinuxMint, la distribució coneguda per ser amable amb els usuaris novells, és una bifurcació d'Ubuntu, concretament de la seua variant Kubuntu.
* OpenBSD va ser una bifurcació de NetBSD 1.0, per Theo de Raadt.
* Mageia, distribució coneguda pel seu potent Centre de Control (MCC) i el seu enfocament en la simplicitat i la seguretat és una bifurcació de Mandriva.

### Programari d'escriptori

En són moltes les aplicacions d'escriptori que es basen en alguna prèvia per iniciar la seua existència:
* LibreOffice, suite ofimàtica lliure va sorgir a partir d'OpenOffice per l'abandonament del seu desenvolupament.
* Inkscape, el programa lliure de dibuix vectorial va nàixer com a bifurcació de Sodipodi.
* Els navegadors Tor i Brave estan basats en Mozilla Firefox i en Chromium respectivament, en són bifurcacions.
* LibreCad, aplicació lliure de disseny assistit per ordinador és un fork de QCad.

### Programari en el núvol

També, dins del programari que està pensat per oferir un servei a través d'un navegador hi ha molts exemples de forks, entre els més coneguts:
* Nextcloud, el conjunt de programaris client-servidor destinat a l'allotjament de fitxers en el núvol, és un fork del programari ownCloud.

### Programari mòbil

Dins el programari destinat a dispositius mòbils també són conegudes moltes bifurcacions, tant pel que fa al sistema operatiu, principalment del sistema Android, ja que parteix d'una base de programari lliure anomenada AOSP (Android Open Source Project), com pel que fa a les aplicacions, moltes d'elles allotjades en repositoris de codi com GitHub o GitLab.
* LineageOS és un una bifurcació de la base lliure del sistema Android
* RiMusic, una aplicació d'Android de codi obert i multilingüe per transmetre música des de YouTube Music és un fork de ViMusic.

## Problemàtica

Les principals problemàtiques conegudes de la creació de bifurcacions són:
* Fragmentació del desenvolupament: La divisió d'esforços pot portar a una fragmentació del desenvolupament, dispersant recursos i comunitat. A més, pot generar confusió entre els usuaris sobre quina versió utilitzar.
* Compatibilitat i manteniment: Les bifurcacions poden tenir problemes de compatibilitat amb el projecte original a mesura que evolucionen per separat. El manteniment a llarg termini pot ser un repte, especialment si la bifurcació no aconsegueix una base d'usuaris i desenvolupadors prou gran.
* Conflictes legals i de llicències: Poden sorgir problemes legals relacionats amb drets d'autor i llicències, especialment si la bifurcació no respecta les condicions de la llicència original.
* Impacte en la comunitat: Les bifurcacions poden dividir la comunitat de desenvolupadors i usuaris, debilitant potencialment el projecte original.
* Riscos sobre els desenvolupadors originals: Les bifurcacions poden actuar com una amenaça implícita, pressionant els desenvolupadors originals a mantenir un alt nivell de qualitat i a respondre a les demandes de la comunitat. Si una bifurcació guanya més popularitat que el projecte original, els desenvolupadors originals poden perdre el control i la influència sobre el projecte que van crear. Una bifurcació exitosa pot atreure desenvolupadors, usuaris i fins i tot finançament del projecte original, posant en perill la seva viabilitat.
* Apropiació del treball: Alguns veuen les bifurcacions com una manera d'aprofitar-se del treball fet per altres, especialment si la bifurcació no manté una bona comunicació amb el projecte original.

## Enllaços externs

* Forking Arxivat 2006-04-05 a Wayback Machine. (David A Wheeler)
* Right to fork
* ↑ «Fork Definition» (en anglès). Tech Terms Computer Dictionary. [Consulta: 16 març 2025].
* ↑ «¿Qué es un FORK? El término fork puede tener diferentes significados… | Osmar Antonio Loureiro» (en castellà). [Consulta: 16 març 2025].
* ↑ «LECCIÓN 7: CREACIÓN DE PROCESOS. FORK» (en castellà). Universitat de Las Palmas de Gran Canaria. [Consulta: 16 març 2025].
* 1 2 3 4 Mallón, Xoán. «Fork en Git: Todos los detalles [2025 | KeepCoding]» (en castellà), 20-07-2022. [Consulta: 16 març 2025].
* 1 2 «LibreOffice Timeline | LibreOffice - Free and private office suite - Based on OpenOffice - Compatible with Microsoft» (en anglès). [Consulta: 16 març 2025].
* ↑ «Debian. Debian is the rock on which Ubuntu is built» (en anglès). [Consulta: 16 març 2025].
* ↑ «Linux Mint 1.0 beta "Ada" - Main Edition - Linux Mint» (en anglès), 29-09-2020. [Consulta: 16 març 2025].
* ↑ «Softcatalà. Programes. Linux Mint». Softcatalà, 07-01-2022. [Consulta: 16 març 2025].
* ↑ «netbsd-users: Theo De Raadt» (en anglès). [Consulta: 16 març 2025].
* ↑ «Mandriva Fork Announced by Former Employees – OSnews» (en anglès americà). [Consulta: 16 març 2025].
* ↑ Cazador, Alex Rubio. «¿Todo sobre la distribución Linux: 'Mageia'?» (en castellà). SeoXan. [Consulta: 16 març 2025].
* ↑ «Programari lliure o codi obert?». [Consulta: 16 març 2025].
* ↑ «Conozcamos la historia que hay detrás de Inkscape » Inkscape en Español» (en espanyol europeu), 23-01-2024. [Consulta: 16 març 2025].
* ↑ «Tor Browser Repository Overview · Wiki · The Tor Project / Applications / Team · GitLab» (en anglès). [Consulta: 16 març 2025].
* ↑ «The browser that puts you first» (en anglès). [Consulta: 16 març 2025].
* ↑ «LibreCAD - Free Open Source 2D CAD» (en anglès). [Consulta: 16 març 2025].
* ↑ «​OwnCloud founder forks popular open-source cloud» (en anglès). [Consulta: 16 març 2025].
* ↑ «Android Open Source Project» (en anglès). [Consulta: 16 març 2025].
* ↑ Fernández, Yúbal. «Qué es un fork de Android y cuáles son sus ventajas y desventajas» (en castellà), 17-10-2018. [Consulta: 16 març 2025].
* ↑ Fernández, Yúbal. «Qué es un fork de Android y cuáles son sus ventajas y desventajas» (en castellà), 17-10-2018. [Consulta: 16 març 2025].
* ↑ «RiMusic | F-Droid - Free and Open Source Android App Repository» (en castellà). Arxivat de l'original el 2025-01-23. [Consulta: 16 març 2025].
* ↑ Viseur, R. «Forks impacts and motivations in free and open source projects» (en anglès). International Journal of Advanced Computer Science and Applications (IJACSA), 3, 2, Data incorrecta. DOI: 10.14569/IJACSA.2012.030221. ISSN: 2156-5570.
* ↑ «Forking Protocol: Why, When, and How to Fork an Open Source Project» (en anglès), 07-05-2009. [Consulta: 16 març 2025].
* ↑ «What can I do when a fork of my project is out-competing mine?» (en anglès). [Consulta: 16 març 2025].
* 1 2 «[PDF Social Forking in Open Source Software: An Empirical Study]» (en anglès). [Consulta: 16 març 2025].
* ↑ «Forking Protocol: Why, When, and How to Fork an Open Source Project» (en anglès), 07-05-2009. [Consulta: 16 març 2025].