Compiler son code? « It’s so 2000s » ou un apercu de Play et JRebel

Un petit post, car je viens de découvrir coup sur coup deux outils dans la planète Java: le framework web Play (dont je parle dans mon compte rendu des 2 ans du Paris JUG) et les outils de développement de ZeroTurnaround dont JRebel. Le point commun entre ces outils: se débarrasser de la compilation entre chaque modification du code. Petit rappel, traditionnellement, un programme est écrit, compilé, puis relancer des le début via la JVM. Avec ces nouveaux outils, l’étape de recompilation est transparente et la réexécution du programme depuis la première instruction n’est plus obligatoire. C’est un temps précieux que gagnent les développeurs!

Ce qui existe déjà: Java HotSwap

Depuis la JVM 1.4, il est déjà possible de modifier du code à chaud, et ce grâce au Debugger API. Néanmoins, il n’est pas possible de modifier la signature ou ajouter une méthode sans risquer un redémarrage forcé de notre JVM. En 2002, c’était une véritable avancée pour les développeurs, surtout pour ceux qui développaient du Web et qui voyaient leurs collègues développant avec PHP4 ne jamais se soucier de ce genre de problèmes.

JRebel de ZeroTurnaround

JRebel est similaire à la Java HotSwap de Sun. A ceci près que ses fonctionnalités sont plus étendus: il est ici possible de modifier la structure de sa classe sans relancer la JVM. ZeroTurnaround propose aussi d’autres outils du même genre tel que JSP Weaver (pour éviter la recompilation des JSP) et LiveRebel (afin de livrer en production une application sans downtime). Vous pourrez trouver une explication sur leur blog de cette technologie estonienne (et oui, tous les trucs biens ne viennent pas forcément des USA 😉 ).

Petit bonus, en l’honneur des deux ans du ParisJug, ZeroTurnaround offre des licences JRebel juqu’au 12 Janvier 2010.

Le Framework Play

La philosophie de ce framework open-source est de retrouver le plaisir de coder. Une de ses caractéristiques et de ne plus vous embêter avec des stacktraces (des fois incompréhensibles) en améliorant le rendu des messages d’erreur et de vous faire oublier la notion de compilation. La vidéo suivante vaut mieux qu’un long discours:

Liens: