Ontwikkelaarscongres JavaOne stond dit jaar in het teken van Suns inspanningen Java weer cool en populair te maken. Java is nu open source en JavaFX moet de concurrentie aangaan met Flash en Microsofts Silverlight. Is het te laat en te weinig?
Java-uitvinder James Gosling wil het niet accepteren. “Java op de client is een rare wereld”, zegt Gosling. “Als je mobiele apparaten meerekent is Java heel gezond. Op het internet zijn Java-applicaties relatief moeilijk te vinden, maar binnen bedrijven en zakelijke toepassingen is Java op de desktop goed vertegenwoordigd.”
Op de desktop en in de browser heeft Java echter de boot gemist. Halverwege de jaren negentig leek Sun beide markten te kunnen veroveren. Internetpaus Marc Andreessen had Java in 1994 zijn zegen gegeven. “Wat deze jongens doen is absoluut nieuw”, zei de Netscape-oprichter. “Geweldig spul.”
IBM, Netscape en andere bedrijven steunden Java als alternatief voor Microsoft. Suns ceo Scott McNealy positioneerde Java als een “write once, run anywhere” platform. Microsoft wilde Java graag als programmeertaal op de desktop gebruiken, maar had geen boodschap aan Suns platformvisie en optimaliseerde delen van Java voor zijn eigen platform. Sun sleepte Microsoft voor de rechter wegens schending van de licentievoorwaarden. Micro-soft verloor en moest 20 miljoen dollar schadevergoeding betalen. Java verdween uit Windows. Java applets waren sindsdien alleen nog met onhandige plugins te gebruiken. Microsoft introduceerde met veel succes zijn eigen Java-alternatief C#. In de browser legden Java applets het af tegen DHTML en later Flash. De topzware webapplicaties waren een decennium te vroeg. Sun leverde ook geen behoorlijke GUI-tools waardoor Java applets bijna altijd zeer primitief en onbetrouwbaar overkwamen.
Voor webapplicaties schakelden ontwikkelaars deze eeuw over op open source-alternatieven PHP, Perl, Python en Ruby, soms met hulp van AJAX voor de GUI. “Java is een dinosaurus”, zei Peter Yared, een voormalige technische manager bij Sun, tegen BusinessWeek in het artikel ‘Java? It’s so nineties’ dat eind 2005 verscheen. Yareds startup ActiveGrid baseert zijn producten op de LAMP-bundel. Marc Andreessen zei in dezelfde periode dat Java inmiddels net zo moeilijk is te leren als C++. PHP is volgens hem als ontwikkelomgeving nu veel gebruiksvriendelijker. Voor zijn nieuwe startup Ning.com gebruikte Andreessen Java in de basis, maar ‘praktisch alles wat je ziet is in PHP’. Zelfs IBM schaarde zich achter PHP en riep Sun op Java open source te maken om de steun van de opensource gemeenschap terug te winnen. Sun wuifde dat idee in 2004 nog verontwaardigd weg. Scott McNealy zei dat jaar op JavaOne dat IBM jaloers was en probeerde de controle over Java over te nemen. Suns topman daagde IBM uit hun eigen software open source te maken. Ook Jonathan Schwartz was toen nog tegen open source Java. De GPL-licentie moedigde volgens Schwartz afsplitsingen aan. Open source onder GPL zou de eenheid van Java bedreigen. Suns softwarehoofd verdedigde als alternatief Suns eigen CDDL (Community Development and Distribution License), een variant van de Mozilla Public License (MPL).
Niet één blije familie
Ruim een jaar geleden namen softwaremannen Jonathan Schwartz en Rich Green het roer bij Sun over van Scott McNealy. Schwartz kondigde bijna onmiddellijk aan Java open source te zullen maken. Solaris was al open source onder CDDL. Rich Green liet dit jaar op JavaOne doorschemeren dat Sun het besturingssysteem een rol voorbij de server wil geven, onder andere op mobiel. “De wereld is verdeeld in twee kampen”, zegt Schwartz. “Enerzijds bedrijven die kunnen en willen betalen voor technologie. Anderzijds mensen die niet willen betalen voor software om economische of culturele redenen of omdat hun bedrijf het gewoon niet nodig heeft. Onze economische motivatie is achter de eerste groep aan te gaan. Ons technologische doel is achter de tweede groep aan te gaan, omdat die bijna per definitie vijftigduizend keer zo groot is. Volume bepaalt de marktkansen voor iedereen.”
Zakelijke toepassingen verdwenen op deze JavaOne naar de achtergrond. “Het is niet waar dat we hier vooral zakelijke ontwikkelaars hebben”, zegt Jonathan Schwartz. “We hebben enquêtes gedaan. We hebben hier een grote diversiteit in ontwikkelaars die toegang tot mensen willen. Rich corrigeert me steeds als ik ‘consumenten’ zeg. Het gaat om ‘mensen’.” Schwartz wil: “Java’s rechtmatige plaats op het consumenteninternet herstellen.”
Suns relatie met Microsoft zou daarin geen rol van betekenis meer spelen. “We zien niet veel vraag naar Vista onder tieners”, zegt Schwartz. “Vista is een zakelijke desktop. Ons doel is de grootste groep gebruikers in de markt te bereiken en de grootste groep gebruikers draait geen Windows meer. We zien steeds meer contenteigenaren gebruikmaken van Java op mobiele telefoons, kabelboxen en andere apparaten. Buiten bedrijven om is nu veel meer diversiteit.”
James Gosling zegt nu dat hij altijd voor het open source maken van Java heeft gepleit. “Alle discussies draaiden om de combinatie van de licenties en garanties voor interoperabiliteit en consistentie”, zegt Gosling. “Er was absoluut nervositeit. We wisten dat sommige mensen het zouden doen. Microsoft splitste daadwerkelijk een ontwikkelversie af. De wereld is nu totaal anders. Java is veel meer gevestigd. Dat maakt het voor mensen erg moeilijk om zich te misdragen.”
Een van de factoren die het proces lang ophielden was de keuze van de licentie. “Mensen praten graag over open source alsof het één blije familie is”, zegt Gosling, “maar het Apache-kamp haat de GPL en het GPL-kamp haat de Apache-licentie. Na een lange analyse besloten we dat de GPL toch de meest gemeenschapsvriendelijke licentie was, maar de Apache-mensen nemen het ons nog steeds kwalijk. We zoeken geen ruzie. Het is gewoon onmogelijk iedereen blij te maken.”
Defensive actie
De Apache Software Foundation is niet blij omdat de GPL zijn Harmony-project in de wielen rijdt. Harmony zou een open sourceversie van Java SE worden, maar onder de Apache-licentie. De GPL bepaalt dat alle wijzigingen in de code ook onder de GPL vallen. Dat maakt bedrijfseigen varianten onmogelijk. Om dezelfde reden maakt ook IBM bezwaar tegen Suns keuze voor GPL. IBM promoot het open source raamwerk Eclipse, dat volgens Jonathan Schwartz Java-ontwikkelaars aan IBM’s WebSphere verbindt.
Java open source maken lijkt dus deels een defensieve actie tegen Harmony en Eclipse. De andere grote aankondiging van JavaOne was een halfbakken reactie op de plannen van Adobe met Flash Flex en Microsoft met Silverlight. JavaFX moet een serie laagdrempelige producten worden waarmee consumenten en creatievelingen geanimeerde webinterfaces kunnen ontwikkelen, maar Sun kon op JavaOne alleen JavaFX Mobile presenteren en dat was gebaseerd op pas overgenomen technologie van SavaJe.
JavaFX Script is nog niet af. Wanneer de ontwikkeltools beschikbaar komen is nog niet bekend. In essentie lijkt JavaFX Script een scripttaal voor bestaande GUI-libraries van Swing en Java2D/3D. De taal zou alleen zijn te gebruiken met NetBeans en daarmee een manier zijn om ontwikkelaars aan Sun te verbinden. Als alternatief voor Flash of Silverlight is JavaFX niet erg geloofwaardig zolang het de topzware Java Runtime Environment (JRE) vereist. Sun onderkent dit probleem en werkt aan een uitgeklede ‘Java Kernel’ van 2 tot 4 Mb, maar wanneer die precies verschijnt is onbekend.
Waarom kwam Sun op JavaOne niet met een rechtstreeks antwoord op PHP, Perl, Python en Ruby? “Al die scripttalen richten zich op het genereren van webpagina’s”, zegt James Gosling. “Dat is een groot deel van de markt, maar moeten we daar nog een scripttaal voor uitvinden? Dat lijkt mij niet. Je kunt al die talen prima hosten op Java Virtual Machine (JVM). We hebben JRuby, dat sneller is dan de oorspronkelijke Ruby. Dan heb je het beste van beide werelden.”