Ninja web framework est un projet qui a débuté au début de l’année 2012.
L’objectif de ce nouveau framework est d’offrir une stack web permettant de démarrer rapidement un projet web.
L’architecture proposée permet un développement productif.
Globalement l’outil se base sur des standards éprouvés tel qu’une architecture stateless (REST), une approche de ressources non partagées (facilitant le développement concurrent) etc.
Je ne sais pas vous, mais en lisant ces quelques lignes on retrouve pas mal de points communs avec un autre framewok avec lequel vous avez peut-être déjà joué :). Il s’agit bien évidemment du célèbre framework Play.
Bien que l’approche globale soit très similaire, lorsque l’on détaille les briques techniques on distingue des choix nettement différents. La volonté de l’équipe a été de se baser sur des standards tels qu’un conteneur de servlet, un outil de build largement éprouvé comme Maven, la JSR303 pour la validation, etc.
Le binaire produit n’est autre qu’un traditionnel fichier WAR.
Un point intéressant est la compatibilité avec la plateforme cloud GAE.
L’objectif est de rester à 100% dans l’écosystème java en se basant sur des outils qui ont fait leurs preuves.
On peut se demander la raison d’un énième framework web.
Conscient de cela, les auteurs nous expliquent leur motivation par le fait qu’ils (sont) étaient des inconditionnels de PlayFramework dans sa première version.
Lors de la sortie de la version 2, complètement réécrite sur la base du langage Scala, ils n’ont pas adhéré aux choix d’évolution de l’outil.
Ils ne mettent pas du tout en cause les choix qui ont été fait, néanmoins selon eux, certains points font cruellement défaut :
– Une mauvaise intégration dans les IDEs
– un outil de build (SBT) contenant des bugs
– la nature asynchrone de Play donnait lieu à du code difficile à lire et comprendre
– etc
(Ces éléments sont à replacer dans leur contexte début 2012)
A l’heure actuelle, ces points négatifs relevés à l’époque sont-ils toujours aussi pertinents ?
Est ce que ce framework a sa place dans l’écosystème technique existant ?
Le site du projet est très bien fait et permet un démarrage rapide.
Que l’on soit pour ou contre, pour diverses raisons, je pense que ce projet mérite que l’on s’y intéresse.
N’hésitez pas à partager votre point de vue en ajoutant un commentaire à ce post.