Tags: Java | Open Source
James Gosling - Het opensourcen van java

Het Open Sourcen van Java

James Gosling, door velen als de geestelijke vader van Java-technologie beschouwd, is hard bezig geweest om Sun Microsystems bij te staan in haar streven om de broncode van Java SE (JDK)- en Java ME-implementaties openbaar te maken. De broncode van de Java EE-implementatie is reeds meer dan een jaar openbaar dankzij het project Project GlassFish. Afgelopen maand kondigde Sun verdergaande stappen aan om java te open sourcen. In dit interview geeft hij zijn visie op de meest recente ontwikkelingen.

Waarom maakt Sun de broncode van haar Java-platform openbaar?

Gosling: "In zekere zin hebben we ons al geruime tijd heel dicht in de buurt van een open source-situatie bevonden. Het verschil tussen wat we nu doen en open source had in de meeste gevallen met de licentie te maken. Gelukkig behoren veel van de problemen waarmee we in het verleden werden geconfronteerd nu tot het verleden. Het landschap is een stuk overzichtelijker geworden, en we zijn erop gebrand om op een nog interactievere wijze met de open sourcegemeenschap te werken. Traditioneel hebben we al veel met de open source-gemeenschap samengewerkt, onder meer met java.net, tal van privé-bijdragen en eindeloze hoeveelheden discussies op forums".

Wat weerhield Sun ervan om dit eerder te doen, of bijvoorbeeld pas over vijf jaar?

Gosling: "Een van de grote problemen was - helaas - het juridisch proces waarin we waren verwikkeld, zoals de rechtzaak met Microsoft, maar die ligt nu voldoende in het verleden. De zaken die ons problemen opleverden, zijn verdwenen. Vreemd genoeg was een van de grootste struikelblokken onze visie op het beheer van broncode. Vanuit een pragmatisch, technisch oogpunt gezien zijn open-source-tools zoals CVS (Concurrent Versioning System) niet bijster geschikt voor grootschalige projecten. Intern maakten we gebruik van een tool genaamd Teamware, maar om uiteenlopende redenen leek het geen logische stap om die tool op de markt te brengen. Daarom was een van de belangrijkste veranderingen in het afgelopen jaar de introductie van een nieuwe tool voor broncodebeheer genaamd Mercurial, een feit waar alle engineers erg blij mee zijn geweest."

"We willen een betere dialoog met de ontwikkelaarsgemeenschap... We willen betere relaties met een groot aantal Linux-distributies".

James Gosling Vice-president en Sun Fellow van Sun Microsystems

Wat hoopt Sun te bereiken met het openbaar maken van de broncode van de JDK?

Gosling: "We willen een betere dialoog met de ontwikkelaarsgemeenschap, een relatie die meer op samenwerking is gericht. We willen betere een betere relatie met een groot aantal Linuxdistributies, en veel van de Linux-distributies zijn zeer gevoelig met betrekking tot de licentie die je gebruikt. We willen betere relaties met de open sourcegemeenschap, hetgeen tot een betere distributie zal leiden en het makkelijk voor mensen maakt om met ons samen te werken aan de verdere ontwikkeling van het platform en het toe te passen op nog interessantere manieren en op nog interessantere terreinen".

Wanneer een bedrijf overweegt om haar broncode openbaar te maken, zijn er twee reacties mogelijk. Het ene kamp zal zeggen: "Als Sun de broncode van Java openbaar maakt, zal dat het beste zijn dat het bedrijf is overkomen". Aan de andere kant bestaat er de onvermijdelijke zorg dat andere partijen het intellectueel eigendom eruit zullen vissen en gaan verkopen. Hoe zit het met de compatibiliteit? Zal als gevolg van deze stap in de richting van open sourcing het Java-platform niet simpelweg gefragmenteerd raken?
Gosling: "De broncode wordt openbaar gemaakt, maar het definiëren van de specificatie is nog steeds het domein van het Java Community Process. Daarnaast zijn er enorme testpakketten beschikbaar, waar we een gigantische testslag zullen maken. We verwachten dat mensen die waarde hechten aan betrouwbaarheid en compatibiliteit met de specificatie voor onze versie zullen kiezen. De meeste mensen in de open source-wereld die gebruikmaken van open source-software maken zelf geen builds. Ze downloaden simpelweg de binaries. En we verwachten dus dat medewerkers van grote ondernemingen precies hetzelfde zullen doen. We zullen zeker binaries leveren die een complete en zware kwaliteitscontrole hebben doorstaan en waarvan is vastgesteld dat ze aan alle eisen op het gebied van naleving voldoen. Je hoeft je daarom over fragmentatie geen zorgen maken. We laten jan en alleman niet zomaar om het even welke code inchecken. Net zoals elk ander open source-project zullen we uiteindelijk over een verzameling van regels beschikken met betrekking tot wie gemachtigd is om grote hoeveelheden code in te checken. Alles zal worden gecontroleerd, opnieuw worden gecontroleerd en worden gedebugged."

"De broncode wordt openbaar gemaakt, maar het definiëren van de specificatie is nog steeds het domein van het Java Community Process".

"Waar het nu op neerkomt, is dat Sun de broncode van al haar Java-platformimplementaties openbaar maakt op basis van dezelfde licentie die wordt gebruikt door het besturingssysteem GNU/Linux: de GNU General Public License (GPL) versie 2".

Meer concreet kondigden we het volgende aan:
? Het gebruik van de GPL v2-licentie voor de Java SE (JDK)- en Java ME-implementaties van Sun, en de toevoeging van deze licentie aan de Java EE-implementatie van Sun.
? De eerste openbaarmaking van broncode van de JDK en de Java ME-implementatie van SUN en de introductie van projecten en community's.
? De introductie van een planning voor toekomstige codereleases en het ontwikkelen van community's.

Voor de open-source-onderdelen van JDK hebben we gekozen voor GNU General Public License (GPL) versie 2 voor vrijwel de gehele virtuele machine, en GPL v2 met de Classpath exception voor de class libraries en die onderdelen van de virtuele machine die openbare API?s prijsgeven. In het geval van Java ME besloten we om uitsluitend GPL v2 te gebruiken.

Wat was de achterliggende reden voor deze keuze? En wat is de Classpath exception precies?

Gosling: ?Het leuke van de GPL is dat een zeer gemeenschapsvriendelijke en symmetrische licentie is. Bovendien geniet de licentie een zeer grote populariteit binnen de open sourcegemeenschap. De Classpath exception werd ontwikkeld door de Free Software Foundation op basis van het GNU/Classpath Project. Waar het op neerkomt, is dat het je in staat stelt om een toepassing te koppelen die op basis van een willekeurige licentie beschikbaar is voor een bibliotheek die onderdeel uitmaakt van software die gelicenseerd is op basis van GPL v2, zonder dat deze toepassing op basis van de GPL zelf openbaar moet worden gemaakt.

Dit is een licentieparadigma dat vaak wordt gebruikt in gratis software-gemeenschappen zoals GNU/Classpath en Kaffe voor onderdelen van een implementatie van Java-technologie die de virtuele machine en class library bevat. We hebben er bewust voor gekozen om dezelfde licentiemethode te hanteren, zodat men niet in de verleiding komt om vraagtekens bij onze bedoelingen te stellen met betrekking tot het beschikbaar stellen van de Java SE-implementatie van Sun op basis van een werkelijk gratis en open licentie.?

We hebben de afgelopen weken heel wat gehoord over de OpenJDK Community. Wat is de OpenJDK Community nu eigenlijk precies?

Gosling: ?We hebben de OpenJDK Community opgericht met het oog op de voortdurende ontwikkeling van Suns open source-implementatie van Java SE.

Waar het op neer komt, is dat de OpenJDK Community de plek is waar ontwikkelaars zullen samenkomen om met elkaar te werken aan de open-source codebasis van JDK en verwante projecten. Het OpenJDK-project waarin de open-source codebasis zal "wonen", maakt deel van deze gemeenschap uit. Hier zullen ontwikkelaars in staat zijn om direct invloed uit te oefenen op de JDKimplementatie, met hun collega's deelnemen aan een open gemeenschap en te helpen om het gebruik van Java-technologie naar nieuwe terreinen te verleggen.

Sun ontwikkelt de bestaande JDK Community waar ontwikkelaars de afgelopen twee jaar aan de broncode hebben gewerkt, tot een website waar ontwikkelaars binnen en buiten Sun aan de implementatie kunnen samenwerken. De OpenJDK Community vindt je op http://community.java.net/openjdk.

Welk beheermodel wordt er voor de OpenJDK-projecten gehanteerd?

?We zijn momenteel bezig het met onderzoeken van bestaande beheermodellen binnen de open sourcegemeenschap, maar we willen de nodige tijd uittrekken om een grondige analyse uit te voeren en meer feedback en advies in te winnen voordat we een besluit nemen. Ons plan is om het beheermodel te ontwikkelen tot een model waarbij de open source-gemeenschap is betrokken, met een doelstelling van inclusieve, transparante en op verdienste gebaseerd beheer.?

James Gosling - Het opensourcen van Java

Wat kan een ontwikkelaar direct met onderdelen van het open-source Java SE platform doen?

?Waarschijnlijk het meest nuttige dat je ermee kunt doen, is ernaar kijken en ervan leren. Het lijkt misschien nogal traditioneel, maar ik zeg altijd dat de bron[code] qua documentatie de laatste toevlucht is. We hebben heel hard geprobeerd om over echte documentatie te beschikken. Natuurlijk is iedereen al geruime tijd in staat geweest om de code te raadplegen via het JDK 6-project. Er zullen zeker mensen zijn die louter voor hun eigen doeleinden lokaal onderdelen aan het tweaken zijn. In het verleden heeft een groot aantal academische onderzoekers de code gebruikt voor hun onderzoeksprojecten. Mensen die bijdragen leveren, zullen in staat zijn om hun bijdrage te bouwen en ervoor te zorgen dat alle bijdragen in elkaar passen.?

Hoe denkt u dat deze stap van invloed zal zijn op andere open-source-implementaties van de programmeertaal Java, zoals bijvoorbeeld Apache Harmony of GNU Classpath?

?Dat is moeilijk te voorspellen. In ieder geval zal men in staat zijn om de broncode te doorlopen op elementen die ze in hun projecten kunnen opnemen.

Zeg eens eerlijk: is er iets aan het feit dat Sun nu de broncode van Java openbaar maakt waarover u ?s nachts wakker ligt?

Gosling: ?Weet je, de meeste grote vragen waarvan mensen denken dat ik wakker lig, daar lig ik helemaal niet wakker van. Ik ben behoorlijk tevreden met de manier waarop OpenJDK zich ontwikkelt. Ik ben uiterst tevreden met de manier waarop we omgaan met zaken als kwaliteitscontrole enzovoort. Ik denk wel dat veel mensen een beetje zenuwachtig kunnen zijn dat het Java-platform hierdoor misschien minder betrouwbaar wordt, maar ik denk simpelweg niet dat dit het geval zal zijn, en ik hou er geen slapeloze nachten aan over. Als er iets is waar ik over wakker lig, is het wel het mechanisme van de infrastructuur: het hosten, het vinden van bugs, de dagelijkse beslommeringen, zaken waar alle open source-projecten mee te maken krijgen. Maar ik weet zeker dat alles op zijn pootjes terecht zal komen.?

Op welke manier denkt Sun geld te verdienen met Java-technologieën nu de broncode daarvan eenmaal openbaar is gemaakt?

Gosling: ?Vandaag de dag wordt het meeste geld hoger in de keten verdiend. Geld verdien je met de dienstverlening, met de ondersteuning. We halen een fors deel van onze omzet uit deze gebieden en uit verschillende onderdelen van de technologieën, en dat zal zo blijven. Vanuit financieel oogpunt is het Javaplatform voor al deze bedrijven vanaf het begin gratis geweest. En vanuit dat oogpunt zal het openbaar maken van de code van weinig invloed zijn op onze financiële situatie.

Waarom zou een ontwikkelaar van Java-technologie die aan een open source-project meewerkt willen bijdragen aan Java-broncode?

?Er zijn verschillende soorten van bijdragen. Zo bevatten alle programma?s bugs. En als er een probleem is dat je na aan het hart ligt, kun je het herstellen en de oplossing bijdragen. Dat is een gebied waar in de loop van de jaren tienduizenden bijdragen zijn geleverd. Maar dat brengt ook problemen met zich mee, omdat je door het herstellen van een bug soms tegelijkertijd drie nieuwe bugs in het leven roept. Daarom zullen we uiteindelijk over een mechanisme beschikken waarmee we kunnen garanderen dat de code die mensen inchecken, uitgebreid wordt getest. De andere categorie is het toevoegen van nieuwe functies. Als er een methode ontbreekt in het string-pakket dat je onder geen beding wilt missen, kun je die toevoegen en aan het project bijdragen, zo lang het de beoordelingen van de gemeenschap doorstaat. Er bestaat een traject waarmee het je een dergelijke bijdrage door het gemeenschapsproces heen kunt krijgen. En daarnaast zijn er volledig nieuwe pakketten, vergelijkbaar met wat er met de JCP-expertgroepen gebeurt. Dat zijn allemaal verschillende dingen die je kunt doen.?

Welke kansen denkt u dat dit zal opleveren voor het Java-platform zelf?

?We zullen in staat zijn om ons sneller verder te ontwikkelen, hoewel we momenteel al een verdraaid snelle ontwikkeling doormaken. Weet je, we zijn altijd geïnteresseerd in mensen die Java-technologie op verschillende manieren en in verschillende omgevingen gebruiken. Een van de grootste gebieden waar we zonder meer positief over zijn gestemd, zijn de verschillende Linux-distributies. Omdat we open source zijn, hebben we veel meer kansen om met samen met hen te worden gedistribueerd.?

Lees meer over Sun Microsystems
Ga terug naar We Love IT uitgave #2 - 2007
Advertentie