Thibaud Arguillère (4D) "Nous déportons la logique applicative au niveau du JavaScript"

L'éditeur français commercialise un IDE Open Source conçu pour créer des applications Internet riches, basées sur HTML5 et CSS. Objectif : simplifier développement et maintenance.

JDN Solutions. Vous lancez un nouvel IDE JavaScript en version beta, baptisé Wakanda, adapté au développement d'applications Internet riches. Quels types de projet ciblez-vous avec ce nouvel outil ?

Thibaud Arguillère. Nous sommes partis de deux constats. En premier lieu, de plus en plus d'entreprises ont besoin de déployer des applications métier reposant sur les technologies Web, qui soient aisément déployables dans des environnements de Cloud Computing. Ensuite, les solutions de développement existantes qu'elles ciblent le langage Java ou PHP, impliquent d'empiler plusieurs couches : le front office, la logique applicative et l'accès aux données. Le tout rend les projets de développement à la fois complexes à réaliser, mais aussi à maintenir. La modification d'un objet métier implique souvent des modifications au niveau de l'accès aux données.

Notre objectif était donc de proposer un outil de développement d'applications Internet riches offrant une logique plus simple.

Comment avez-vous géré cette problématique dans Wakanda ?

Dans Wakanda, les applications sont créées en se basant directement sur le modèle de données. C'est donc un outil de développement piloté par les modèles, ou Model Driven Development. Les dataclass sont définis comme des objets métier par le biais d'attributs. Ainsi, un objet métier définissant un rendez-vous dans un agenda, regroupera des données temporelle et de lieux qui seront donc stockées dans un seul endroit. La logique métier et données est en partie centralisée. Une interface graphique permet de définir le modèle de données et permet de l'associer avec des objets graphiques. Une partie de la logique applicative est ainsi fusionnée avec la couche d'accès aux données.

Une fois que le modèle de données est défini, on l'instancie dans l'interface. C'est JavaScript qui permet de faire le lien. Il n'est pas nécessaire ensuite de générer et optimiser du code en plus pour réaliser le mapping avec la base de données, comme c'est le cas quand on utilise des frameworks, type Hybernate. Il n'est pas nécessaire de modifier un objet lors d'un changement dans le modèle de données, tout est dynamique. Pour lister l'ensemble des employés d'une société, on définit par exemple un modèle de données avec une classe compagny.employee et les attributs qui vont bien pour obtenir le résultat voulu.

"Nous envisageons de concevoir un environnement de développement accessible via un navigateur"

 On peut ensuite accéder à l'objet et le manipuler sans avoir à changer son code. La gestion des règles et attributs, "ne pas renvoyer de nom vide pour un employé" ou encore "renvoyer toujours le nom et le prénom" par exemple, est écrite en JavaScript. Une interface graphique permet de générer une partie du code, et définir ses classes. Un éditeur de code permet d'achever l'application. Il est doté de possibilités d'auto-complétion basées sur les classes qui auront été définies dans le datastore.

Y-a-t-il d'autres modes pour accéder aux données ?

Au-delà de la déclaration d'attributs permettant d'accéder au datastore, nous supportons une API de recherche NoSQL pour accéder aux données. Elle est adaptée aux applications métier critiques. Mais, nous avons fait des tests qui montrent qu'un datastore Wakanda peut gérer 1 milliard de messages avec des réponses de l'ordre de quelques millisecondes. 


Avec Wakanda, toutes les applications en client lourd peuvent-elles migrer vers le Web ?

Certaines applications vont migrer vers des technologies Web, notamment pour évoluer vers des environnements de Cloud ou de SaaS. D'autres ne nécessitent pas de passer par un tel changement. Sans être entièrement réécrites, elles peuvent néanmoins être webifiées, et dotées d'une interface client pour le Web. Wakanda est un outil qui peut accompagner tous ces types de projet.

Prévoyez-vous de lancer un environnement de développement en mode Cloud, sur le modèle du projet Eclipse Orion ?

C'est un projet que nous avons dans notre feuille de route. Nous envisageons en effet de concevoir un environnement de développement accessible par le biais d'un navigateur, qui pourrait ensuite être mis en place pour réaliser des projets sur un serveur distant.

Il ne s'agit pas d'un besoin immédiat, mais il pourrait devenir plus présent d'ici un ou deux ans. Certains DSI avec lesquels nous sommes en contact commencent à nous en parler. Le développement en mode Cloud pourrait rendre bien des services, en permettant par exemple de passer facilement d'un serveur de tests à un serveur de production, paramétrer en quelques secondes de nouvelles machines, lancer un nouvel environnement...


Prenez-vous en compte l'émergence de la mobilité ?

Dans Wakanda, nous avons cherché à soigner les possibilités autour du développement mobile qui est clairement une tendance qui monte en puissance. HTML5 et CSS qui constituent les langages de l'IDE pour le front office sont clairement adaptés à ce besoin. Ces standards facilitent la création d'IHM adaptées à tout type de terminal mobile et smartphone. Nous proposons une technologie de widget dessinée spécialement pour réaliser ce type d'interface graphique.
 

Thibaud Arguillère est Senior Software Evangelist chez 4D. Wakanda dispose d'une version Open Source, et d'une version Entreprise.