Java a 20 ans. C'est en 1995 que la première version du langage de programmation, originellement conçu par James Gosling, a été livrée par Sun Microsystems. Depuis le rachat de la société californienne début 2010, c'est Oracle qui assure la gouvernance du langage. Les évolutions se poursuivent et Java 9 est attendu pour septembre prochain, apportant entre autres nouveautés une modularité et un système de connexion commun pour tous les composants JVM (Java Virtual Machine).
Arrivé dans un paysage pré-Internet très différent de celui d'aujourd'hui, Java compte toujours parmi la palette d'outils des développeurs. Par comparaison, certains des langages qu'il a côtoyés au milieu des années 90, comme Delphi ou Perl, se cantonnent maintenant à certaines tâches spécifiques. Pour Mark Reinhold, architecte en chef chez Oracle sur la plateforme Java, ses « valeurs fondamentales » sont sa lisibilité et sa simplicité. Il est difficile de trouver un langage qui soit exploité dans autant de domaines différents de l'industrie informatique. Oracle estime qu'il est utilisé par plus de 9 millions de développeurs et sur plus de 7 milliards de terminaux. On le trouve tout aussi bien sur les smartphones qu'au sein des architectures de cloud computing. Google utilise le langage pour ses programmes tournant sur les terminaux mobiles sous Android ce qui, au passage, a donné lieu à un procès à rebondissements. Et à l'autre bout du spectre, le framework MapReduce de la plateforme Hadoop recourt à du code Java pour traiter des pétaoctets de données.
Oracle fête les vingt ans de Java. (crédit : flickr/Scott Schram)
Une compatibilité à long terme
Selon Mark Reinhold, Java est jugé très lisible par les développeurs comparé au code souvent plus dense que l'on obtient avec des langages comme C++ ou Perl. « Il est assez facile de lire du code Java et de comprendre ce qu'il fait », indique-t-il. C'est précieux pour un langage de programmation utilisé pour concevoir des programmes d'entreprise. En présence de logiciels complexes, il faut pouvoir comprendre du code qui peut avoir été écrit plusieurs mois ou plusieurs années auparavant. Avec le temps, le principal coût d'un code réside dans sa maintenance et pas dans sa conception initiale, rappelle l'architecte en chef de la plateforme.
Ce qui a également joué en faveur de Java, c'est sa capacité transplateforme qui lui permet de pouvoir fonctionner n'importe où à partir du même code, exécuté dans la JVM, la machine virtuelle Java. On peut développer un programme sur un PC sous Windows puis le faire tourner sur un serveur sous Linux ou Solaris sans recompiler le code. Oracle (et avant lui Sun) est également soucieux de sa compatibilité à long terme. « A chaque fois que nous livrons une mise à jour, l'ensemble de l'écosystème s'engage à ce que les anciennes applications continuent de fonctionner », pointe Mark Reinhold.
Java 9, subdivisé en modules
Pour l'analyste Al Hilwa, du cabinet IDC, c'est ce support à long terme et son « évolution méthodique » qui confère au langage sa résistance. Dans un mail à nos confrères d'IDG News Services, il souligne aussi que l'utilisation de Java dans Android a assurément participé à sa longévité en contribuant à en faire une compétence utile. Et la gouvernance d'Oracle ces dernières années a également aidé. « La maturité de la technologie ne devrait pas être sous-estimée, notamment lorsqu'on la compare avec les nombreux langages dynamiques qui sont devenus populaires ces dernières années mais qui n'ont pas atteint le taux d'adoption de Java ».
Oracle continue à faire évoluer le langage avec ces objectifs en tête. Ainsi, pour la prochaine version, Java 9, attendue pour septembre 2016, les concepteurs du langage le réorganisent sur la base d'une architecture modulaire. L'idée, c'est de l'adapter davantage aux terminaux de petits formats qui arrivent avec l'Internet des objets. L'intention est de le subdiviser en modules pour que les développeurs puissent choisir ce qu'ils pourront utiliser dans leurs différentes applications, explique Mark Reinhold. La communauté est invitée à commenter les orientations.
A vingt ans, on gagne en maturité, mais on est loin d'être parfait. Au fil des mois, Oracle a dû très régulièrement livrer des mises à jour de sécurité, quelquefois en urgence pour corriger des vulnérabilités dans Java.