Pourquoi ColdFusion ?
Il me tenait à cœur de traiter ce sujet pour mon premier post sur le nouveau site d'Activ Browser. Je développe des applications métier et des sites Internet depuis 1997, où j’ai commencé durant mes études à la fois avec ColdFusion 3.0 et Microsoft ASP…
Durant mon activité, j’ai aussi beaucoup développé et conduit des équipes autour de PHP et surtout du monde Java dont j’ai gardé une bonne expertise (et je vous épargne le TCL de Vignette). J’avais perdu de vue ColdFusion durant quelques années avant de m’y remettre en février 2008.
Le fait est qu’aujourd’hui, quand je dois faire les choix d’architecture technique pour répondre à un besoin, je retiens dans 70% des cas la plateforme ColdFusion. Alors pourquoi utiliser ColdFusion et surtout pourquoi choisir ColdFusion ? Essayons de traiter cette question sans religion (est-ce qu’un Mac est mieux qu’un PC… vous connaissez ce genre de débat), je vous propose juste de vous soumettre un point de vue et j’espère que vous saurez nous dire vous, pourquoi vous choisissez ColdFusion ?
Plus qu’un langage, un framework
Les temps de développement sont réduits avec ColdFusion, on produit moins de code, on peut se concentrer d’avantage sur l’expérience utilisateur. C’est la qualité qui est souvent retenue concernant ColdFusion. En tout cas, je préfère passer plus de temps sur la qualité de l’interface que sur une serialisation JSON par exemple (access="remote" returnFormat="json", c’est si facile !).
La prise en main du langage lui-même est très facile. Et pour donner le point de vue manager, ce langage est une des raisons qui permet d’associer sur un projet des débutants, des développeurs expérimentés nouveau dans le web ou des graphistes avec des développeurs chevronnés et des experts. Au début un langage sous forme de balise peut être déroutant. Mais finalement c’est une manière des plus élégantes pour écrire du code dans des fragments HTML. Et puis il est possible d’appréhender le développement sous forme de script voire de script pur orienté objet (components).
Evidement il s’agit d’un langage avec tous les mécanismes de logique, manipulation de données et autre structure qu’un langage moderne orienté objet se doit de proposer, mais il s’agit aussi d’une bibliothèque très étendue. Tout ce dont on a besoin pour une application ou un site web existe à peu près dans ColdFusion. On est rarement pris en défaut quand on regarde en premier lieu dans la documentation pour répondre à un besoin. Il ne peut pas être plus simple de faire une requête SQL et traiter le résultat, envoyer un mail, upload des fichiers via un formulaire, générer un PDF, manipuler une grille Excel, mettre en place un moteur de recherche…
Il est possible d’utiliser ColdFusion de manières très différentes en terme développement. Pour compléter le panorama des bonnes pratiques de développement, il existe plusieurs frameworks sur lesquels je reviendrai dans un futur post, pour citer les principaux : ColdBox et MachII pour les framework MVC, ColdSpring pour l’inversion de contrôle et transfer qui n’a plus d’avenir avec l’ORM de CF9 basé sur Hibernate.
ColdFusion est Java
D’un point de vue technique, j’ai gardé mes réflexes d’architecte J2E. Et oui, ColdFusion est J2E. Le monitoring, le tunning, la stabilisation d’un serveur s’appréhende comme pour une application Java. On peut d’ailleurs déployer ColdFusion sur un serveur J2E comme Weblogic (le seul que j’ai pour ma part rencontré), Websphere ou un simple Tomcat. Ce point est très important car il permet de respecter les recommandations de certaines Directions des Systèmes d’Information qui n’ont pas envie de voir une n-ième technologie se rajouter à leur périmètre.
Concernant le développement, il est tout à fait possible d’intégrer un Framework Java comme Struts, Hibernate (euh… c’est déjà inclus dans CF9), Lucene/SolR (euh… mais ça aussi c’est inclus dans CF9 !) ou avec une application Java comme Alfresco ou Liferay. On peut donc profiter des avantages des deux mondes Java et ColdFusion.
Conclusion
Les temps de développement réduits contre balancent largement le coût mesuré des licences. Il faut bien noté que depuis ColdFusion 9, il est nécessaire d’avoir des licences uniquement pour la production, l’intégration et le développement étant maintenant compris. Et il est toujours possible d’utiliser une alternative libre comme Railo.
Aurélien Deleusière




