La seconde semaine de mai nous avons participé au forum Eclipse européen qui se tenait à Wiesbaden en Allemagne. C’était une occasion très importante avec des centaines de développeurs Java et des sessions et des formations très poussées sur des sujets tels que :
-
- Eclipse RCP (Rich Client Platform) : La plateforme RCP basée autour de OSGi est à la base de l’IDE Eclipse. Il est possible de développer des applications indépendantes de l’IDE qui exploitent les fonctionnalités de la plateforme (système de plugins, I18N, …).
-
- Développement J2EE : Pour notre part, c’est dans le domaine J2EE / applications serveur que nous utilisons Java actuellement. Ces sessions nous ont donc beaucoup intéressé.
-
- Swing et développement desktop : Nous ne faisons pas de développement desktop en Java (J2SE) actuellement. Nous envisageons vaguement de le faire, mais il va falloir nous prouver l’intérêt et surtout il va falloir tenter de rivaliser avec les centaines de composants dont nous disposons aujourd’hui sur l’environnement Delphi / C++Builder de Borland. Nous sommes franchement très bien servis et nous avons une efficacité et performance très importante sur ces outils que nous utilisons depuis maintenant 10 ans. C’est vrai que le Java propose la portabilité côté client et cela n’est pas négligeable, mais nous avons senti le besoin de disposer d’un framework de plus haut niveau que Swing pour pouvoir vraiment être compétitifs au niveau de la vitesse de développement. Swing est encore de (relativement) bas niveau comparé à la VCL par exemple qui offre une abstraction (pour sa part de l’API Windows) qui est appréciable et qui permet de se concentrer sur l’essentiel lorsqu’on est développeur de solutions de gestion.
-
- Spring framework : Rod Johnson a délivré une présentation très intéressante sur les principes de pérénisation de la logique métier dans les développements. L’un des principes de base du framework Spring est qu’il s’appuie sur des POJO c’est à dire des objets Java classiques qui ne dérivent d’aucune classe particulière et qui n’implémentent aucune interface spécifique à leur contexte d’exécution. Si la logique métier est mélangée avec du code lié à la plateforme ou aux spécificités du contexte (framework, container, etc..) alors ce code n’est pas pérène et il devra subir des évolutions lorsque les outils et le context du marché changera. Si au contraire la logique est encapsulée de manière bien segmentée dans des objets unitaires accomplissant chacun leur rôle précis sans se soucier du contexte, alors ce sera du code réutilisable et facilement évolutif à travers les différentes plateformes et contextes d’exécution.
A vrai dire nous sommes partis avec de grands espoirs dans le framework RCP mais nous avons été relativement déçus ou disons que nos yeux ont plutôt été ouverts sur sa complexité.\nNous avons notamment eu la chance de passer plus d’une heure avec l’un des orateurs dans une salle privée dans le « Speaker’s complex » tous les trois devant un portable à lui poser des questions très directes sur la plateforme RCP. C’était un consultant indépendant qui utilisait la plateforme RCP dans le cadre de ses conceptions de systèmes. C’était lui qui avait animé la formation sur la mise en place d’un logiciel basé sur RCP à laquelle nous avons participé.\n\nNous lui avons donc présenté une petite démonstration. Sur mon portable j’ai lancé Borland C++Builder 1. En 3 minutes j’ai monté une petite application de base de données avec une liste de contacts, une grille pour visualiser et trier les données, et un petit formulaire pour modifier, ajouter ou supprimer des enregistrement. J’ai fait exprès de prendre la version 1 de C++Builder pour montrer ce qu’on était capable de faire il y a 10 ans, et la vitesse de développement (RAD).Il ne faisait pas preuve d’être grandement impressionné (ce n’était pas le but, mais quand même 😉), mais alors je lui ai demandé de but en blanc : « Comment faire l’équivalent en Eclipse RCP? ». Je lui ai donc tourné le portable après avoir lancé Eclipse et il a démarré l’implémentation de la petite application.Eh bien nous n’avons pas eu le temps de finir l’implémentation en 30 minutes de temps. Il est tombé sur un bug qui faisait que la grille ne s’affichait pas. « C’est en rapport avec la classe qui implémente le WindowAdvisor » nous a-t-il confié, « Je n’ai pas le temps de rentrer dans le détail tout de suite ».\nJe veux bien croire qu’il y a moyen d’être plus compétent que cette personne en la matière et de mieux s’y connaître. Mais bon, ce n’était pas non plus le premier venu dans le monde de l’OSGi et de la plateforme RCP ! C’était quand même un orateur et l’animateur de plusieurs ateliers et formations sur la manifestation Eclipe Forum Europe. Ses formations étaient spécialement axées sur RCP. C’était un spécialiste RCP. Nous devons donc tout au moins admettre que la plateforme dispose d’une certaine complexité de mise en oeuvre pour atteindre ne serait-ce le premiers balbutiements de ce que nous attendons en tant que développeurs d’applications de gestion.
La ville de Wiesbaden était très jolie. Notre hôtel était situé à 10 minutes de marche et donc nous avons pu apprécier un petit peu les pavés, les espaces fleuris et les jardins. Nous avons eu beau temps en plus, en tout cas dehors il faisait du soleil. Mais c’est vrai que dans le complexe de la conférence, il n’est pas entré un seul rayon de soleil malheureusement… :-/