La particularité de Java est avant tout sa portabilité
Avant de parler de son avenir, faisons un petit rappel de ce qu'est Java (qui n'a  rien à voir avec JavaScript). Derrière ce mot qui signifie "café" aux USA, se cachent :

  • un langage de programmation 100% objet, assez proche syntaxiquement du C++

  • une bibliothèque de fonctions (API), permettant de simplifier le travail des développeurs

  • un environnement d'exécution, appelé machine virtuelle (Java Virtual Machine), dans lequel fonctionnent les programmes écrits en code Java

Machine virtuelle java 51x108 Actuellement, le langage et l'API Java sont en version 1.5, également appelés Java 5.

La particularité de Java vis-à-vis des langages classiques comme le C++ est donc la présence de la JVM, une machine virtuelle faisant l'interface entre le programme et le système d'exploitation.

Le gros atout de cette couche d'abstraction est qu'un même programme peut fonctionner sous Windows, Linux, ou MacOS. De plus, une JVM spécifique aux appareils mobiles permet également de faire tourner ces programmes sur les téléphones et assistants numériques personnels (PDA).


Encore plus de café sur nos bureaux
Jusqu'à aujourd'hui, Java était un langage propriétaire détenu par le groupe SUN. Depuis l'annonce du passage imminent de Java sous licence libre GPL2, les réactions pleuvent dans le monde du développement informatique. Si certains sont indécis, beaucoup ne cachent pas leur excitation face aux probables répercutions de cette libération.

Pour l'utilisateur, la première conséquence visible va être l'augmentation du nombre d'applications écrites en Java, pour les raisons suivantes :

  • Java est libre : de nombreux développeurs qui boudaient ce langage car étant propriétaire vont s'y intéresser de plus près. Le nombre d'applications Java devrait donc continuer d'augmenter, et l'implication des développeurs dans les projets open-source existants devrait également être meilleure.

  • Java peut désormais être intégré par défaut dans les distributions libres comme Linux. Cela signifie non seulement que la machine virtuelle pourra être installée, mais surtout que l'on va voir apparaître des distributions Linux comptant un grand nombre d'applications Java installées par défaut.

Qu'en est-il des projets en cours qui visent à libérer Java '

Depuis des années, certains projets opensource ont pour but de libérer Java en ré-écrivant intégralement la machine virtuelle. Si certains d'entre eux sont très avancés, aucun n'est encore totalement abouti.

Si ces projets pourraient sembler devenir obsolètes avec l'ouverture de Java, certains d'entre eux risquent au contraire de faire un bond gigantesque en avant, puisqu'ils seront en droit d'échanger du code avec le projet de SUN, qui sera sous licence GPL.

Nous devrions donc bientôt avoir plusieurs alternatives libres crédibles à la JVM de Sun, donnant ainsi à l'utilisateur la possibilité de choisir.

Bien que peu probable dans un premier temps, il serait souhaitable que Sun se rapproche des acteurs principaux comme la fondation Apache, qui supporte une multitude de projets libres en Java. Nous pourrions alors aboutir à un projet unique, résultat de l'ensemble du travail des développeurs de Sun et de la communauté open source.

Pour ce qui est du risque de l'émergence de forks, projets Java basés sur la version actuelle mais évoluant vers une version incompatible, nos confrères de InfoWorld [en] relaient les propos de Rich Sands, directeur marketing de la version standard de Java, qui affirme "qu'il n'y a vraiment aucun marché pour une version incompatible de Java".

Java sun small

Que reste-t-il aux autres langages '

Java est souvent critiqué pour sa lenteur. En effet, la JVM servant d'intermédiaire entre le programme Java et le système d'exploitation, elle est à priori une source de ralentissements du programme. De plus, les mauvaises performances des premières versions de Java, apparues il y a 11 ans, ont contribué à maintenir cette idée.

Depuis, Sun a énormément travaillé sur les performances, de telle sorte que Java n'a rien à envier à ses concurrents. Par ailleurs, si les performances sont vraiment critiques, dans des applications temps-réel par exemple, il est également possible de compiler Java en code natif spécifique à un environnement précis, exactement comme pour les langages traditionnels.

Nous disposons donc aujourd'hui d'un langage libre, mature et extrêmement puissant, intégrant de nombreux concepts modernes de programmation, disposant de centaines de bibliothèques de fonctions open-source, et dont le code est portable sur tous les OS et toutes les machines.

Java permet d'écrire aussi bien des petits programmes pour appareils mobiles que des gros systèmes de traitement de l'information - hébergés sur des serveurs JEE (Java Entreprise Edition) - en passant par toutes les applications bureautiques et les sites Internet.

Mais, que reste-t-il aux autres '