Logo nl.androidermagazine.com
Logo nl.androidermagazine.com

Wat de vork is een 'vork'?

Inhoudsopgave:

Anonim

De afgelopen dagen heb je het woord "vork" waarschijnlijk vaker gehoord dan je kunt tellen. Facebook heeft dit gesplitst (hoewel dat niet het geval was), Amazon doet dat, het Chrome-team heeft het hele web gesplitst, enzovoort. Terwijl iedereen het heeft over wie wie forking, neemt niemand de moeite om precies uit te leggen wat forking is, en waarom zoveel mensen er een probleem mee hebben.

Forking, of verpletterend, kreeg een beetje een slechte reputatie ongeveer 20 jaar geleden, omdat het de neiging had om ontwikkelaars op te splitsen in afzonderlijke facties die de code niet met elkaar deelden. In de tijd van dingen als de splitsing van Gnu-Emacs / XEmacs was dit belangrijk omdat er niet zo veel mensen in staat waren om aan deze grote open-sourceprojecten te werken, en het hebben van twee vestigingen of vorken betekende dat het langer duurde om toe te voegen functies en problemen voor beide partijen oplossen. In sommige gevallen gebeurt dit nog steeds, ik ben er zeker van, maar voor het grootste deel zijn er veel ontwikkelaars die de leegte kunnen opvullen die zijn achtergelaten door diegenen die een aparte visie hebben en die de code zullen volgen om deze te volgen. Maar sommige mensen vergeten het nooit en het stigma dat verbonden is aan het vorken van vervalsers wordt doorgegeven. Dit alles gezegd hebbende, kunnen we niet doen alsof slechte vorken niet gebeuren. We moeten gewoon voorbij de handeling zelf kijken voordat we onze beslissingen nemen.

Ik weet dat enkelen van jullie daar weten wat dit allemaal betekent en proberen gewoon al het lawaai te negeren, maar voor velen is het verwarrend. Laten we proberen dat op te lossen.

Wat is een softwarevork en hoe beïnvloedt deze Android?

Denk aan Android en een heleboel code. Er zijn twee delen - de open-source delen, wat AOSP is, en de eigen delen die Google voor zichzelf houdt. Als iemand Google Android wil gebruiken en er wijzigingen in wil aanbrengen, downloadt hij de code om als basis te gebruiken en vormt daarmee zijn eigen project. Samsung doet dat, HTC doet dat en uw favoriete ROM-ontwikkelaar doet het misschien. Telkens wanneer iemand bestaande code neemt en een onafhankelijk (dat is een belangrijk onderscheid) project op basis daarvan start, hebben ze een vork gemaakt. Veel ontwikkelaars zullen code uitchecken, delen ervan bewerken en hun wijzigingen vervolgens volledig stroomopwaarts terugsturen, wat geen vork is.

Amazon trok nogal wat wenkbrauwen toen het Android vorkte om het OS voor de Kindle Fire-lijn te bouwen. Maar aan de open-source kant was het niet anders dan wat Motorola deed met de Cliq, of HTC deed met de Hero - of wat Samsung nu doet voor apparaten uit de Galaxy-serie. Dit is het aantal grote open-sourceprojecten. Elke verkoper (behalve misschien Amazon) werkt met dezelfde basisprincipes, waarschijnlijk bugs rapporterend en fixes terugstuurder in de loop van de tijd om een ​​eigen versie van het eindproduct te maken.

Facebook heeft Android niet gevorkt. Het gebruikte het Android-intentiesysteem (een manier waarop apps met elkaar kunnen samenwerken en delen op Android) en bouwde een grote app die bovendien een vervangende woning bevat. In hun sandbox kunnen ze doen wat ze willen of moeten doen, en zolang ze de bedoelingen van Android gebruiken, kunnen ze communiceren met de rest van het systeem. Als je technisch wilt worden, kan HTC Android hebben gevorkt om beter te werken met Facebook Home op de HTC First, omdat het enkele wijzigingen vermeldt die zijn aangebracht voor betere compatibiliteit. We zullen meer weten over wat ze deden wanneer de telefoon sijpelt.

Hoe dan ook, het vervallen van code is niet altijd slecht en verdient niet alle negativiteit die je hoort als iemand het noemt. Industrieanalist Stephen O'Grady vat het goed samen, denk ik:

Het is echter vermeldenswaard dat vorken of varianten vanuit een klantperspectief niet universeel slecht zijn. Hoewel de verschillende Android-versies ongelukkige ontwerpbeslissingen kunnen vertegenwoordigen van de leveranciers die verantwoordelijk zijn voor hen, zijn applicaties in de overgrote meerderheid van de gevallen compatibel van apparaat tot apparaat, uitgaande van versie-equivalentie.

Daarom is het ontwerpen van apps compatibel van apparaat tot apparaat. Forking code maakt dat niet gebeuren. Maar andere dingen doen.

De andere kant van Android

In China kunt u een telefoon kopen van een aanbieder die Android gebruikt, maar geen Google-services heeft? Net als de Kindle Fire, is het gebouwd op basis van de Android-code van Google (soms ongewijzigd), maar werd het niet ingediend en getest om compatibel te zijn met Google en bevat het dingen als Gmail of Google Play. Die apps en de diverse systeembestanden die ze moeten uitvoeren, zijn niet open-source en u kunt ze niet zomaar opnemen zonder toestemming van Google.

Afgezien van een "andere" (ik ga niet zeggen dat het "slechter", alleen anders) gebruikerservaring is zonder deze apps, kunnen ze er uitzien en aanvoelen als een Android-telefoon die u koopt bij Verizon of AT&T. Ze kunnen er ook heel anders uitzien en aanvoelen, zoals Amazon heeft gedaan. Maar dit alles is niet omdat ze Google's Android-code hebben genegeerd - het was een bewuste beslissing om geen Google "gecertificeerd" apparaat te maken. Google presenteert Android als een applicatieplatform en een set app-frameworks. Exclusief de serviceapplicaties van Google maakt het niet minder tot een app-platform. Natuurlijk denken we dat Google liever alle Android- en Android-apparaten de services van Google laat gebruiken, maar er is geen harde regel dat een verkoper dit moet doen.

Apparaten maken zonder de apps van Google heeft niets te maken met het forken van Android. Het kan apparaten minder wenselijk maken, of op een dag zou de ultieme Android-telefoon kunnen worden gebouwd zonder de apps van Google, maar het kan gebeuren zonder enige code te forken. We zijn allemaal schuldig aan het in elkaar zetten van de twee dingen samen, maar we moeten het niet doen.

Forken is gewoon een ding

Het is niet goed dat OEM's Android gebruiken en aan hun eigen project werken met de code. Het is niet slecht dat OEM's Android gebruiken en aan hun eigen project werken met de code. Het is gewoon iets wat ze allemaal doen.

Nexus fanclub terzijde, je kunt me niet vertellen dat Samsung of HTC Android heeft verpest door de code te forken en erop voort te bouwen. Ze voegden functies toe terwijl alles compatibel bleef, zodat applicaties gebouwd voor "Android" volgens de richtlijnen van de ontwikkelaar prima zullen werken. En ze leveren consequent apparaten die mensen willen kopen. Ik denk dat dit precies is wat Google in gedachten had voor Android. Ze wisten dat uiteindelijk iemand een beetje verder zou gaan en iets zou maken dat niet volledig "Android" compliant is, maar dat is OK. Gebruikers van die apparaten zijn nog steeds op internet en de mobiele web-apps van Google zijn behoorlijk behoorlijk.

Hopelijk weet je nu iets meer over wat mensen bedoelen als ze het hebben over Android-forking.