Oracle peut bien détenir la marque Java, cela n'empêche nullement VMware de présenter son propre framework Spring comme le meilleur modèle de programmation pour les développeurs Java dans les entreprises. « Sur le plan de l'innovation, je pense que Spring joue un rôle de premier plan », considère Rod Johnson, qui fut à l'origine de la première version du framework et qui est maintenant vice président senior et directeur général de la division des produits SpringSource chez VMware.

Il y a au moins une autre société qui partage l'enthousiasme de VMware, c'est Google. Le groupe de Sergey Brin et Larry Page a choisi Spring comme modèle de programmation pour Google App Engine, sa plateforme de conception et de déploiement d'applications hébergée sur ses serveurs. Sur la conférence développeurs SpringOne G2X, qui s'est tenue cette semaine à Chicago, les deux fournisseurs ont annoncé qu'ils avaient procédé à différentes intégrations entre Spring, Google App Engine et les outils GWT (Google Web Toolkit). Ces derniers permettent de développer sous Java des applications Ajax. A cette occasion, Rod Johnson s'est fait un malin plaisir de rappeler que Google s'était retiré de la conférence JavaOne en septembre dernier, alors qu'il était, cette fois, l'un des sponsors principaux de SpringOne.

Brad Abrams, responsable produit de la division des outils de développement chez Google, explique que son groupe a voulu identifier les tendances auprès des clients. « Nous leur avons parlé afin de savoir avec quels outils s'écrivaient les nouvelles applications, parce que c'est là que se trouvent les gisements de croissance pour App Engine. Et nous avons ressenti que Spring était vraiment une bonne plateforme. »

Bientôt un plug-in pour déployer sur App Engine


Tout le monde n'est pas aussi convaincu que Spring représente le futur du développement Java pour l'entreprise. Red Hat, par exemple, s'interroge carrément sur l'intérêt de ce framework. « La dernière itération de Java offre une architecture standard simple qui peut réduire les temps de développement en proposant une plateforme ouverte, ce qui rend inutile le recours à des frameworks comme Spring », écrit ainsi Ashesh Badani, directeur senior de l'offre JBoss Entreprise Middleware chez Red Hat, dans un récent billet de blog.

Né sous la forme d'un projet Open Source, le framework Spring a été conçu pour aider les développeurs à structurer rapidement des applications Java, en particulier pour le web, d'une façon qui soit cohérente du point de vue de l'architecture. Depuis son lancement, en 2002, il a pris de l'ampleur jusqu'à devenir l'un des frameworks Java les plus largement utilisés. Et en 2009, VMware rachetait la société de Rod Johnson.

Sur SpringOne, VMware et Google ont présenté les premiers fruits de leur travail conjoint (les deux sociétés ont commencé à travailler ensemble au printemps dernier). D'ici deux semaines, un plug-in pour la SpringSource Tool Suite permettra aux développeurs de déployer leurs applications sur App Engine. La plateforme de Google n'utilise qu'un sous-ensemble des interfaces de programmation (API) Java existantes. Google travaille donc pour faire en sorte que toutes les API utilisées par Spring soient disponibles dans App Engine, a notamment expliqué Brad Abrams.

Le GWT intégré avec Spring Roo

Par ailleurs, le GWT a été intégré à Spring Roo, un outil qui produit du code Spring en conformité avec les pré-requis de sécurité et avec d'autres points. « Désormais, Roo peut générer une application cliente Internet riche en utilisant le GWT », a confirmé le responsable des outils de développement de Google. Enfin, les outils d'analyse de performance de chacun des éditeurs sont maintenant associés. Ainsi, Speed Tracer, que l'on trouve dans le navigateur Chrome, a été adjoint à l'outil Spring Insight, inclus dans la SpringSource Tool Suite.

Alors que VMware présente Spring avant tout comme une solution de développement pour des applications exploitées dans le cloud, Rod Johnson rappelle que le framework a acquis sa notoriété en tant qu'alternative aux Enterprise Java Beans de Java EE utilisés pour le développement d'applications d'entreprise. Deux millions et demi de développeurs utiliseraient actuellement le framework Spring, selon son éditeur. « De façon générale, la communauté Open Source a repris la main sur les équipes techniques d'Oracle, considère Rod Johnson. Spring a pris le dessus sur les EJB il y a plusieurs années déjà et continue à prendre de l'ascendant ».

Spring, alternative légère à JEE ?
[[page]]
Spring, alternative légère à JEE ?

Les ingénieurs de Red Hat, pourtant, estiment que la dernière version de Java Enterprise Edition, JEE 6, permet de se passer de frameworks tels que Spring. En particulier, elle inclut la spécification JSR (Java Specification Requests) 299 qui couvre le découplage de composants logiciels (dependency injection). La prise en compte du contexte et le « dependency injection » figurent de fait parmi les principales fonctionnalités de Spring.

Pour appuyer cet argument, Ashesh Badani, de Red Hat, renvoie vers une note de Lincoln Baxter, de l'équipe de développement JBoss, portant sur  la migration d'une application de Spring vers Java EE 6 (). « Le framework Spring apparait comme une alternative légère à Java EE qui s'était alourdi et était devenu complexe, peut-on y lire. En fait, utiliser Java EE peut s'avérer plus simple que recourir à Spring et prendre moins de temps. Il faut juste trouver la bonne documentation. »

Le patron de SpringSource a reconnu que Java EE 6 avait emprunté quelques idées à Spring et que sa dernière version était plus simple à utiliser que la précédente (dont la complexité avait attiré des développeurs vers Spring). Malgré tout, Java EE 6 ne dispose pas encore de toutes les fonctionnalités de son challenger, tel qu'un framework web à part entière, ou encore un outil d'amélioration de la productivité tels que Roo. Par ailleurs, Rod Johnson rappelle que Java EE 6 n'est pas encore mis en oeuvre sur l'ensemble des serveurs d'application. Certes, JBoss le supporte, mais pas encore WebSphere, d'IBM. Quant au serveur d'application Open Source Tomcat, il ne prend en compte qu'une partie des fonctionnalités de cette v.6.

« Je ne crois pas qu'il faille comparer point à point les modèles de programmation de Java EE et de Spring », a toutefois conclu Rod Johnson en ajoutant que pour une large majorité des mises en production actuelles, on ne pouvait pas non plus considérer Java EE comme une alternative à Spring.

Illustration : Rod Johnson, vice président senior et directeur général de la division des produits SpringSource chez VMware (crédit photo : D.R.)