Als iemand net zo in de war is over softwarelicenties als ik was, hier is hoe ik ze nu zie. Softwarelicenties bepalen wat mensen met jouw code kunnen doen. De MIT-licentie laat mensen alles doen. Stel dat je een JSON-parsingbibliotheek bouwt met de MIT-licentie. Een startup kan jouw code nemen, deze aanpassen en verkopen als onderdeel van hun betaalde API-service zonder jou iets terug te geven. Ze hoeven alleen maar jouw copyrightvermelding in de codecommentaren te behouden. React gebruikt MIT, dus Facebook had het eigendom kunnen maken, maar ze kozen ervoor om het open te houden. Dit is de "doe wat je wilt"-licentie. GPL dwingt delen af. Stel je voor dat je een webframework onder GPL creëert. Als iemand jouw framework aanpast om nieuwe functies toe te voegen, moeten ze die aanpassingen ook als GPL vrijgeven. Ze kunnen geen eigendomsversie verkopen. WordPress gebruikt GPL, dus alle WordPress-thema's en -plug-ins moeten ook GPL zijn. Als je een commerciële CMS bovenop WordPress bouwt, wordt jouw hele CMS GPL. Dit houdt alles open source. Apache 2.0 gaat beter om met patenten. Je schrijft een machine learning-bibliotheek en iemand draagt een algoritme bij. Later proberen ze gebruikers aan te klagen voor patentinbreuk op dat algoritme. Met de Apache-licentie verliezen ze automatisch hun rechten om jouw bibliotheek te gebruiken. Het is bescherming tegen patenttrollen. Kubernetes gebruikt Apache 2.0 omdat cloudbedrijven zich zorgen maken over patentkwesties. BSD is in wezen MIT met andere woorden. Je creëert een netwerkbibliotheek onder BSD. Dezelfde regels als MIT, mensen kunnen doen wat ze willen. FreeBSD gebruikt dit, wat de reden is dat Apple BSD-code kon nemen en in macOS kon plaatsen zonder de broncode van macOS vrij te geven. De meeste ontwikkelaars gebruiken nu gewoon MIT omdat het duidelijker is. LGPL is GPL voor bibliotheken. Je bouwt een PDF-generatiebibliotheek onder LGPL. Bedrijven kunnen jouw bibliotheek gebruiken in hun propriëtaire software zonder hun hele app LGPL te maken. Maar als ze jouw bibliotheekcode zelf aanpassen, moeten die wijzigingen LGPL zijn. VLC media player gebruikt LGPL zodat andere apps videoweergave kunnen opnemen zonder GPL te worden. Propriëtair betekent dat je alles controleert. Je bouwt een database-engine en houdt deze propriëtair. Bedrijven betalen jou licentiekosten om het te gebruiken. Ze kunnen de broncode niet zien, kunnen deze niet aanpassen, kunnen deze niet herdistribueren. Oracle Database werkt op deze manier. Je verdient geld met licenties, maar beperkt wie het kan gebruiken. Dual licensing biedt opties. Je geeft een database vrij onder zowel GPL- als commerciële licenties. Open source-projecten gebruiken de GPL-versie gratis. Bedrijven die geen GPL-beperkingen willen, betalen voor de commerciële licentie. MySQL doet dit. Startups gebruiken gratis MySQL, grote bedrijven kopen vaak commerciële licenties. Publiek domein geeft alle rechten op. Je creëert een hashfunctie en plaatst deze in het publieke domein. Iedereen kan er alles mee doen, geen beperkingen, geen attributie vereist. SQLite doet dit. Overheidsinstanties zijn er dol op omdat er nul juridische risico's zijn. Bouw je een bibliotheek die je wilt dat iedereen gebruikt? Kies MIT. Wil je ervoor zorgen dat verbeteringen terugkomen naar de gemeenschap? Gebruik GPL. Maak je je zorgen over patenten in enterprise software? Ga met Apache. Bouw je een bedrijf rond jouw code? Blijf propriëtair. Wil je maximale vrijheid voor gebruikers? Probeer publiek domein. De sleutel is om jouw doelen af te stemmen op de licentiebeperkingen. Kopieer niet zomaar wat andere projecten doen zonder te begrijpen waarom ze die licentie hebben gekozen.
22,39K