Day 1 - Tuesday, May 16▲
8:30-10:30 AM : Sun General Session▲
Cette session (la première de JavaOne) était à ne surtout pas manquer. En effet, c'est lors de celle-ci que la plupart des annonces importantes ont été faites.
La session est introduite par John Gage (Chief Researcher and Vice President, Science Office, Sun Microsystems Inc.) qui nous souhaite la bienvenue à JavaOne, nous invite à nous inscrire électroniquement aux différentes sessions, à construire notre emploi du temps personalisé parmi les plus de 180 sessions disponibles et nous donne d'autres conseils afin de profiter au maximum de JavaOne2006.
John Gage passe ensuite la parole, ou plus exactement "the pickle" (le "pickle" étant le petit boitier servant à contrôler l'affichage sur l'écran géant) à Jonathan Schwartz, récemment nommé président et CEO de Sun Microsystems. John Schwartz animera le reste de la session, introduisant les différents intervenant qui se succèderont.
Premier intervenant: Ed Zander, chairman and CEO de Motorola. Il s'agissait là de montrer l'importance du marché du mobile pour Sun. En effet, à lui seul, Motorola vend chaque année plus de 100 millions de téléphones avec une machine virtuelle Java, ce qui dépasse largement le nombre de PC vendus sur la planète dans le même laps de temps. Le ton est donné: Sun vise le marché du mobile.
Deuxième intervenant: Mark Shuttleworth de la société Canonical (la société qui développe la distribution linux Ubuntu) qui annonça qu'un accord entre Sun et Canonical permettra l'intégration de Java dans la distribution Ubuntu. Concrètement, cela signifie qu'il suffira de tapper apt-get install sun-java5-jre pour installer Java sur Ubuntu. Jusqu'alors, il fallait télécharger Java séparément après avoir accepté les conditions d'utilisation de Java. L'intégration de Java dans d'autres distributions sans démarche particulière concernant la licence est en cours d'étude. Par ailleurs, Sun Microsystems apportera son aide à la distribution Ubuntu.
Ceci montre la volonté de Sun Microsystems de s'ouvrir à la communauté open-source, deuxième annonce importante faite lors de ce JavaOne.
Jonathan Schwartz invite alors Rich Green à monter sur scène. Après deux ans passé loin de Sun, Rich Green est revenu en tant qu'executive vice president of Sun Software. Jonathan Schwartz lui posa alors cette question: "est-ce que Java va devenir open source?". Léger rire avant de répondre sur un ton plus sérieux: "this is not a question of 'whether', but 'how'...". Ceci constitue l'annonce du projet OpenJava EE, qui est pour l'instant à l'étude sur les moyens de mise en oeuvre mais qui devrait aboutir d'une manière ou d'une autre.
Selon Jonathan Schwartz, la communauté Java et la communauté open-source ont beaucoup de valeurs en commun, à savoir qu'elles ont toutes deux pour objectif l'innovation, la croissance, la compatibilité, etc. En rendant les solutions compatibles, celles-ci deviennent interchangeables entre les différents acteurs du marché, qui doivent alors se différencier par rapport à la qualité de leurs solutions, ce qui a pour effet de stimuler la concurrence. Ceci montre bien la différence de statégie entre une société comme Sun et une société comme Microsoft: "Compatibility leads to choices, choices lead to competition. Some companies don't like competition. (...) Open source doesn't mean less revenues, open source means less barriers to revenues.", dit Jonathan Schwartz.
S'ensuivent plusieurs démos pour montrer les différentes innovations de Java.
Première démo: réalisation d'un blog avec NetBeans et GlassFish montre combien il est devenu plus facile de déployer une application Java EE. Plus besoin de fichiers XML complexes, la tâche a été simplifiée grâce aux annotations. Cette démo montre également comment il est possible d'ajouter certaines fonctionalités intéressantes par simple "drag-and-drop" de portions de code.
Deuxième démo: une application web utilisant Google map pour localiser les pubs où l'on boit de la bonne bière autour du Moscone Center. Troisième demo: the online Pet Store utilisant AJAX, des composants JSF, etc. Quatrième démo: projet Tango: interopérabilité entre Java et .Net grâce au Web Services Interoperability Technology (WSIT). Cinquième démo: NetBeans et BPEL, la manipulation de Schemas (création de schemas par "drag-and-drop", navigation, représentation graphique de Schemas complexes, refactorisation de Schemas...)
La dernière démo a vraiment impressioné beaucoup de monde. Il s'agit d'une
application graphique entièrement écrite à l'aide de Mustang et de
composants Swing ! La démo en action et en musique (sur fond du Guillaume Tell
de Rossini), se trouve à la 36ème minute de la quatrième vidéo de cette
session (disponible à l'adresse
http://java.sun.com/javaone/sf/sessions/general/index.jsp
)
Voir aussi:
le blog de Romain Guy
En résumé, de nombreuses annonces ont été faites lors de cette session de 2 heures :
- Sun vise le marché des mobiles, qui représente
plusieurs centaines de millions d'utilisateurs (plus que le marché du PC)
- Sun désire s'investir plus activement auprès de la communauté
open-source, avec une meilleure intégration de Java dans des distributions
comme Ubuntu et avec le projet OpenJavaEE, et ce en vue d'étendre son marché
d'attirer des développeurs de talents aux technologies Java en vue de voir
émerger de nouveaux produits intéressants
- D'un point de vue technique, de nombreuses améliorations
qui justifient que les développeurs Java téléchargent les dernières
versions stables, voire les versions en développement, car proposant
plus de fonctionalités. Je reviendrai sur ce point un peu plus loin.
A de nombreuses reprises, certaines recommendations ont été faites aux développeurs Java :
- Java EE 5 est là !
Java EE 5 vous simplifie la vie. Téléchargez-le. Utilisez-le en production. - Téléchargez le dernier NetBeans !
NetBeans propose plein de fonctionnalités intéressantes pour améliorer la productivité, comme par exemple le GUI-builder (qui contient également le projet "Matisse") - Téléchargez la version beta de Java SE 6 !
Essayez-là, elle est assez stable et mise à jour régulièrement. Envoyez vos feedbacks. - Rejoignez des communautés Java telles que JCP ou la communauté NetBeans !
Bref, une session extrêmement intéressante avec plein d'annonces importantes.
12:15-01:45 PM : Sun Technical General Session▲
Une session technique extrêmement intéressante. En voici les idées importantes:
- Java SE 5 est globalement plus performant
- Swing est amélioré
- Java EE est plus simple à apprendre et à déployer
Lors de cette session, on commence par découvrir la roadmap de Java SE avec :
- Java SE 5 (Tiger) sorti en automne 2004
- Java SE 6 (Mustang) prévu pour Octobre 2006
- Java SE 7 (Dolphin) prévu pour 2008
On y apprend également qu'un gros effort a été consacré à l'amélioration des performances. Ainsi, le simple fait de passer à Java SE 5, sans modification dans le code, permet une amélioration des performances.
Les applications Swing, par exemple, bénéficient d'un rendu matériel et non plus d'un rendu logiciel. Ainsi sur des machines récentes, le gain de performance peut aller jusqu'à 60%; sur des machines anciennes (aux cartes graphiques peu performantes) ce gain est de 12% environ. En moyenne, on observe un gain de 30%.
Voici par exemple les temps mis par Java pour redessiner un composant graphique, suivant les versions :
Ceci renforce l'idée qu' il est utile d'effectuer la mise à jour vers Java SE 5, d'autant qu'un grand effort à été consacré à la résolution des problèmes de rétrocompatibilité.
Autre innovation: faire en sorte que les applications Swing adoptent le même "Look & Feel" que l'OS sur lequel elles tournent, comme le montre les deux images suivantes (sous Windows, avec un thème différent) :
Dans cet exemple, lorsque l'on met à jour le thème de l'OS, cette mise à jour se répercute automatiquement sur l'application.
Java EE n'est pas en reste, Ludovic Champenois ayant fait une démo de déploiement d'une application web. Cette démo montrait le mapping qu'il est possible de réaliser entre les objets Java et les objets en base de données.
L'accent a été également mis sur le fait que les applications Java EE 5 sont plus faciles à mettre en place. En effet, plus besoin de fichiers XML complexes, une simple annotation permet de définir une classe comme étant un web service. Cela montre la puissance des annotations, dont l'utilisation n'en est qu'à ses débuts.
Le but de ces avancées techniques est de rendre Java EE plus simple à apprendre pour le débutant et plus facile à déployer pour le professionnel.
Les technical sessions que j'ai choisies▲
TS-1913. Eight ways to be more productive developping Swing applications▲
Cette présentation expose 8 trucs et astuces pour concevoir une application graphique de manière productive, en évitant d'avoir à réécrire les même choses. Parmis les conseils prodigués, on trouve:
- Utiliser des GUI builders tels que NetBeans, JForm Designer, JetBrain IDEA...
- Séparer la partie applicative de la partie affichage. Externaliser le style de l'affichage (penser à l'usage de CSS pour la mise en forme)
- Utiliser un look & feel multi-plateforme (pour ne pas à avoir à adapter l'interface selon la plateforme utilisée)
- etc.
Pour plus de détails, téléchargez la présentation, qui fournit des exemples pour chaque point abordé.
TS-4915. Simpler, Faster, Better: Concurrency Utilities in JDK Software version 5.0▲
Il s'agit ici de présenter les différents objets disponibles dans la Java SE 5 pour la gestion concurrentes des threads, lorsque la synchronisation ne suffit pas à garantir la cohérence des données. En effet, pourquoi réinventer la roue en implémentant soi-même des sémaphores lorsque l'on dispose d'objets tels que ConcurrentHashMap, CopyOnWriteArrayList, Queue, BlockingQueue ou des Patterns tels que Producer-Consumer ? Tous ces objets, ainsi que leurs utilisations sont décrits dans le PDF à télécharger.
TS-4489. Introduction to AJAX▲
AJAX est un nom qui est revenu extrêmement souvent lors de ce JavaOne 2006, à croire que tous les éditeurs s'étaient donné le mot pour sortir leur propre batterie d'outils proposant des solutions en AJAX configurables et prêtes à l'emploi.
Dans cette présentation, il s'agissait de montrer ce qui se cache réellement derrière cette appellation qui était sur toutes les lèvres, sorte de révélation de l'année 2006: AJAX (pour ceux qui auraient échappé au phénomène, sans doute suite à un séjour prolongé dans un coin reculé de notre planète, voire de notre galaxie, AJAX est l'abréviation de Asynchronous Javascript And XML).
En gros, dans cette présentation, on nous explique qu'AJAX, ce n'est pas si compliqué que ça en a l'air, que tous les jolis effets graphiques obtenus sont supportés nativement par les navigateurs et qu'il a fallu seulement 2 heures aux 2 intervenants pour créer leur propre version de Google Map en AJAX. Partant de ce constat, imaginez ce qu'une équipe de développeurs pourrait coder en une semaine...
TS-3361. Java EE 5 Platform: Even easier with tools▲
Une présentation intéressante classée comme étant "leading edge". Sujets abordés: NetBeans, les annotations, la Java Persistence API, les Web Applications et les Web Services...