Tags

La journée avait mal commencé, j’ai réussi à rater mon train, bloqué dans un embouteillage insolite crée dans un Paris presque désert à 7H00 du matin par un défilé de la garde républicaine. Sans doute une répétition du 14 Juillet … Ils sont beaux ces chevaux, mais quand on les regarde défiler, bloqué au feu rouge en regardant défiler l’aiguille de sa montre et en imaginant partir le train, c’est beaucoup moins drôle … sans parler du fait que le prochain train part une heure et demi plus tard …

Je suis donc arrivé bien en retard au Eclipse Acceleo Day, organisé dans les locaux de l’Ecole des Mines de Nantes pendant les Rencontres Internationales du Logiciel Libre.

Malgré tout, je n’ai raté que l’introduction d’Etienne Juliot, co-fondateur d’Obeo, la société derrière Acceleo et les deux premières présentations. J’ai quand même pu assister aux retours d’expérience d’Olivier Leal de Bull et Samuel Liard d’Orange Labs sur leur mise en œuvre des approches Model Driven sur leurs projets. Retour intéressant mais classique. Rien de nouveau sous le soleil. Par contre, présentation très punchy de Samuel, j’ai beaucoup aimé son style  dynamique, pragmatique et plein d’humour. Selon lui, pour éviter les polémiques des puristes MDA sur le méta-modèle pas assez abstrait de son socle MDA, il l’a renommé en MDD. Maintenant, on l’embête plus parce que son méta-modèle est trop spécifique à Java 😉

Pour ma part, je n’avais pas envie de faire un retour d’expérience, quatre dans la matinée, c’était déjà bien assez. J’ai préféré présenter un sujet de veille MDSD avec une présentation intitulée « MDSD Scaffolding and Acceleo » ou je présentais mes slides sur le Scaffolding MDSD et une mise en œuvre de Scaffolding « sur-place » dynamique implémentée avec le moteur de règle Drools et la nouvelle mouture du moteur de génération de code MTL Acceleo. Voici les slides (en anglais) de la présentation:

Je posterai sur ce blog une vidéo flash de la démonstration effectuée pendant la présentation ainsi que des explications dans un billet dédié à cet effet un peu plus tard.

La présentation a été très bien reçue, beaucoup de discussions ont suivi. Les présentations étaient filmées mais il a fallu que la carte de la caméra s’avère pleine en plein milieu de ma présentation donc je ne suis pas sûr de pouvoir poster une vidéo de ma présentation. Je posterai malgré tout une vidéo flash de la démo.

Après ma présentation, c’était François Gaudin qui présentait WISSS, une DSL web ciblant la génération d’applications PHP. Retour d’expérience très intéressant sur la conception d’une chaîne de génération de code Open Source pour PHP. C’est une chaîne prenant en entrée une DSL contenant des concepts d’application web de type écrans, transitions, widgets, contrôleurs, etc … et générant du code directement en modèle à texte avec Acceleo sans passer par un modèle intermédiaire. Ce qui m’a frappé, c’est le bilan qu’il fait sur cette expérience. Selon lui, la distance entre les concepts de sa DSL et la technologie cible est très importante et induit une trop grande complexité dans ses templates de génération de code, les rendant difficilement maintenables. Il ne les développe d’ailleurs plus activement. Il s’intéresse maintenant à une chaîne Django, une technologie aux concepts plus proches de sa DSL, la rendant plus propice à une approche simple M2T. Sa conclusion : préférer l’utilisation d’un PSM quand la technologie cible est trop éloignée du PIM.

Du coté des scoops, nous avons appris qu’une interopérabilité entre Acceleo, ATL et QVTO était prévue. Cela signifie qu’il sera possible d’utiliser de manière transparente des helpers ATL et des query QVTO depuis des templates MTL Acceleo ! La nouvelle version de MTL Acceleo en plus d’être un langage polymorphique fortement typé, supporte aussi une fonctionnalité que j’attends depuis longtemps, le dispatch polymorphique dynamique. Cela signifie que la sélection des templates est non seulement polymorphique mais que le polymorphisme ne se calcule pas sur le type des paramètres déclaré à la compilation mais sur le type concret des paramètres observé à l’exécution. Cela permettra de diminuer de manière drastique la complexité cyclomatique des templates en éliminant les blocs conditionnels de test de type d’instance. Cela permet également une meilleure ouverture des templates au sens du principe d’ouverture/fermeture. MTL Acceleo inclut également en standard un mécanisme déclaratif d’extension de cartouche.

Combiné avec le dispatch polymorphique dynamique, le mécanisme d’extension déclaratif de cartouche augure de templates plus concis, lisible, facilement extensibles et donc plus maintenables. Toutes ces propriétés sont primordiales dans une chaîne MDSD Entreprise. Elles manquaient cruellement dans la version précédente d’Acceleo.

Par ailleurs, ce qui est vraiment agréable dans ce genre d’évènements, c’est de rencontrer les membres de la communauté Model Driven en chair et en os. J’ai enfin pu rencontrer et discuter longuement avec Cédric Brun d’Obeo dont l’article sur les modèles live avec Drools et EMF m’a soufflé le maillon qui me manquait, à savoir l’utilisation des adapteurs EMF pour intégrer Drools et EMF dans le premier prototype de Scaffolding que j’ai réalisé. Il s’est montré très intéressé par mon projet de Scaffolding MDSD. Il m’a proposé d’essayer de l’intégrer à Obeo Designer et en effet, ça rendrait vraiment bien. On essaiera sans doute de faire un POC. Plus d’infos là-dessus et très certainement une démo très bientôt.

J’ai aussi pu discuter avec Jérôme Benois, très intéressé lui-aussi par le Scaffolding MDSD et il m’a avoué avoir déjà fait quelque chose de similaire il y a quelques temps, les grands esprits se rencontrent Jérôme 😉 On a aussi beaucoup discuté de customization de modèle et de EMF Styling, ma DSL textuelle de customisation de modèle type CSS.

Finalement, j’ai aussi eu le privilège de rencontrer Jean Bezivin avec qui j’avais déjà eu quelques échanges par twitter ici et là. Il a même eu la courtoisie de me raccompagner !

Cette journée spéciale Acceleo devrait donc se renouveler en 2010. Vivement l’année prochaine !

Advertisements