Fork (programvareutvikling)

En gaffel (eller gren ), innen programvareteknikk og informatikk , indikerer utviklingen av et nytt programvareprosjekt som starter fra kildekoden til en annen allerede eksisterende, av en programmerer . [1] [2]

Begrepet brukes (sjeldnere) for å indikere denne typen tilstand også for prosjekter og aktiviteter som ikke nødvendigvis er relatert til programvare og informasjonsteknologi , selv om det i de fleste tilfeller refererer til gratis og/eller åpen kildekode programvareprosjekter : faktisk for denne typen programvare. programvarelisenser kreves det ingen formell autorisasjon fra den opprinnelige utvikleren for endring eller utvikling fra kildekodene, og det er derfor lettere å starte en gaffel.

Beskrivelse

Forks, i sammenheng med fri programvare, viser seg ofte å være ekte skisma på grunn av personlige konflikter eller jakten på forskjellige mål. Når en gaffel oppstår, begynner begge parter arbeidet på nøyaktig samme kodebase, men bare den største gruppen, eller den som representerer den opprinnelige kjernen, holder navnet og det virtuelle fellesskapet knyttet til det. Noen ganger fører det å gaffel til en straff for omdømme.

I sammenheng med proprietær programvare , er opphavsretten inneholdt av selskapet som utvikler produktet, ikke av den enkelte utvikler. Proprietær kode forkastes vanligvis når selskapet trenger to eller flere versjoner av det samme produktet, for eksempel en grafikk og en kommandolinje , eller versjoner for forskjellige operativsystemer . Vanligvis opprettholder denne typen interne gafler samme utseende, samme format for filene og samme oppførsel, slik at brukeren kan være produktiv med begge deler: alt dette resulterer nesten alltid i en økning i markedsandeler.

Forking er en vanlig praksis i mange prosjekter, ettersom det er stabile (eller utgivelses ) versjoner beregnet på kun å imøtekomme mindre reparasjoner, og utviklingsversjoner som inneholder implementering av nye funksjoner. Dette skjer for eksempel i Linux-kjerneutvikling . Disse typer gafler kalles vanligvis grener for å unngå misforståelser på grunn av den negative konnotasjonen av ordet "gaffel" og fordi applikasjoner som hjelper utvikling (som CVS eller SVN ) bruker dette begrepet.

I noen tilfeller kan en gaffel integreres tilbake i det opprinnelige prosjektet, eller til og med erstatte den. Det eksperimentelle/forbedrede GNU- kompilersystemet (EGCS) var en gaffel av GCC , og demonstrerte en slik vitalitet over det originale prosjektet at det ble promotert til å være den offisielle versjonen av GCC.

Gafler betraktes som et uttrykk for friheten som fri programvare gjør tilgjengelig, men også en svakhet på grunn av spredningen av ressurser og forvirringen indusert hos sluttbrukeren. Etter en gaffel kan relasjonene mellom de ulike utviklingsgruppene forbli hjertelige eller bli svært tyngende: for eksempel når forfatteren av fildelingsprogrammet for Linux LMule ikke var interessert i å portere applikasjonen til andre plattformer, ble den splittet inn i xMule . På sin side ble dette delt opp i aMule , på grunn av forskjeller mellom utviklerne, og spenningene forble.

Når det gjelder gaffelprosessen, uttrykker Jargon File seg som følger:

«Gaffelen anses som en dårlig ting, ikke bare fordi den innebærer en enorm sløsing med ressurser, men fremfor alt fordi den har en tendens til å være ledsaget av alvorlige spenninger. Det er et alvorlig sosialt press mot gafler. Som et resultat er store gafler (som Emacs og XEmacs , delingen av 386BSD i tre parallelle prosjekter, og GCC og EGCS) sjeldne nok til å bli husket enestående i historien til hackerfolklore .

( Sjargongfil )

Å dele et prosjekt inn i et nytt er enkelt, men å fortsette å vedlikeholde og støtte det er det ikke: Det er vanlig at gafler uten tilstrekkelige ressurser blir inaktive. For eksempel ble GonoME , en gaffel av GNOME , snart forlatt selv om det først vekket en viss interesse. Noen gafler har i stedet vært svært vellykkede, for eksempel den til XFree86 , X.org og MATE , en gaffel av GNOME 2 som for tiden brukes av de fleste Linux-distribusjoner . [3]

Eksempler [4]

Merknader

  1. ^ Forgrener eller fordel depotet ditt på support.atlassian.com . Hentet 23. oktober 2020 .
  2. ^ Oppretthold et prosjekt: samhandle med utviklere , på pluto.it . Hentet 23. oktober 2020 .
  3. ^ MATE Desktop Environment , på mate-desktop.org . Hentet 23. oktober 2020 .
  4. ^ Swapnil Bhartiya, May the Fork Be with You: A Short History of Open Source Forks , på The New Stack . Hentet 23. oktober 2020 .

Relaterte elementer

Eksterne lenker