Java Open Source : c'est fait et c'est en GPL
Comme annoncé par le patron de Sun lors du dernier JavaOne, Java passe bien en Open Source avant la fin de l'année. Jonathan Schwartz a choisi de le faire sous une triple licence, afin de contenter la communauté Linux sans déstabiliser totalement la communauté Java.
Le séisme tant attendu en Californie a finalement eu lieu : Java passe dès aujourd'hui en Open Source. L'annonce était prévue, Jonathan Schwartz, le patron de Sun, mettant à profit chaque apparition en public pour répéter son intention de libérer le code source de Java Standard Edition, autrement dit la plate-forme d'exécution du langage. Ainsi fin octobre, il laissait entendre à Oracle OpenWorld que le code source de Java SE serait disponible « d'ici 30 à 60 jours » sous une licence compatible OSI (l'organisme certifiant le caractère Open Source d'une licence). De même, Rich Green, vice-président en charge du logiciel, avait indiqué peu de temps auparavant que le processus serait incrémental et que « tout Java SE et tout Java ME [seraient] ouverts à la fin du premier trimestre de l'année calendaire 2007 ».
La grande inconnue était donc le type de licence que Sun retiendrait. Ce sera la GPL. Une licence non seulement compatible OSI, mais qui surtout est celle défendue par la Free Software Foundation (FSF), le gardien du temple de l'esprit Libre. Dès aujourd'hui, le Java Development Kit (JDK) devient donc un véritable Logiciel Libre aux yeux de la FSF (toute la plate-forme sera concernée d'ici 6 mois). Sun ne s'est d'ailleurs pas privé de recueillir les réactions extrêmement enthousiastes de Richard Stallman et d'Eben Moglen, auteurs de la GPL, dans des vidéos qui devraient être diffusées dès aujourd'hui.
De même, Mark Shuttleworth, créateur de la distribution Linux Ubuntu, se réjouit dans une vidéo filmée par Sun de ce mouvement, qui permettra de mieux intégrer Java au sein de Linux. Jusqu'à présent, en effet, Linux étant distribué sous GPL, le JDK ne pouvait être livré avec. La sortie en mai dernier d'une licence spécifique du JDK pour Linux, dite DLJ (Distro license for Java), ne faisait que rendre la cohabitation possible. « Avec un Java sous GPL, les JVM [machines virtuelles Java] pourront être optimisées, peut-être intégrées au noyau, note Guillaume Bodet, directeur technique du cabinet de conseil Xebia, spécialisé en Java. On peut même envisager des distributions spécifiques pour Java, comme cela se fait déjà pour la sécurité ou la bureautique, par exemple. »
L'exception Classpath annule caractère viral de la GPL
Toutefois, la GPL présente pour certains projets ce que Simon Phipps, responsable de l'Open Source chez Sun, qualifie de « bug inutile » : son caractère viral impose normalement que tout programme contenant du code sous licence publique générale (GPL) passe ipso facto sous GPL. Ce qui signifierait que des éditeurs ou des SSII développant des applications en Java devraient tout diffuser en GPL, à l'instar de ce qui se pratique dans le monde Linux. C'est ce qui avait conduit Steve Ballmer, le patron de Microsoft, à dénoncer en 2001 Linux comme étant un cancer. Didier Girard, directeur technique de la SSII Sfeir, explique ainsi que « dans le monde Java, les gens se sentent à l'aise avec la licence Apache, elle met en confiance les développeurs comme leurs clients ». A contrario, « la GPL est perçue comme une licence militante, elle amène une crainte dans le monde industriel. Dans la communication qui va entourer l'événement, il ne faut donc pas que Sun oublie de s'adresser aux entreprises pour les rassurer. »
La FSF elle-même a trouvé une parade à ce « bug » militant, lorsqu'elle a lancé le projet Classpath. Il s'agissait de proposer des bibliothèques de classes Java sous licence libre. Mais comme la machine virtuelle et le compilateur de Sun restaient sous licence propriétaire, la FSF a mis au point une « GPL avec exception Classpath », qui indique que lorsque les modules sont indépendants, du code sous GPL avec exception Classpath peut être livré avec du code sous toute licence sans que celle-ci ne soit impactée. Sun a donc pris soin de reprendre à son compte cette exception, Java étant ainsi proposé sous une double licence, GPL et GPL avec exception Classpath.
Sun contrôlera toujours l'appellation Java
Enfin, « comme tout le monde ne souhaite pas travailler en mode ouvert », souligne Simon Phipps, Java SE restera également disponible sous licence commerciale. Il sera donc possible aux partenaires de Sun - tels IBM ou BEA qui ont développé leur propre machine virtuelle - de continuer comme avant ce changement. L'autre possibilité pour eux serait de profiter de cette ouverture pour emmener Java dans la direction où eux veulent aller. Sun estime qu'une telle divergence (ou « fork ») ne devrait pas se produire. D'une part parce qu'il y a des millions de terminaux Java en circulation, et qu'il serait dommageable pour tout le monde que se crée une incompatibilité. D'autre part parce que si l'évolution du JDK se fera au sein d'une communauté ouverte, OpenJDK, le JCP, l'organisme qui définit les spécifications du langage, restera en place. En outre, l'appellation Java reste contrôlée par Sun.
Dans l'ensemble, même si ce changement n'aura qu'une incidence limitée sur le travail au quotidien des développeurs, l'annonce paraît positive. « L'initiative de Sun est très bonne, commente par exemple Didier Girard. Il s'agit d'un véritable passage en Open Source, avec libération du code, publication sur des serveurs et objectif de création d'une communauté. Au-delà du passage du code en Open Source, on sent que Sun souhaite créer une dynamique communautaire autour d'OpenJDK. Je trouve que c'est très positif. » Il n'empêche, estime Michael Goulde, analyste chez Forrester, Sun va devoir fournir de gros efforts d'explication, tant sur la licence que sur le périmètre de ce qui est ouvert : « Je ne pense pas qu'ils se rendent compte de la confusion sur le marché. »