Java et logiciel libre
Java est partiellement libre et open source (depuis le voir plus loin), et sa licence a permis l'éclosion d'un grand nombre d'outils libres dans les domaines les plus variés.
Discussion sur la licence de Java
Licence no 1
La licence de Java (Sun Community Sourced License - SCSL) permet :
- L'acquisition gratuite sur le site de Sun de la JRE (machine virtuelle accompagnée des bibliothèques de base) ;
- La redistribution gratuite de la JRE si elle accompagne une application écrite en Java à destination d'un ordinateur de bureau ou serveur à usage général, sont donc soumis à royalties les machines spécialisées pour un seul usage (comme les téléphones, les consoles de jeu, les voitures etc.) ce que l'on appelle « logiciel embarqué ».
La licence Java ne permet pas :
- La décompilation, la modification de la plate-forme Java.
Cette licence ne permet pas de considérer la technologie Java comme libre. Elle permet en revanche de créer des outils, des logiciels et des bibliothèques libres écrites en Java.
Un organisme indépendant, le JCP, permet de faire normaliser ces outils, afin d'unifier l'effort de développement et d'aider la promotion de ces outils.
De nombreuses voix s'élèvent depuis le début de 2004 pour que Sun libère le code de Java. La demande initiale vient d'IBM, suivie de personnalités du monde du logiciel libre, comme Eric Raymond.
Depuis mars 2005, Sun a introduit de nouvelles licences pour Java, augmentant son ouverture, sans toutefois devenir open-source :
- Java Internal User License (JIUL), destinée aux déploiements internes ;
- Java Distribution License (JDL), permettant de distribuer pleinement Java ;
- Java Research License (JRL), dans un but d'évaluation et d'usage non-commercial. Cette licence permet également de consulter le code source de Java.
De plus, Sun propose de contribuer au développement de la prochaine version de Java (Mustang) sur cette page.
Comme indiqué ci-dessous, Sun devrait libérer Java durant l'année 2006.
La politique de Sun
La politique de Sun vise à conserver le contrôle sur l'évolution de Java, ce qui explique son refus de placer la JVM et le compilateur Java en open-source.
Sun a placé par le passé la technologie Jini, basée sur Java, sous une licence que Sun prétendait open-source. Ceci était toutefois remis en cause, notamment par Linus Torvalds (cf. Il était une fois Linux).
Toutefois, après avoir placé NetBeans en open-source en juin 2000, on assiste à une évolution de Sun, qui a placé des éléments des packages Java en open- source lors de la conférence JavaOne 2004 :
- Java3D ;
- Les extensions pour JFC permettant de définir une interface graphique complète dans un fichier XML (XUI), JDNC (Java Desktop Network Components) et JDIC (Desktop Integration Components) ;
- L'interface graphique en 3D pour Linux Looking Glass.
D'une manière générale, on peut noter un engagement plus fort de Sun envers le logiciel libre depuis quelque temps :
- Lancement d'une distribution Linux propre (Java Desktop System) ;
- OpenOffice.org ;
- Lancement de java.net, le site communautaire comprenant le wiki Javapedia, inspiré par Wikipédia.
Début 2005, Sun a annoncé la création d'une nouvelle licence libre, appelée Common Development and Distribution License (CDDL). Cette licence servira à la publication d'un grand nombre de logiciels, parmi lesquels Solaris, dans sa version OpenSolaris, ainsi que Java Enterprise System et Java Desktop System. Il est possible (ce qui veut dire que cela a été évoqué) que l'intégralité du catalogue logiciel de Sun soit publié sous cette licence, ce qui inclurait donc la plate-forme Java.
En juin 2005, Sun a annoncé le lancement d'un projet open-source pour créer la prochaine version de Java System Application Server dans sa version destinée aux développeurs, sous le nom de projet GlassFish, ainsi que de sa spécification de bus d'intégration Java, JBI.
En 2006, Sun a décidé de libérer l'intégralité de ses outils de développement, y compris ceux pour Java, à savoir Java Studio Creator et Java Studio Enterprise (NetBeans était déjà libre).
De plus, durant son discours d'ouverture de la conférence JavaOne le 16 mai, le nouveau CEO de Sun, Jonathan Schwartz, a indiqué qu'il avait l'intention de rendre Java libre.
Le , Sun met le cœur de la technologie Java, le JDK (la JRE - JVM et bibliothèques - et les outils de développement, dont le compilateur javac) sous licence GPL version 2, ainsi que du framework Java ME. L'implémentation Sun de Java EE (GlassFish), déjà sous licence libre CDDL se voit rajouter également la licence GPL. Ce changement met donc fin à l'aspect propriétaire de Java, qui devient finalement un logiciel libre.
Le , Sun annonce que Java est désormais totalement en Open Source dans le projet OpenJDK.
Implémentations libres de Java
La Free Software Foundation a été la première à tenter de créer des éléments d'une implémentation libre de Java, à travers deux projets distincts :
- GNU Classpath, une implémentation libre des bibliothèques Core de Java ;
- GCJ, une extension du compilateur GCC permettant de compiler du code Java.
Au mois de mai 2005, la fondation Apache a annoncé le lancement du projet Harmony, visant à créer un environnement Java libre complet, avec compilateur, JVM et bibliothèques Core. Le projet vise la compatibilité J2SE.
D'autres éléments de l'environnement Java ont été implémentés dans une version libre :
- Kaffe, une machine virtuelle ;
- Black-down, une machine virtuelle ;
- Jikes, un compilateur ;
- Jikes RVM, une machine virtuelle ;
- SableVM, une machine virtuelle.
Outils Java libres
Les outils libres pour Java appartiennent essentiellement à quatre catégories :
- Outils de développement ;
- Serveurs ;
- Bibliothèques ;
Notes et références
Voir aussi
Liens externes
- (en) Lettre ouverte d'Eric Raymond pour la libération de Java
- (en) Un site qui recense tous les projets open-source autour de Java
Article publié sur Wikimonde Plus
- Portail de la programmation informatique
- Portail des logiciels libres
