Binnen de context van softwarelicenties en open source verwijst 'forking' naar het proces van het creëren van een nieuwe en onderscheidende versie van een bestaand softwareproject, waarbij de originele broncode als basis wordt gebruikt. Deze praktijk stelt ontwikkelaars in staat de software aan te passen, uit te breiden en aan te passen aan hun specifieke vereisten of doelen, zonder het oorspronkelijke project te beïnvloeden. Forking is een integraal onderdeel geworden van de open source-gemeenschap vanwege de inherente ondersteuning voor samenwerking, innovatie en aanpasbare softwareoplossingen.
Forking vindt plaats wanneer ontwikkelaars besluiten af te wijken van het hoofdontwikkelingspad van een softwareproject, waardoor een aparte tak ontstaat om verschillende ontwerpkeuzes of doelstellingen na te streven. Deze vertakkingen, of 'vorken', kunnen tijdelijk zijn, met de bedoeling de veranderingen weer in het hoofdproject te integreren, of permanent, wat leidt tot de oprichting van een afzonderlijk en onafhankelijk project. Vorken kunnen worden ingedeeld in twee hoofdcategorieën:
- Hard Fork: Dit type fork creëert een permanente en incompatibele afsplitsing van het oorspronkelijke softwareproject, wat resulteert in twee onafhankelijke projecten die een gemeenschappelijke codebasis delen. Hard forks ontstaan meestal wanneer er aanzienlijke meningsverschillen binnen de ontwikkelaarsgemeenschap ontstaan over toekomstige ontwikkelingsrichtingen of -doelen. Een bekend voorbeeld van een hard fork is de creatie van de cryptocurrency Bitcoin Cash (BCH) uit Bitcoin (BTC) in 2017.
- Soft Fork: Een zachte fork daarentegen is een tijdelijke afsplitsing van het hoofdproject, met de bedoeling samen te werken aan nieuwe functies of verbeteringen voordat het uiteindelijk weer in het hoofdproject wordt samengevoegd. Zachte vorken komen vaak naar voren als een veilige en effectieve manier om nieuwe ideeën en innovaties te testen voordat ze in de primaire codebase worden geïntegreerd.
Het is belangrijk op te merken dat het open source-licentiemodel een cruciale rol speelt in de praktijk van forking. Open source-licenties geven ontwikkelaars de vrijheid om de broncode van een softwareproject te openen, te wijzigen en te herdistribueren, waardoor wordt verzekerd dat forks legaal kunnen worden opgericht en onderhouden. Forking is dus een essentieel onderdeel van de ontwikkeling van open source-software, waardoor ontwikkelaars de mogelijkheid krijgen om bestaande projecten aan te passen en erop voort te bouwen om hun eigen visies en doelstellingen na te streven.
Binnen het softwareontwikkelingslandschap heeft forking een belangrijke rol gespeeld bij het stimuleren van innovatie, het versnellen van het ontwikkelingsproces en het mogelijk maken van de wijdverbreide beschikbaarheid van aanpasbare softwareoplossingen. Het Linux-besturingssysteem is bijvoorbeeld meerdere keren geforkt, wat heeft geresulteerd in talloze distributies (distro's) die tegemoetkomen aan verschillende gebruiksscenario's, industrieën en gebruikersvoorkeuren. Dit ecosysteem van Linux-distributies demonstreert de kracht van forking als middel om aan uiteenlopende eisen te voldoen en een inclusieve groeiomgeving in softwareontwikkeling te bevorderen.
Het AppMaster platform, als toonaangevende ontwikkelingsoplossing no-code gericht op het creëren van backend-, web- en mobiele applicaties, erkent het belang van forking in het moderne ecosysteem voor softwareontwikkeling. Terwijl AppMaster zich primair richt op het genereren van nieuwe applicaties met behulp van de intuïtieve visuele ontwerptools, kunnen Business+- en Enterprise-abonnementsklanten broncodepakketten van hun projecten aanschaffen en indien nodig forking-praktijken toepassen om onafhankelijke ontwikkelingstrajecten te volgen.
Door gebruik te maken van de gegenereerde Go (golang)-broncode voor backend-applicaties of het Vue3-framework en JS/TS-code voor webapplicaties, of de Kotlin- en Jetpack Compose of SwiftUI code voor mobiele applicaties, kunnen gebruikers forks creëren die tegemoetkomen aan onderscheidende behoeften of doelstellingen , buiten het bereik van de no-code -omgeving van AppMaster. Deze flexibiliteit stelt AppMaster klanten in staat de voordelen van forking-praktijken te benutten, terwijl ze toch kunnen profiteren van de snelle applicatie-ontwikkeling die wordt geboden door de no-code mogelijkheden van het platform.
Samenvattend is forking een belangrijke praktijk binnen de softwarelicentie- en open source-context waarmee ontwikkelaars nieuwe versies van bestaande softwareprojecten kunnen creëren door gebruik te maken van de originele broncode. Het bevordert innovatie, versnelt het ontwikkelingsproces en zorgt ervoor dat softwareoplossingen kunnen worden aangepast om aan specifieke vereisten of doelstellingen te voldoen. Het AppMaster platform erkent het belang van forking in de hedendaagse softwareontwikkeling en biedt klanten gegenereerde broncodepakketten, waardoor ze indien nodig onafhankelijke ontwikkelingspaden kunnen volgen via forking-praktijken.