Java : Oracle sur le point de donner le coup de grâce au projet Harmony
Utilisé par Google dans le SDK d'Android ?

Le , par Idelways, Expert éminent sénior
Mise à jour du 18/10/2010

Oracle aurait annoncé, lors d'une réunion réunissant les leaders des sociétés qui supportent Java, qu'il ne comptait pas céder de licence au projet Apache Harmony, l'implémentation open-source du langage.

Cette rencontre, qui a eu lieu à Bonn les 5 et le 6 Octobre dernier, a été marquée par l'annonce de la collaboartion d'IBM avec Oracle sur l'OpenJDK. Une des interprétations de cette nouvelle était que Oracle tentait ainsi de mettre fin au projet Harmony, dont Big-Blue était jusque là le plus gros contributeurs avec 9 membres (lire ci-avant).

Cette fuite semble renforcer cette thèse. Oracle, par la voie de son PDG Larry Ellison, aurait ainsi estimé qu'offrir une licence au projet Harmony serait préjudiciable à l'avenir de Java, sens préciser le pourquoi du comment.

Néanmoins, le motif d'un refus aussi catégorique semble en relation avec le litige qui oppose sa société à Google sur Android. L'OS mobile qui utilise justement un sous-ensemble du projet Harmony.

Le géant des applications professionnelles et des serveurs souhaiterait en effet imposer Java Mobile Edition (Java ME) pour les développements mobiles à la place du projet Harmony (et de ses dérivés, dont Android) qui repose, lui, sur l'édition standard de Java (Java SE).

Ironiquement, trois ans en arrière, Oracle travaillait main dans la main avec le Java Community Process (JCP) pour que Harmony soit testé et certifié compatible avec le standard officiel... détenu à l'époque par Sun.

Mais la présence de code propriétaire dans les tests de compatibilité empêcherait, selon la fondation Apache, le projet Harmony d'être certifié.

IBM a longtemps milité pour que Sun (puis Oracle) libèrent les Java Test Compatibly Kits (TCKs), le seul composant de Java, avec Java FX non-disponible sous licence open-source.

En vain.

Selon les dernières rumeurs, qu'accrédite l'accord public avec Oracle, IBM aurait donc décidé d'abandonner le projet Harmony contre une licence permanente sur Java. Sa licence actuelle de 10 ans arrivant à échéance en 2015.

Le coup de grâce pour le projet Harmony ?

Et vous ?

Qu'en pensez-vous ?
Le projet Harmony survivra-t-il a ces mauvaises nouvelles ?

En collaboration avec Gordon Fowler


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de berceker united berceker united - Expert confirmé https://www.developpez.com
le 18/10/2010 à 12:24
Je m'y connais pas trop dans le domaine de Java mais j'ai l'impression que toutes ces histoires donne du champs à Google et Microsoft. Le temps qu'Oracle rationalise ses affaires les autres peuvent avancer leur pions.
Avatar de Uther Uther - Expert éminent https://www.developpez.com
le 18/10/2010 à 13:51
Citation Envoyé par ymajoros Voir le message
Quitte à ne pas aller dans le sens de beaucoup d'autres, je trouve pour ma part que les contributions apache au monde java ne sont pas le must. Leur qualité est variable et le tout manque de cohérence. Certaines sont à mon avis carrément à éviter.
J’apprécierais beaucoup que tu détailles ce qui ne te plait pas dans ce qu'à fait Apache.
Parceque la contribution d'Apache à Java est juste énorme et très diverse :
- Le projet Harmony (plateforme Java quasiment complète)
- Tomcat
- Les bibliothèques très nombreuse aux objectifs variés (commons, poi, xerces, httpcomponents, pivot, derby...) dont certaines ont su se rendre indispensables
- Les outils comme Ant ou Maven qui on aussi su s'imposer comme standard.

et j'en oublie certainement.

Citation Envoyé par berceker united Voir le message
Je m'y connais pas trop dans le domaine de Java mais j'ai l'impression que toute ces histoires donne du champs à Google et Microsoft. Le temps qu'Oracle rationalise ses affaires les autres peuvent avancer leur pions.
A mon avis c'est tout le contraire :

Microsoft aurait pu éventuellement jouer sur les incertitudes sur l’avenir de Java suite au rachat par Oracle, mais maintenant que l'OpenJDK à le soutient d'IBM, il est au contraire renforcé.

Quant à Google, c'est clairement le grand perdant de l'histoire (avec le projet Harmony) vu que Harmony, qui sert de base au SDK d'Android, perd son premier contributeur : IBM.
Google a certainement les moyens de continuer le développement du SDK Androïd seul, mais la prise en main du développement d'une plateforme Java n'est clairement pas une mince affaire et il est fort probable que les futures évolutions du SDK Androïd ne profiteront pas à Harmony.
Avatar de kedare kedare - Membre expérimenté https://www.developpez.com
le 18/10/2010 à 15:59
Mais au final Apache Harmony et OpenJDK tentent de faire la même chose non ?
Pourquoi Google ne va pas utiliser OpenJDK a la place d'Harmony ?
Avatar de lequebecois79 lequebecois79 - Membre confirmé https://www.developpez.com
le 18/10/2010 à 16:34
bien content que les deux grand de java se réunissent autour d'openjdk
ce qui ne peut que contribuer à un meilleur développement.

il y aura moins de ressources gaspillées.
Avatar de Uther Uther - Expert éminent https://www.developpez.com
le 18/10/2010 à 16:49
Mais au final Apache Harmony et OpenJDK tentent de faire la même chose non ?
Plus ou moins, les deux en effet visent à implémenter fidèlement les spécifications Java.

La grosse différence entre les jeux projets vient de la licence:
- OpenJDK est sous GPL avec classpath exception, ce qui permet à oracle/sun d'en garder un relatif contrôle
- Harmony est sous une licence Apache bien plus permissive, ce qui permet à google d'en faire quasiment tout ce qu'il veut, même de rendre son SDK propriétaire, si un jour il le souhaite.

Le problème d'Harmony(qui fait qu'IBM lâche l'éponge) vient du fait que Oracle refuse de lui fournir le TCK qui permet d'être validé en tant qu'implémentation Java officiellement conforme.
Avatar de Traroth2 Traroth2 - Membre chevronné https://www.developpez.com
le 18/10/2010 à 16:54
Citation Envoyé par kedare Voir le message
Mais au final Apache Harmony et OpenJDK tentent de faire la même chose non ?
Pourquoi Google ne va pas utiliser OpenJDK a la place d'Harmony ?
Très juste. La différence principale, c'est la licence. Si Harmony disparait, Google devra se tourner ailleurs pour son code. L'utilisation d'OpenJDK serait un aveu qu'Android, c'est bien Java...
Avatar de nu_tango nu_tango - Membre averti https://www.developpez.com
le 18/10/2010 à 16:56

Envoyé par ymajoros Voir le message
Quitte à ne pas aller dans le sens de beaucoup d'autres, je trouve pour ma part que les contributions apache au monde java ne sont pas le must. Leur qualité est variable et le tout manque de cohérence. Certaines sont à mon avis carrément à éviter.
J’apprécierais beaucoup que tu détailles ce qui ne te plait pas dans ce qu'à fait Apache.
Parceque la contribution d'Apache à Java est juste énorme et très diverse :
- Le projet Harmony (plateforme Java quasiment complète)
- Tomcat
- Les bibliothèques très nombreuse aux objectifs variés (commons, poi, xerces, httpcomponents, pivot, derby...) dont certaines ont su se rendre indispensables
- Les outils comme Ant ou Maven qui on aussi su s'imposer comme standard.

et j'en oublie certainement.
Oui tu oublies Struts, Lucene, Axis, SpamAssassin, etc.

IBM étant bien content de pouvoir renouveler sa licence d'exploitation de java sans bourse délier...
Avatar de kedare kedare - Membre expérimenté https://www.developpez.com
le 18/10/2010 à 20:40
Citation Envoyé par Traroth2 Voir le message
Très juste. La différence principale, c'est la licence. Si Harmony disparait, Google devra se tourner ailleurs pour son code. L'utilisation d'OpenJDK serait un aveu qu'Android, c'est bien Java...
Se tourner vers quoi par exemple ?
Avatar de Uther Uther - Expert éminent https://www.developpez.com
le 19/10/2010 à 2:18
Google ne peut pas se tourner ailleurs.

Il devra s'occuper de son JDK tout seul. Je ne pense pas que ça lui pose tant de problèmes que ça. Google a tout à fait les moyens et les compétences pour s'occuper de son SDK tout seul. D'ailleurs toute les classes qui l'itéréssaient de l'API Java d'Harmony ont été récupérées depuis longtemps et ça fait un moment qu'il fait progresser lui même la DavlikVM.

Et comme la compatibilité Java n'a jamais été un objectif d'Android (contrairement à Harmony) le refus du TCK de la part d'Oracle ne pose pas de problème. La Machine virtuelle des android est une "DavlikVM" et non pas une JVM tout comme l'API Android, qui même si elle a un certain nombre d'objet commun n'est absolument pas une API Java standard.
Avatar de ymajoros ymajoros - Membre habitué https://www.developpez.com
le 19/10/2010 à 9:45
Citation Envoyé par Uther Voir le message
J’apprécierais beaucoup que tu détailles ce qui ne te plait pas dans ce qu'à fait Apache.
Parceque la contribution d'Apache à Java est juste énorme et très diverse :
- Le projet Harmony (plateforme Java quasiment complète)
- Tomcat
- Les bibliothèques très nombreuse aux objectifs variés (commons, poi, xerces, httpcomponents, pivot, derby...) dont certaines ont su se rendre indispensables
- Les outils comme Ant ou Maven qui on aussi su s'imposer comme standard.
Diverse, c'est bien le mot.

Je trouve certains projets inutiles depuis des années, voire contre-productifs. Par ex. commons logging, qui n'apporte rien au-dessus de java.util.logging, sinon de n'être pas standard et d'induire des dépendances.

Certains autres sont une collection d'antipatterns. Ex. : l'utilisation de beanutils est généralement selon moi la meilleure manière de lier des fonctionnalités d'une application à des détails d'implémentation. Changer un nom de champ dans une classe a des répercussions inattendues. On casse les principes de design les plus importants.

Dans de nombreux projets apache, il n'y a peu de cohérence d'un projet à l'autre et au sein d'un projet. Ainsi, certaines sources sont truffées de gestion d'exceptions hasardeuse : blocs try/catch avec rien dans le catch (ou just affichage et on continue), ...

Ce qui me dérange le plus, c'est souvent le manque de spécifications derrière les implémentations (commons, struts, ...). Ces librairies sont souvent présentées comme simplifiant le développement ; c'est selon moi la meilleure façon de s'assurer d'avoir du code hasardeux.

Attention, je dis bien que je trouve que la qualité est variable. Cela signifie pour moi qu'il y a de très mauvais projets... comme de très bons. Aussi, je ne parle que des projets Java. J'apprécie beaucoup lutece ou derby, même si je n'ai eu que très peu l'occasion de les utiliser.

Je n'avais pas cité mes arguments pour éviter le débat dans ce forum. Je suis conscient que mes arguments risquent de ne pas être partagés. Si quelqu'un veut en discuter, je propose d'ouvrir un nouveau fil de discussion pour ne pas encombrer celui-ci.
Contacter le responsable de la rubrique Accueil