Interview
14/07/2007
Vincent Massol (XWiki) : "Un wiki de deuxième génération permet de développer de petites applications Web 2.0"
Qu'est-ce qui se fait de mieux actuellement en Open Source en termes de développement Java ? Quels sont les outils de développement Java Open Source que vous recommanderiez ? Le développement d'applications Java s'est industrialisé ces dernières années et aujourd'hui il est rare de trouver des projets qui n'utilisent pas des outils comme un IDE, des outils de build automatisé et continu, des tests automatisés, un repository de source ou bien un Wiki. Je vais les détailler. En ce qui concerne les environnements de développements intégrés (IDE), il y en a de très bons en Open Source comme Eclipse ou Netbeans. Personnellement, j'utilise IntelliJ IDEA, un outil payant, mais qui est l'IDE m'offrant le plus de productivité à ce jour. Je l'utilise principalement comme un éditeur de code source et je n'utilise pas les fonctionnalités des IDE comme le support J2EE par exemple. Pour toutes les opérations de construction de l'application, j'utilise un outil de build automatisé. Un outil de build automatisé construit automatiquement l'application à partir de ses sources. Il y a deux concurrents principaux dans le monde Java Open Source : Apache Ant et Apache Maven. Sur mes projets, j'utilise Maven depuis 2002 et j'en suis ravi. Je suis un des développeurs de Maven et donc mon avis est forcément biaisé... Un outil de build continu permet d'intégrer continûment les développements effectués par les différents développeurs d'un projet. Les meilleurs en Open Source sont CruiseControl, Continuum, Hudson. Leurs meilleurs concurrents commerciaux, mais gratuits pour les projets Open Source, sont Bamboo d'Atlassian et TeamCity de Jetbrains, créateur d'IntelliJ IDEA. Quid des outils de test ? Les outils de tests automatisés permettent de contrôler le développement des applications en limitant les régressions. Pour les tests unitaires, l'outil le plus connu est JUnit, suivi d'un nouvel entrant depuis quelques années : TestNG. Pour les tests fonctionnels, l'outil dépend de l'application à tester : applications Web, applications Swing, Web Services, etc.
Pour les applications Web, ma préférence va à Selenium qui permet d'enregistrer et rejouer des scripts correspondants aux actions qu'un utilisateur ferait de votre application mais qui permet aussi d'écrire très facilement des tests fonctionnels en Java avec Selenium RC. Un repository de source, ou dépôt, est un stockage centralisé et organisé de données. Après de bons et loyaux services, CVS a maintenant été remplacé par Subversion, qui détient probablement la plus grosse part de marché dans les gestionnaires de code Open Source. Il y en a également de nombreux autres en Open Source. Enfin, un wiki permet d'écrire la documentation du projet et de travailler de manière collaborative. Bien évidemment, mon wiki préféré est de loin XWiki car il s'intègre parfaitement aux besoins d'une équipe de développement. Il faut dire que je collabore sur ce projet depuis décembre dernier... En revanche, le monde Open Source manque d'un bon outil de gestion de tâches. Bugzilla est un peu vieillot de nos jours même s'il est très puissant. J'utilise souvent JIRA d'Atlassian. Le langage Java n'est pas récent, pensez-vous qu'il ait encore de beaux jours devant lui ? Quelles seraient selon vous les nouvelles évolutions à apporter au langage comparé à la version 6 ? Cobol a encore de beaux jours devant lui. Pareil pour C/C++ ... Un langage ne meurt pas ou s'il meurt c'est vraiment sur le très long terme. Java est un petit jeune. En fait plus que le langage Java, ce qui importe c'est la plate-forme, l'ensemble des librairies existantes, et la plate-forme java est encore une des plus dynamiques qui existent de nos jours. Personnellement, je n'ai pas de besoins d'améliorations du langage. En revanche, une standardisation d'OSGi dans le JDK serait un gros avantage. Mais c'est déjà en cours à travers des JCP. Quelles solutions proposez-vous dans le projet de collaboration en ligne XWiki ? Quelles sont les technologies utilisées pour les mettre en uvre ? XWiki est connu comme étant un Wiki d'entreprise sous License Open Source (LGPL). En fait, XWiki est surtout une plate-forme Web de développement d'applications collaboratives. Le Wiki étant une application collaborative parmi d'autres. D'ailleurs, le projet XWiki offre plusieurs solutions, toutes Open Source et toutes basées sur la plate-forme XWiki : un Wiki d'entreprise, un gestionnaire de ferme de wikis, un outil de veille collaborative (XWiki Watch) et une application de création de cours en ligne et collaboratif. D'autres projets viendront prochainement rejoindre l'écosystème XWiki : un outil de gestion de portfolio de projets et une application de réseau social.
Le cur de XWiki est un wiki de deuxième génération, c'est-à-dire un wiki dans lequel on peut non seulement éditer les pages et y mettre du texte, des images, des attachement, comme tout bon wiki, mais aussi un wiki dans lequel il est possible de développer de petites applications Web 2.0 extrêmement facilement. Cela permet de démarrer sur une utilisation de wiki simple et, au fur et a mesure de l'utilisation du wiki, d'observer les utilisations et de proposer des fonctionnalités additionnelles comme la possibilité d'entrer des données dans des formulaires, la possibilité d'intégrer des applications tierces (mashup), la possibilité d'implémenter des workflow simples. Le wiki de deuxième génération se situe vraiment à la frontière des outils de CMS / WCM [content management system / Web Content Management, ndlr] et portails, mais en conservant l'approche du wiki : pouvoir entrer des données non structurées facilement. La formalisation et la structuration arrivant dans une deuxième étape, en grossissant organiquement. En termes de développement, le projet XWiki est en Java et réutilise de nombreux outils Open Source : Hibernate, Lucene, Batik, Jakarta Commons, Groovy, JDom, Rome pour ne citer qu'eux. Le développement suit les mêmes règles méritocratiques que celles utilisées par la sphère Apache et est donc ouvert à tout le monde. Vous faites partie du groupe de pensée OSS Get-Together Paris (OSSGTP). Pouvez-vous nous en dire plus ? Sur quelles solutions Open Source y travaillez-vous ? Plus qu'un groupe de pensée, l'OSSGTP est un groupe d'acteurs de l'Open Source. C'est un groupe que j'ai initié en 2004. Je travaillais alors sur le projet Open Source Maven et j'ai réalisé qu'il y avait au moins 3 ou 4 Parisiens dans l'équipe de développement de Maven et que, pour nous changer de nos communications à travers les mailings lists ou par chat, il serait bien de se voir de temps en temps pour échanger de vive voix.
Très vite, par cooptation, nous sommes devenus 10, 20, puis à peu près 60 de nos jours. Nous sommes tous des acteurs de l'Open Source (l'Open Source Java principalement), en général créateurs ou contributeurs de projets Open Source par opposition àde simples utilisateurs. Nous avons une mailing liste privée, un site Web et nous nous rencontrons les troisièmes jeudi de chaque mois : des présentations suivies d'un dîner. La somme des projets sur lesquels nous contribuons est vaste : XWiki, Maven, eXo Platoform, JBoss Seam, Glassfish, RESTlet, Groovy, Cargo, Hibernate, JGuard, JCaptcha, Rome, Ivy et bien d'autres (plus de 40 projets en tout!). Qui a dit que l'Open Source parisien n'était pas actif
!
|
Par Thomas Thelliez, (RocketBootstrapper.com) Lire
Par Thomas Arnaud, (Nudge) Lire