Google n'utilisera plus les API Java d'Oracle pour le prochain Android

Raisons techniques ou juridiques, au choix 97
image dediée
OS

Google travaille actuellement sur un remplacement de ses API Java. Selon l’éditeur, la prochaine version majeure d’Android, simplement baptisée « N » pour l’instant, se baserait sur l’implémentation OpenJDK pour simplifier le travail des développeurs. Cependant, les retombées juridiques pourraient avoir été un puissant moteur de cette décision.

C’est par un « commit » dans le code d’Android que certains ont remarqué que 8 092 fichiers avaient été modifiés et faisaient clairement référence à OpenJDK, l’implémentation libre de Java proposée par Oracle. Rappelons que ce dernier a racheté Sun en janvier 2010, récupérant du même coup la technologie Java. Or, il y a deux implémentations : OpenJDK, qui constitue le socle open source, et Oracle JDK, son implémentation commerciale, considérée comme plus stable.

Interrogée par Venture Beat, Google a confirmé qu’une transition vers OpenJDK était bien en cours. Pour la société de Mountain View, les développeurs devraient voir leur travail simplifié, puisqu’il n’y aurait alors plus qu’une seule base de code pour l’ensemble des API. Par ailleurs, l’éditeur a affirmé que l’arrivée de la version commerciale Java 8 et de ses multiples améliorations était une grande motivation pour se tourner vers OpenJDK et s’y investir. En clair, le mouvement de Google serait fait pour le confort et le bonheur des développeurs.

Google, Oracle et un long procès autour de la propriété intellectuelle

Seulement voilà, ceux qui connaissent l’histoire de Java savent qu'elle a été marquée par une tension juridique intense entre Google et Oracle. Dès 2010, ce dernier avait déposé une plainte pour violation de copyright sur un lot de 37 API de Java, utilisées directement par Google pour concevoir sa machine virtuelle Dalvik, au cœur d'Android jusqu'à fin 2014. Le géant de la recherche avait nié dans un premier temps cette violation, avant de la reconnaître en partie. Mais un premier juge avait déclaré en 2012 que ces API ne pouvaient en effet pas être protégées par le copyright, car Google n'avait finalement que gardé les noms des méthodes, tout en changeant la quasi-totalité du reste.

Après coup, la course des évènements s’est cependant inversée pour Google. En 2014, une cour fédérale d’appel a déclaré en effet que les API de Java pouvaient être « copyrightées » et qu’Oracle était donc parfaitement en mesure de réclamer des royalties à Google pour les avoir utilisées. Depuis, et alors que la Cour Suprême a refusé de s'occuper de cette affaire, Google essaie de faire valoir que même si Dalvik utilise des technologies reconnues comme protégées, il s’agit d’un cas typique de « fair use ». Autrement dit, ces technologies sont si répandues qu’Oracle ne devrait pas en réclamer autre chose qu’une somme symbolique. Une décision qui pourrait faire jurisprudence sur l’utilisation des API en général.

Dalvik dans un premier temps, les API dans un second

La machine Dalvik avait été faite initialement pour permettre la création rapide d’applications via un langage de haut niveau. Parallèlement, Google l'avait proposée pour disposer d’une machine virtuelle Java qui serait orientée vers l’univers mobile et ses contraintes propres. Après tout, un smartphone n’a pas la puissance d’un PC ou d’un Mac, et les premiers terminaux mobiles sous Android n’avaient clairement pas les performances de ceux d’aujourd’hui.

Avec Android 5.0, Google s'est pourtant débarrassé de Dalvik, pour la remplacer par une nouvelle machine virtuelle, cette fois totalement réalisée en interne : Android Runtime, ou ART. Ce dernier apportait notamment plusieurs avantages techniques, en particulier la compilation ahead-of-time pour améliorer les performances, jugées précédemment médiocres. Elle avait également le mérite de ne plus pouvoir être attaquée sur le terrain de la propriété intellectuelle. Cela étant, ce changement ne réglait pas toute la question.

Le travail continue en attendant la présentation d'Android 7.0

Google travaille donc depuis plusieurs années au remplacement de tous les éléments « incriminés » de Java. Mais si cette bascule progressive pourrait soulager la pression juridique, cela ne résoudra pas tout le problème : seul Android 7.0 et les versions ultérieures bénéficieront de la nouvelle implémentation OpenJDK, laissant toutes les autres moutures avec les anciennes API. Le combat contre Oracle s’appliquerait donc toujours pleinement, surtout quand on connait la vitesse de mise à jour des smartphones Android vers une nouvelle version majeure du système.

Le travail va donc continuer sur les changements de code. Android 7.0 ne devrait de toute façon pas être présenté avant plusieurs mois, pour une arrivée de la version finale à l’automne, comme d’habitude. Il n’est pas dit non plus que les applications actuelles puissent fonctionner correctement sans le moindre changement, mais Google devrait communiquer sur ce point le cas échéant.

Publiée le 04/01/2016 à 17:50
Vincent Hermann

Rédacteur/journaliste spécialisé dans le logiciel et en particulier les systèmes d'exploitation. Ne se déplace jamais sans son épée.

Soutenez nos journalistes

Le travail et l'indépendance de la rédaction dépendent avant tout du soutien de nos lecteurs.

Abonnez-vous
À partir de 0,99 €


chargement
Chargement des commentaires...