Wakanday & JS.everywhere(2012)
La société 4D propose dorénavant deux gammes de produits : 4D pour le développement de solutions client-serveur et Wakanda pour les applications web et mobiles. Á la suite du 4D Summit européen se déroulaient les 16 et 17 novembre deux journées de conférences : Wakanday et JS.everywhere(2012) (#jse2012).
La jonction de deux communautés
Même si certain(e)s y sont à l'aise (Elodie, Olivier(s), même Roland ;-) ...), la communauté des développeurs 4D n'est majoritairement pas une réunion de développeurs Web. Ce n'est que poussés par les demandes clients que ses membres s'éloignent un peu de l'environnement intégré, rassurant (et tellement productif) de 4D.
A l'opposé, la communication de la société 4D sur son nouveau produit Wakanda s'est d'abord focalisée sur les développeurs Web en particulier en s'appuyant sur le vecteur de communication JavaScript.
La journée Wakanday, judicieusement placée entre l'événement 4D et l'événement JavaScript, permet aux membres des deux communautés de découvrir Wakanda et de commencer à échanger...
Wakanday (vendredi 16 nov.)
Journée chargée pour moi avec une session d'atelier agile Birdie-Birdie le matin et une session "Développement agile avec Wakanda" l'après-midi.
Mon objectif dans cette session de 45 mn destinée aux débutants était double :
introduire brièvement les concepts des démarches agiles, puis illustrer le changement de paradigme par un court atelier. J'avais choisi Agile Detention: I must limit work in progress que j'apprécie pour son efficacité et sa concision.
montrer comment Wakanda convient à un développement en mode agile au travers de deux exemples.
Premier exemple : la facilitation de l'émergence d'un modèle métier grâce à la prise en compte dynamique des modifications apportées au modèle dans le Graphical Model Designer :
et leur test immédiat permis par exemple par le Data Browser.
Depuis les DataClasses du modèle, le DataBrowser génère dynamiquement une application qui permet les actions CRUD sur les entités au travers de deux formulaires grille et détail. Le modèle est ainsi toujours testable et exécutable sans requérir d'écriture de code.
Second exemple : l'intégration d'un service de test unitaire (YUI) et sa démonstration sur code Server-Side JavaScript.
Pour plus d'informations se reporter à la description de la bibliothèque yui et à un article du Wakanda Doc Center : Writing Unit Tests in Wakanda.
Regret : sous la pression d'une time-box assez courte, j'ai commis l'erreur de débutant de ne pas prendre le temps de remédier immédiatement à un problème de résolution d'affichage sur le vidéo-projecteur. Résultat : impossible d'accéder aux actions requises dans le Wakanda Studio affiché dans une résolution trop faible, impossible de visualiser la liste des entités...Des démos un peu gachées, dommage.
Action corrective : la prochaine fois tester les démos en mode dégradé et s'assurer de la définition minimale pour le fonctionnement. Si cette définition n'est pas assurée, prendre le temps de vérifier les réglages de l'ordinateur et du vidéo-projecteur. Si elle n'est toujours pas atteinte, avoir prévu un screencast de la démo.
Les annonces Wakanda v4
J'ai retenu quelques informations très intéressantes au fil des présentations plénières.
Rappelons que le rythme de sortie des nouvelles versions de Wakanda devrait suivre une périodicité de 3 mois ce qui est une très bonne nouvelle.
Tests Unitaires
Tout d'abord, je suis admiratif du travail effectué pour la mise en place d'une couverture de test maximale des différentes composants de Wakanda.
(crédits @olivierd4d)
Cet effort important se traduit par la publication chaque matin des résultats des tests sur la dernière nightly build.
Connexions externes
Autre annonce importante accompagnée d'une démonstration par Laurent Ribardière lui-même, la possibilité d'ajouter au catalogue de l'application courante des DataClasses provenant d'une source externe (grâce à la fonction addOutsideCatalog()) : un autre serveur Wakanda, un serveur 4D, un autre serveur (MySQL...).
Les DataClasses externes sont extensibles et leur accès se fait ensuite de manière totalement transparente.
Intégration GIT
Faciliter le développement collectif et le déploiement des mises à jour. C'est l'objectif que poursuit l'équipe 4D et qui se traduira dans la prochaine version par une intégration de GIT au Studio et le fonctionnement de Wakanda Server comme service GIT.
Déploiement dans le cloud
Mais la nouvelle la plus importante pour le futur de Wakanda est sans doute l'annonce d'un partenariat avec Amazon qui permettra depuis le Studio un déploiement en un clic dans le Cloud AWS, comme pour une solution Ruby ou PHP.
Cela fut annoncé à la fin de la session du brillantissime Pierre Gilot d'Amazon (j'ai découvert cet orateur qui m'a carrément bluffé par son aisance et sa clarté) :
Modules de développement dans le navigateur
Rappelons que le Studio s'architecture autour de composants html-JS s'exécutant au sein d'un conteneur écrit en C++.
Sans remplacer l'efficacité de l'intégration dans le Studio, pour des interventions ponctuelles (débogage, administration...), il sera possible d'exécuter certains de ces modules dans un navigateur permettant un accès ... everywhere.
Une certaine maturité
Tout cela concourt à donner la nette impression que le produit gagne en maturité. Vous pouvez vous en faire une idée en consultant la roadmap de Wakanda disponible en ligne.
Au-delà des fonctionnalités et de la technique, 4D semble également diversifier sa communication. Initialement uniquement axé sur la promotion via la tendance porteuse JavaScript, le message semble aujourd'hui s'affiner :
importance donnée à l'objectif de génération de Business Web Apps,
volonté de présenter Wakanda comme un outil modulable : on peut utiliser le Serveur avec n'importe quel front-end via REST, on n'est pas obligé de développer dans le Studio, on peut utiliser d'autres bibliothèques que WAF, etc.
Ouverture vers d'autres communautés, dont celle naturelle des développeurs 4D.
L'accent est également mis sur la puissance de l'approche de modélisation métier, message que j'ai eu le plaisir de relayer lors de la conférence ICSSEA'12 avec une session sur le développement piloté par le modèle (Designing Web model-driven applications).
Cela me parait indispensable car la mise en valeur d'une solution de développement et de déploiement intégrée ne peut se résumer à clamer "JavaScript est le meilleur langage du monde et on utilise JS à tous les étages". Il est temps que 4D dépasse la communication un tantinet démagogique vers la communauté JS pour s'affirmer en direction des entreprises comme une solution professionnelle, efficace et productive (qui a dit agile ?). JavaScript n'est qu'un moyen et non une finalité.
D'autant plus que sur le territoire même des solutions reposant sur JavaScript ou exploitant l'étiquette noSQL, la concurrence s'intensifie, en plus de CouchDB, MongoDb , voici OrientDB, ArangoDB,...
JS.everywhere(2012) samedi 17 nov.
Je n'ai pu assister qu'à la matinée de cette dernière journée et encore au prix d'un effort prononcé pour conserver les yeux ouverts, la fatigue commençant à devenir très présente.
Bon, le guru Douglas Crockford a fait son show de manière très professionnelle, mais (opinion personnelle ;-) ) avec plus d'auto-complaisance que de réels enseignements :
(crédits DamFuzInfo)
Je regrette de n'avoir pu assister à la présentation de MIchael Chaize sur PhoneGap :
(crédits DamFuzInfo)
mais les vidéos bientôt disponibles devraient me permettre de combler cette frustration...
Bon vent à Wakanda v4 et aux Business Web Apps!











