Java 6 : Mustang Evolution ou Révolution

Java est un langage de programmation orienté objet, par conséquent, chaque classe et ensemble de classe apporte son lot de fonctionnalités. De ce fait, Java est en perpétuelle en évolution. Toutefois, Sun développe de nouvelles versions au fil des années. La nouvelle version Java 6 promet donc d’apporter son lot de nouveautés…

Innovations Gadgets

System Tray

Cette nouvelle version voit apparaitre l’utilisation de la barre des tâches. Désormais, la nouvelle machine virtuelle l’intègre par défaut. Cela permet d’afficher une icône avec un menu. Compatibilité avec les principaux Système d’exploitation et environnements graphiques : Windows dont Vista, KDE, Gnome.

Illustration du System Tray java 6

Illustration du System Tray java 6

Splash-screen

Apparition du “splash-screen”, ce sont ces images qui s’affichent au premier plan lorsqu’une application démarre. Elle permet d’afficher une image le temps que la machine virtuelle charge son interface graphique. Eclipse incorporait déjà cette fonctionnalité depuis longtemps, mais elle reposait sur une librairie système qui ne permettait pas un pré chargement de la machine virtuelle.

Innovations Techniques

Amélioration graphique

Nouveaux layout

La construction d’interfaces clientes passe par l’utilisation des traditionnels composants graphiques Java Swing. Java SE 6 bénéficie du Projet Matisse, l’environnement de développement graphique de NetBeans, permettant de manier à la souris les objets Swing. Le layout manager de Matisse est un cas particulier, il ne sera pas intégré au JDK. Pour ce qui est du projet Matisse, cette évolution n’est qu’une étape qui n’aboutira que dans la version 7.

Look&Feel

Java 6 intègre une nouvelle solution de gestion des look&feel. En Effet, au lieu d’écrire un look and feel du futur Vista, on a un moteur qui extrait les ressources de l’OS un peu comme le GTK. De fait, quelle que soit le look and feel final de Vista… Swing a le même.

SwingX

Cette API a été intégré à Java Swing, comme les fonctionnalités de la JXTable par exemple (Equivalent de la JTable de Swing mais avec des interactions plus importantes avec l’utilisateur).

Performance graphique

L’utilisation du pipeline OpenGL améliore les performances graphiques de la machine virtuelle. Dans de nombreux cas, le pipeline software va plus vite que le pipeline DirectX sous Windows. Mais de manière générale les performances de Swing sont surtout menacées par une mauvaise utilisation de l’EDT. C’est d’ailleurs pour cela que le SwingWorker est intégré dans la version de base de Mustang.

La JVM de Java 6 améliore le rendu graphique. Il existe désormais un vrai double buffering qui permet une meilleure fluidité des interfaces graphiques. Cette évolution permet désormais d’éviter le rectangle gris qui apparaissait lors de la modification de composant. Il est aussi intéressant de noter que l’antialiasing des polices est intégré par défaut.

Intégration Service Web

Ouverture au XML

Dans cette nouvelle version, nous disposerons par défaut d’outils d’analyse syntaxique (STAX) ainsi que des éléments déjà présents dans le kit de développement de web-services fournis séparément des anciennes versions. Sun a affiché très clairement sa volonté de renforcer la pile des technologies XML présentes dans la machine virtuelle et de faciliter le développement des services web. La version suivante (java 7 ou dolphin) poussera plus loin encore l’utilisation des services web en les mariant avec JMX pour offrir de l’administration à distance par le biais de services web. Il évoque également une possible intégration de XML au niveau même du langage Java. Cependant, cela reste à l’état de projet et ne verra pas le jour avant 2008.

Bases de Données

Pour les bases de données, on peut noter l’arrivée de JDBC 4.0, la nouvelle partie de gestion de SQL. JDBC 4.0 intègrera de nouvelle fonctionnalité pour une utilisation avec XML afin pour faciliter la création de web services. Cette utilisation de XML est une approche assez similaire à l’API Hibernate.

Applications Clientes

Gestion de scripts

Rhino Java 6 va désormais intégrer Rhino : le puissant moteur développé par Mozilla. Il s’agit d’un moteur de Scripting JavaScript. Cela permettra notamment d’automatiser des fonctionnalités de Java en Swing. A termes, les futures versions intégreront certainement d’autre moteur : PHP. La compilation peut soit s’effectuer à la volé lors de l’utilisation du script ou avant l’exécution. Cette utilisation de ce moteur permet l’utilisation d’écrans de type client riche web Ajax.

Base de données

Java 6 dispose d’une base de données transactionnelle prête à l’emploi. Elle servira, entre autres, de cache à un client riche fonctionnant en mode déconnecté. Ainsi, les nouvelles applications java seront capables de travailler déconnecter du réseau et de permettre une synchronisation avec les bases de données communes.

Innovation diverses
Fichiers

La nouvelle machine virtuelle permettra de nouvelles fonctionnalités de gestion de mémoire. Il était par exemple impossible auparavant de connaitre la taille exacte d’un fichier ou encore l’espace libre disponible sur le disque.

Sécurité

Cette nouvelle version introduit désormais la prise en compte des fonctions d’authentification Kerberos utilisé notamment par les systèmes d’exploitation linux.

Annuaire

La nouvelle version inclut un ensemble de fonctions permettant un lien vers les annuaires LDAP. Une fonctionnalité peu étonnante et qui montre notamment la volonté de Sun de ne pas se laisser distancer par la nouvelle plateforme de Windows C# qui intègre plus facilement cette technologie.

Evolution ou Révolution

Malgré les efforts de Sun, Java ne s’est à l’heure actuelle encore jamais imposé sur le poste client, alors qu’il a rencontré un beau succès sur les terminaux mobiles et sur les serveurs. Cette version se présente plus comme un intermédiaire entre Java 5 désormais reconnu et sa future version Java 7 Delphin. En effet, les durées de développement le prouvent, la version 6 de Java a disposé de moins de 2 ans pour se mettre en place, alors que Sun prévoit un développement 4 fois plus long pour sa version 7 (Version déjà en développement). Cette version 6 se contente donc essentiellement d’intégrer les diverses API développées des versions précédentes. Toutefois, Cette version marque surtout pour sa remise à plat de ses définitions notamment dans le domaine du web services. Sun laisse ainsi l’impression que cette nouvelle version va servir de tremplin, et ainsi pousser les entreprises à se tourner dès maintenant vers les innovations technologiques de la version 6 qui prendront toute leurs importances dans la version 7.