Day 3 - Thursday, May 18▲
8:30-10:30 AM : IBM General Session▲
Erich Gamma et John Wiegand (Distinguished engineers, IBM Rational Software) nous présentent la manière dont Eclipse est développé, comment les délais sont respectés et la qualité maintenue.
L'assurance de la qualité se fonde sur 4 valeurs fondammentales:
- livraison du logiciel (shipping): le plus important, ce sont les échéances ("milestones first")
- prévisibilité (predictability): prévoir les échéances de chaque livraison
- transparence (transparency): ne pas faire de mystère sur les délais de livraison, faire la liste des nouvelles fonctionalités à chaque livraison, rendre les tests de performance publics
- retours utilisateurs (feedbacks): est-on prêt pour la livraison?
Nul doute que cette présentation intéressera à la fois les chefs de projets, ainsi que toute personne s'interessant à la conduite de projets.
Cette présentation fut aussi l'occasion de rencontrer Erich Gamma en personne :
Erich Gamma a eu la gentillesse de bien vouloir me dédicacer ce que je considère comme étant la "Bible" de la Programmation Orientée-Objets, à savoir son livre sur les Design Patterns :
Les technical sessions que j'ai choisies▲
Une seule session technique pour cette journée. J'en ai donc profité pour visiter quelques stands d'exposants en fin de journée.
TS-5672. PHP vs Java EE for web development (*)▲
(*) titre simplifié, le titre original: "Developping a Commercial Web Site. Using the PHP scripting Language and J2EE Platform Web-TierTechnologies: Challenges, Benefits and Drawbacks".
Une société belge nous livre son expérience de la réalisation de sites web dynamiques, d'abord en PHP, ensuite en Java EE, avec des exemples concrets des sites de vente en ligne.
Plus que la technique, c'est la philosophie qui diffère entre ces deux langages. En PHP, le développeurs tendent immédiatement vers un développement dit "agile": on écrit du code que l'on teste immédiatement, sans déploiement complexe. En Java, un test nécessite un déploiement. Comme un déploiement est une opération plus lourde que la simple mise à jour de fichiers PHP sur le serveur, on teste moins souvent.
La grammaire du PHP est beaucoup moins stricte que celle de Java. Comme en PHP les variables sont faiblement typées et le script interprêté uniquement à l'exécution, cela peut être source d'erreurs.
Enfin, d'un point de vue technique, les variables PHP sont immédiatement détruites après exécution du script. En Java, il est possible de garder certaines variables en mémoire durant toute la durée de vie du serveur, ce qui évite de recharger ces données à chaque fois. Cela rend Java plus rapide et permet de mieux faire face aux problèmes de charge.
PHP permet donc un développement plus "agile", plus rapide à mettre en oeuvre et peut, dans une certaine mesure, accepter une charge de travail conséquente. Pour les sites web ayant potentiellement des montés en charges plus élevées (aux heures de pointes, par exemple), le cache de Java se révèle cependant très utile.
On peut alors se mettre à rêver de solutions hybrides: un serveur permettant de faire tourner PHP en lui ajoutant des variables persistantes. Après tout, il existe un projet ayant pour but d'exécuter du code Visual Basic dans un environnement Java afin d'attirer les développeurs VB à Java. Pourquoi alors ne pas faire la même chose avec PHP? C'est une idée qui se défend.
Les stands▲
Ma visite de JavaOne n'aurait pas été complète si je n'avais pas fait un tour aux stands des différents exposants. Aussi c'est ce que j'ai fait durant la dernière après-midi de JavaOne. Et tant pis si ça m'a fait louper la session de Motorola.
Dans un soucis d'équité, je me suis intéressé aux stands des sociétés relativement peu connues (voire pas connues du tout) plutôt qu'aux incontournables de l'informatique.
Tibco▲
Tibco fournit tout un tas de solutions pour les entreprises permettant par exemple le Business Application Monitoring, le Business Process Management, l'Application Integration, etc. Pour en savoir plus sur leur produits, je vous conseille de vous rendre sur leur site tibco.com.
J'ai eu droit à une démonstration de leur framework "General Interface" permettant de faire de l'AJAX (vous savez: la technologie à la mode de ce JavaOne 2006) en quelques "drag and drops". La démo est assez convaincante et l'outil pourrait bien faire concurrence à d'autres frameworks du genre.
Pour la photo du stand, ils avaient prévu une hôtesse déguisée "à la Matrix". Perso, Trinity, je la préfère en combinaison moulante mais bon, c'est une question de goûts... Ce genre de prestation, ça ne sert pas à grand chose, mais c'est marrant quand même...
Change Vision▲
Change Vision est une société Japonaise qui fait du "Rational Rose, mais en moins cher" (et tout en Java). Leur logiciel phare (JUDE) permet de créer toutes sortes de diagrammes UML en ajoutant des couleurs par exemple (ce qui permet de mettre en évidence certains Design Patterns, par exemple).
Téléchargez la version gratuite (Community) de Jude
Sinon, Change Vision propose aussi un logiciel de collaboration et de suivi de développement, nommé TRICHORD. Ce logiciel permet de visualiser l'avancement de certaines tâches :
ainsi que de visualiser, même à distance, l'humeur des développeurs :
Ce type de logiciel est assez orginal. Il apporte une certaine fraîcheur par rapport aux solutions proposées par les autres exposants.
Altova▲
Altova est connu pour son logiciel phare: XMLSpy, puissant éditeur de fichiers XML, XSL et Schema, qui offre pas mal de fonctionalités autour de ces outils. Personnellement, je n'ai jamais utilisé *directement* XMLSpy (un éditeur de texte me suffisait bien) mais mon confrère l'utilisait pour donner une représentation graphique des Schemas au patron, ce qui était bien utile...
Altova, c'est aussi toute une gamme de produits (la plupart tournant autour d'XML) comme Mapforce, Stylevision, Schemaagent, etc.
Umodel permet de créer toutes sortes de diagrammes UML tels que des diagrammes de classes, diagrammes de séquence, etc. ainsi que la génération de code en Java et C# (mais pas C++, grrr..). Quand je leur ai demandé: "que fait Umodel exactement?", ils m'ont répondu: "la même chose que Rational Rose, mais en moins cher..." C'est marrant, c'était la deuxième fois que j'entendais cette phrase. Ca doit être une mode de copier Rational, mais en moins cher...
A part ça, ils m'ont donné une jolie casquette ainsi qu'une clef USB publicitaire. J'étais un peu surpris, d'habitude c'est plutôt un CD qu'on distribue. L'explication est pourtant rationnelle: "à chaque mise à jour, il faut jeter les anciens CD et en presser de nouveaux. Les clefs USB coutent certes plus cher à l'achat, mais au moins on peut les mettre à jour plus facilement". Personnellement, ça me fait surtout une clef USB de 127 Mo avec le logo "Altova" dessus, donc ça reste un bon support publicitaire...
Blackberry▲
Blackberry est un fabricant d'agendas électroniques, transformés depuis en téléphones portables (alors que la plupart des constructeurs ont suivi le chemin inverse) et dont les produits apparaissent petit à petit en France.
Les téléphones Blackberry intègrent une machine virtuelle Java et ont leur propre API de développement pour leurs produits (avec des fonctionnalités additionnelles qui leurs sont propres). A ce titre, ils organisent un concours de développement d'application pour leur produits. Pour plus de renseignements, allez voir sur: http://www.blackberry.com/developers/
Caché▲
Intersystems est une entreprise américaine qui développe une base de données dite "post-relationnelle" (comprenez "base de données objets") du nom de Caché (avec un accent, même en Anglais, parce que là bas c'est le Français qui fait 'hype').
Voici le stand Caché... enfin pas si caché que ça vu qu'il était en plein milieu des exposants :
Ce fut l'occasion de leur faire part de mon expérience de Caché. Car oui, j'ai eu la possibilité d'utiliser Caché durant mes études. Le problème, c'est que ça ne m'a pas laissé un très bon souvenir, loin de là...
Le fait de les trouver là, face à face, lors de JavaOne m'a permis de leur exposer les problèmes que j'ai rencontrés (ainsi que le reste de ma promo) avec Caché (et ce dans le but de comprendre d'où venaient les problèmes, voire de les aider à améliorer leurs produits).
Voici les griefs dont je leur ai fait part:
- En bon utilisateurs que nous étions (et sommes restés), nous consultions la documentation. Le problème, c'est que plusieurs exemples de la doc ne marchaient tout simplement pas...
- Sur les 3 manières d'effectuer une requête SQL en CSP (Caché Server Page), 2 ne marchaient pas... (bon, d'accord, on aurait pu optimiser la requête, mais il n'empêche qu'on a passé plusieurs heures à comprendre ce qui ne marchait pas)
- Un camarade avait voulu utiliser les sessions sous Caché. Ca a fait planter le serveur...
Vous trouvez que j'ai été dur en pointant du doigt les problèmes rencontrés avec Caché ? Peut-être, mais à l'époque on était en année de Maîtrise et on avait suffisamment de projets pour ne pas en plus perdre du temps à cause d'une base de données qui refusait d'exécuter correctement nos scripts (au point qu'on finissait par introduire des erreurs dans des scripts corrects, ce qui nous faisait perdre encore plus de temps...).
Cette année là, on avait déjà suffisamment de quoi faire avec notre projet de compilation, notre projet d'OpenGL, et même notre projet de Prolog (et à l'époque, il n'y avait pas les excellentes ressources sur Prolog que vous pouvez trouver sur developpez... bon d'accord, je ne suis pas forcément très objectif en disant cela ;D ), sans compter tout le reste... A l'époque, on aurait apprécié être un peu plus productif avec Caché, mais ce n'était pas le cas...
En tous cas, je n'aurais pas voulu me retrouver à la place du type qui a dû écouter patiemment que j'énumère tous les problèmes liés au produit qu'il commercialise... et encore, je lui ai fait grâce des jeux de mots qu'on se répétait à chaque TP de bases de données (ex: "elles sont où mes données? elles sont Caché?", "Tiens, y'a encore le serveur Cachié...") et je ne lui ai pas non plus raconté la blague des 3 petits steaks hachés qui revenait quasiment à chaque séance (de toutes façons, en Anglais ça ne rend pas...).
Au bout d'un moment (qui a dû leur paraître une éternité...) ils m'ont dit que depuis le temps (1 an et demi), des nouvelles versions de Caché étaient sorties et que les bugs avaient sans doute été corrigés (j'espère pour eux !). Ils m'ont même donné un CD contenant la dernière démo de leur BDD (mais bon, j'ai été tellement traumatisé par Caché durant mes études que j'ai pas trop envie d'essayer leur dernière version... à moins bien sûr qu'on me paye pour le faire :D ).
J'ai aussi parlé à un responsable marketing et je lui ai demandé s'il y avait beaucoup de projets qui tournaient avec Caché. Il m'a répondu que leurs clients (principalement des hopitaux) avaient parfois des besoins très spécifiques. Certains doivent stocker de grandes quantités de données, d'autres ont des données réparties/répliquées sur plusieurs sites, d'autres doivent faire face à des flux de données importants en heures de pointes et que Caché avait répondu à leurs attente. Pendant un moment, j'ai presque bien voulu le croire (en effet, à aucun moment il n'a parlé de la charge de travail pour le développeur). J'espère juste que les problèmes que nous avions rencontrés en utilisant Caché ont été résolus depuis...