Opensourcesoftware

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Portal.svg Portaal Vrije software

Opensourcesoftware (soms ook openbronsoftware) is computerprogrammatuur waarvan de broncode wordt vrijgegeven. Dit geeft gebruikers de mogelijkheid om de software te bestuderen, aan te passen en te verbeteren. De ontwikkeling van opensourcesoftware komt vaak tot stand op publiekelijke en gemeenschappelijke wijze, door samenwerking van zowel individuele programmeurs als overheden en bedrijven. Opensourcesoftware is tevens de meest prominente ontwikkeling in de opensourcebeweging.

Situatie[bewerken]

Een computerprogramma bestaat meestal uit twee onderdelen: de software die wordt 'gedraaid' op de computer (de gecompileerde executable) en de 'broncode' waarmee deze software gemaakt is. De broncode is niet nodig om de software te laten werken, daarvoor is alleen de executable nodig. Mocht iemand een stuk software willen aanpassen dan moet hij de broncode hebben, deze aanpassen en vervolgens compileren. Er is dan een nieuwe versie van de software gemaakt.

De basis[bewerken]

Eric Raymond.

De ontwikkelmethode die Eric S. Raymond beschreef, gaat ervan uit dat de broncode van software beschikbaar gesteld wordt. Hiermee wordt de mogelijkheid gecreëerd om een programma aan te passen door eenieder die de kennis heeft om de broncode te begrijpen. Dit is voornamelijk gebaseerd op de gebruiken van de eerste (universitaire) computerspecialisten die (vanaf het begin van data-uitwisseling via bijvoorbeeld het interuniversitaire ARPANET) elkaar wilden helpen met het gebruiken van de (toen nieuwe) computers.

Geschiedenis[bewerken]

Hoewel de opensourcebeweging onder die naam (open source movement) in 1998 is begonnen, komen de doelen van de beweging grotendeels overeen met die van de oudere Free Software Foundation, en het concept van vrij beschikbare broncode is al veel ouder.

In de jaren 60, toen de eerste grootschalige commerciële computers werden gemaakt door onder andere IBM, werd er vrij te gebruiken software bijgeleverd. 'Vrij' wil zeggen het kon worden gedeeld onder de gebruikers. Tevens zat de broncode erbij en kon software zo worden verbeterd en aangepast. Dit veranderde echter in de jaren 70: het werd gebruikers meestal niet langer toegestaan om dit soort software te ontwikkelen of te delen. Mede als reactie hierop gingen in de late jaren 70 en vroege jaren 80, verschillende groepen en hackers over tot het ontwikkelen van vrije besturingssystemen, zoals het latere GNU en FreeBSD.

Richard Stallman, een voormalig programmeur bij het laboratorium voor kunstmatige intelligentie van MIT aan de Amerikaanse oostkust lanceerde het GNU Project en richtte 4 oktober 1985 de Free Software Foundation ('stichting voor vrije software') op. Het uiteindelijke doel hiervan was een vrij besturingssysteem te bouwen. Als het ware een vrije kloon van het gesloten besturingssysteem Unix. De naam GNU is een recursief acroniem dat staat voor "GNU's Not Unix!". Als juridisch instrument werd daarnaast de GNU General Public License ontworpen om ervoor te zorgen dat GNU vrij zou blijven en om de vrije software te promoten. Stallman schreef eveneens het GNU-Manifest[1], waarin hij betoogt dat de beschikbaarheid van de broncode en de vrijheid om deze verder te distribueren en te wijzigen fundamentele rechten zijn.

Tegelijkertijd werd er in de Computer Science Research Group aan de Universiteit van Californië te Berkeley gewerkt aan een verbetering van het Unix-systeem en applicaties die al snel bekend werd als "BSD Unix". BSD staat hier voor Berkeley Software Distribution. Het project werd gefinancierd door DARPA-contracten en gesteund door Unix-hackers wereldwijd. Het werd onder BSD-licentie verdeeld aan het eind van de jaren 80, nadat de software alleen binnen de gemeenschap van Unix AT&T-licentiehouders was te verkrijgen. BSD Unix-gebruikers hadden daarentegen een AT&T-licentie nodig, ten behoeve van een bruikbaar systeem.

Ubuntu, een opensourcebesturingssysteem gebaseerd op Linux.

In de jaren 80 en 90 werd de ontwikkeling van het opensourceconcept voortgezet. Door het gebruik van USENET en Internet werd het mogelijk inspanningen van hackers en programmeurs in andere delen van de wereld te coördineren. Langzaam maar zeker kon op het Unix-besturingssysteem veel en verschillende software gebouwd worden. Het werd hoog tijd voor veranderingen en die kwamen in 1991 en 1992.

Bill Jolitz in Californië verwezenlijkte de ontbrekende delen van het besturingssysteem van BSD Net/2 en maakte het mogelijk dat het werkte op Intel 80386-machines. Ook beschikte het over een werkende kernel. Deze inzet werd zeer gewaardeerd binnen BSD- en Unix-gemeenschappen. Het werd verspreid onder de BDS-licentie, wat het meteen vrije software maakte.

Linus Torvalds, een informaticastudent uit Finland, verwezenlijkte de eerste versies van de Linux-kernel. Steeds meer mensen werkten hier uiteindelijk aan samen om de kernel te blijven verbeteren, en hulpprogramma's toe te voegen om een werkelijk besturingssysteem te voltooien, GNU/Linux6. In 1993 waren zowel 386BSD en GNU/Linux6 redelijk stabiele platforms. In de jaren 90 kwamen er vele opensourceprojecten met een grote hoeveelheid aan nuttige en hoogwaardige software beschikbaar, zoals Apache, GNOME, KDE en Mozilla. Vooral GNOME en KDE waren populair omdat ze toegankelijk waren voor mensen met minder technische kennis. GNU/Linux en BSD begonnen uit te groeien tot werkelijke alternatieven voor propriëtaire systemen.[2]

In 1998 werd de broncode van Netscape Communicator vrijgegeven. Naar aanleiding hiervan kwam het begrip 'open source' uit een strategie-sessie op 3 februari 1998 in Palo Alto. Hierbij aanwezig waren Todd Anderson en Chris Peterson (Foresight Institute), John “Maddog” Hall en Larry Augustin (Linux International), Sam Ockman (Silicon Valley Linux User Group), Micheal Tiemann en Eric Raymond. Voorafgaand was Raymond uitgenodigd door Netscape om hen te helpen plannen met het vrijgeven van de broncode van Netscape Communicator. De leden van de strategiesessie grepen de release van de broncode aan om zich te bevrijden van de in hun ogen ideologische en confronterende connotaties van de term Free Software. Ze brainstormden over een tactiek en een nieuw label. Open Source, mede bedacht door Peterson, was het beste dat bij hen opkwam. De week daarop werd er hard gewerkt aan het verspreiden van de term. Op 8 februari deed Raymond de eerste openbare oproep aan de gemeenschap tot het gebruiken van de nieuwe term. De oprichting van het Open Source Initiative volgde kort daarop. Op 8 april werd op Tim O'Reilly's Free Software-top ingestemd met het besluit om het gebruik van de term "Open Source" te bevorderen en om de nieuwe retoriek van pragmatische en marktvriendelijke richtlijnen, ontwikkeld door Raymond, na te volgen.[3]

Dit was het startpunt voor veel grote bedrijven om opensourcesoftware te accepteren. Eveneens begonnen de media nu ook meer aandacht te geven aan de voorheen marginale opensourcebeweging, die nu niet meer alleen bestaat uit particulieren en non-profitorganisaties maar ook uit kleine en middelgrote bedrijven.

In de vroege jaren 2000 waren een aantal bedrijven begonnen met het publiceren van een deel van hun broncode om te bewijzen dat zij meededen aan het Open Source fenomeen, terwijl zij de belangrijke delen voor zich hielden. Dit leidde tot het ontwikkelen van de nu wereldwijd gebruikte termen Free Open Source Software en Commercial Open Source Software om een onderscheid te maken tussen helemaal open en halfopen vormen van Open Source.

Open Source Definition[bewerken]

Aan de hand van de Open Source Definition (definitie van open source, OSD) bepaalt het Open Source Initiative (OSI) of een softwarelicentie de kwalificatie open source verdient. De definitie is gebaseerd op de Debian Free Software Guidelines. Beide zijn geschreven en aangepast door Bruce Perens.

Ontwikkelingsfilosofie[bewerken]

Eric S. Raymond presenteerde in het door hem geschreven essay The Cathedral and the Bazaar[4] een model voor de ontwikkeling van OSS (Open source software), bekend als de bazaar. Deze theorie beschrijft hoe software ontwikkeld zou worden in een bazaarstijl. In zijn woorden: "Een grootse brabbelende bazaar van verschillende agenda's en benaderingen."

De traditionele wijze van ontwikkeling, de kathedraal, is meer gecentraliseerd. Rollen en taken in de ontwikkeling zijn hierin duidelijk onderverdeeld. De traditionele software engineering volgt het kathedraal-model. Softwareontwikkelaar Frederick P. Brooks pleit in zijn boek The Mythical Man-Month, voor het kathedraalmodel.[bron?] Hij gaat hierop verder door te pleiten voor behoud van de onkreukbaarheid van het systeem. Het systeemontwerp zou gedaan moeten worden door zo min mogelijk architecten.

Het bazaarmodel daarentegen, hanteert geen specifieke rollen. Gregorio Robles schreef dat software ontwikkeld volgens het bazaar-model de volgende patronen zou moeten volgen:[5]

Gebruikers moeten behandeld worden als medeontwikkelaars
De gebruikers zouden als medeontwikkelaars behandeld moeten worden en ook toegang moeten krijgen tot de broncode van de software. Zij kunnen bijdragen aan verbetering van de software. Volgens de Wet van Linus zouden alle problemen in de software gevonden kunnen worden en kan het systeem optimaal getest en ontwikkeld worden.
Vroege releases
De eerste release zouden zo vroeg mogelijk uitgegeven moeten worden om medeontwikkelaars zo snel mogelijk te betrekken.
Regelmatige integratie
Code die wordt veranderd, zou zo snel mogelijk geïntegreerd moeten worden, eventueel in een gedeelde code-database, om te voorkomen dat er pas aan het eind van het project codeproblemen worden opgelost. Bij sommige open source software is dit al het geval.
Verschillende versies
Er zouden op zijn minst twee versies van een softwarepakket moeten bestaan. Een stabiele versie met beperkte functionaliteit en een minder stabiele versie met meer of betere functionaliteit. De instabiele versie of ontwikkelingsversie (ook wel bèta genoemd) is voor gebruikers die over de nieuwste functies willen beschikken en het risico durven nemen om met software te werken die nog niet grondig is getest. Gebruikers zijn op deze manier ook medeontwikkelaars door feedback te geven op de software.
Modularisering
De algemene structuur van de software zou per module geprogrammeerd moeten zijn, zodat er tegelijkertijd ontwikkelingen gedaan kunnen worden aan verschillende componenten
Dynamische besluit-structuur
Hetzij formeel of informeel, zou er een besluit-structuur moeten zijn. Deze zou strategische keuzes moeten maken afhankelijk van het veranderen van gebruikersvereisten en andere factoren.

Ontwikkeling[bewerken]

De structuur van medewerkers is duidelijk verschillend van de klassieke bedrijfsstructuur. In plaats van één enkel bedrijf dat het project ondersteunt, is het meestal een combinatie van groeperingen, individuen en eventueel bedrijven.[6] Dit heeft enkele gevolgen:

  • Er is meestal geen sprake van vooraf opgestelde tijdsschema’s, de ontwikkelaars werken aan dat deel waar ze het liefst aan werken en niemand is verplicht om te werken.[7]
  • Er wordt samen tot een consensus gekomen over de uiteindelijke functionaliteit etc. van het programma. Er is geen management dat beslist wat er uiteindelijk in komt of niet in komt.[8]
  • Er is een vage grens tussen ontwerp en implementatie: de ontwerper implementeert en vice versa.[7]

Een groot deel van het programmeren wordt ook uitgevoerd en gecontroleerd door buitenstaanders. Iedereen kan een bijdrage leveren aan de code. In plaats van te wachten tot het programma volledig af is, worden er tijdens de ontwikkeling testversies van het programma publiek gemaakt. Zo kan het al door gebruikers getest worden voordat het werkelijk af is. Dit zorgt ervoor dat bugs die nog in het programma zitten, kunnen gedetecteerd worden voordat de definitieve versie van het programma verschijnt. Vaak zijn er verschillende versies parallel beschikbaar: een stabiele versie voor algemeen gebruik en een aantal ontwikkelingsversies.[7]

Omdat er door meerdere mensen tegelijk aan wordt gewerkt, verschilt opensourcesoftware van commerciële software qua architectuur. Commerciële software is meestal onderling afhankelijk, de afzonderlijke delen zijn veel moeilijker aan te passen omdat alles zo sterk samenhangt. Bij opensourcesoftware is dit net omgekeerd: omdat er verschillende aanpassingen worden gemaakt en toepassingen worden toegevoegd, zit alles losser ineen. Dit is nodig aangezien dit type software een continu evoluerend proces is.[6]

Verschil met andere software[bewerken]

Bij de meeste commerciële software is de broncode bedrijfsgeheim / eigendomscode: de gebruiker 'koopt' of 'huurt' een programma en gebruikt dat. Indien de software aangepast moet worden zijn de mogelijkheden vaak beperkt. Meestal moet men namelijk naar de leverancier van de originele software om de executable aan te passen. Dit noemt men maatwerk. Opensourcesoftware voorkomt de vendor lock-in van een enkele softwareproducent. Opensourcesoftware geeft de vrijheid om eenvoudig van software te wisselen als de producent stopt met de verkoop, de prijs voor het product verhoogt, veranderingen aan de software aanbrengt of veranderingen in de licenties van de software doorvoert naar een minder acceptabele vorm.

Voordelen open source[bewerken]

Indien gekochte software open source is, heeft degene die deze software gekocht heeft de beschikking over de broncode. Hiermee is het aan de koper van software (en niet meer aan de verkoper) om aan te geven of en hoe de software aangepast moet worden. En uiteraard is het dan ook aan de koper om verschillende aanbiedingen en aanbieders te vergelijken. De originele verkoper/ontwikkelaar heeft als zwaarwegend argument bij een onderhandeling dat de benodigde ervaring en kennis voor de gewenste aanpassing bij hem/zijn organisatie beter aanwezig is. Andere aanbieders zullen een zware taak hebben om op een vergelijkbaar niveau van kennis, kunde en/of ervaring te komen. De klant/koper is degene die het bewijs van deze kennis, kunde en ervaring kan afdwingen. Hij/zij is niet meer gebonden aan de originele leverancier en dus minder afhankelijk van keuzes die ooit in het verleden gemaakt zijn.

Iedereen kan de broncode inkijken en aanpassingen aanbrengen. Dit zorgt voor een continue verbetering van het programma. Let wel dat wanneer iemand een wijziging aanbrengt in de code, deze wijziging niet meteen in het officiële programma terecht komt. Het uiteindelijke product is dus meestal van betere kwaliteit dan wanneer het door een kleine groep van programmeurs gemaakt wordt. Door het publiceren van problemen en oplossingen binnen het grote opensourcenetwerk, zal er sneller een oplossing aangeboden worden. Om dezelfde reden zijn opensourceprogramma's vaak innovatiever dan een vergelijkbaar closedsourceprogramma.

Voor de eindgebruiker zijn open source oplossingen meestal gratis, voornamelijk omdat de broncode is opengesteld voor het publiek. Het is wel zo dat open source niet per se gratis moet zijn. Er is namelijk nog steeds ondersteuning en hardware nodig.

Vooral voor de eindgebruiker is open source interessant. Zo is er vele alternatieve software te vinden op SourceForge.net. Verder zijn er opensourcealternatieven te vinden voor besturingssystemen. Hiervan is de verzameling van opensourcebesturingssystemen die luistert naar de naam Linux het bekendst.

Zoekmachine voor code[bewerken]

Met een zoekmachine zoals Google Code Search of Koders kan in de meeste opensourcesoftwareprojecten die voor iedereen toegankelijk zijn naar beschikbare programmacode gezocht worden in onder andere PHP, Ruby, Javascript, Delphi, C++ en ASP.

Overheidssoftware[bewerken]

In verschillende landen zijn initiatieven gaande om overheden op te roepen zo veel mogelijk opensourcesoftware te gebruiken in plaats van propriëtaire software. In Nederland heeft de Tweede Kamer in 2002 de Motie Vendrik aangenomen. Hiermee heeft de Tweede Kamer de Nederlandse regering opdracht gegeven om er zorg voor te dragen dat de Nederlandse overheid uiterlijk 2006 zou overgaan op open software en open standaarden. In het kader daarvan is onder andere het programma OSOSS opgezet.

Zie ook[bewerken]

Externe links[bewerken]

Bronnen, noten en/of referenties
  1. http://www.gnu.org/gnu/manifesto.nl.html
  2. http://eu.conecta.it/paper/paper.html
  3. http://www.opensource.org/history
  4. The Cathedral and the Bazaar, http://catb.org/~esr/writings/homesteading/introduction/, De Kathedraal en de Bazaar, http://www.opensource.nl/bazaar.html
  5. A Software Engineering approach to Libre Software, Gregorio Robles, http://www.opensourcejahrbuch.de/download/jb2004/chapter_03/III-3-Robles.pdf
  6. a b N. Weynants and J. Cornelis. How open is the future? Brussels University Press, 2005.
  7. a b c C. Pavlicek. Embracing Insanity: open source software developement. Sams, 2000.
  8. A. Story. Intellectual property and computer software. Issue Paper 10, UNCTAD-ICTSD, Geneve, 2004.