DEVOXX 2015 : “Le retour en force de GWT”

Capture

Le Devoxx, c’est le rendez-vous des nouvelles technos… et de celles qui durent ! Adepte de la première heure et convaincu de l’approche proposée par GWT, je me devais d’assister à cette session présentant les dernières évolutions du SDK et animée par le percutant Sami Jaber.

GWT est bel et bien là !

C’est la première chose soulignée lors de cette présentation. Malgré les rumeurs d’abandon du projet depuis que des solutions alternatives ont été proposées par Google comme Dart ou Angular, la communauté est active (les versions 2.8 et 3.0 sont en cours de développement) et c’est bel et bien GWT que Google a choisi pour développer son tout dernier client mail Google Inbox.

Java 8

Une des principales nouveautés attendues dans la prochaine release sera bien entendu le support de Java 8. En effet, l’utilisation des lambda expressions prendront tout leur sens dans la gestion des évènements UI et des appels serveurs qui, de façon inhérente au JavaScript, sont asynchrones. Les projets GWT bénéficieront ainsi de cette nouvelle syntaxe plus concise :

GWT

JSInterop

L’objectif de JSInterop est, comme son nom le sous-entend, de faciliter l’interopérabilité Java/Javascript au sein d’une application GWT. Concrètement, il s’agit de faire correspondre, via un jeu d’annotations, une interface Java avec une implémentation en Javascript. Cette solution, plus intuitive que JSNI, devrait permettre de faciliter encore un peu plus l’intégration des librairies JS dans l’écosystème GWT.

Compilation et débogage

De gros efforts ont été fournis pour améliorer l’expérience de développement. La compilation incrémentale doit permettre de réduire les temps de compilation et de prendre en compte les modifications de code instantanément au sein du navigateur. Alliée au Super Dev Mode et Source Map, il sera ainsi possible de déboguer le code Java directement au sein du navigateur.

Singular

Initialement présenté lors de la dernière conférence GWT.Create, Singular est un framework qui doit apporter à GWT les principaux concepts qui ont fait le succès d’Angular : structuration du code, MVC, templates, double data-binding, injection de dépendances, approche déclarative des composants, etc. Ajoutez à ces concepts la philosophie d’un langage typé comme Java et d’un compilateur optimisé comme GWT, et on gagne les avantages suivants :

  • La compilation habituelle du code Java (Model et Controller), mais également des templates HTML (View) permettent d’identifier au plus tôt les bugs éventuels et de bénéficier de l’auto-complétion de l’IDE ;
  • L’optimisation du code Javascript généré, au-delà de ce qui pourrait être fait manuellement ;
  • Le code Javascript produit est propre à la plateforme cible et n’embarque que ce qui lui est nécessaire.

C’est sur ce dernier point que Singular enfonce le clou. Il ne s’agit plus simplement de produire une application Web adressant tous les navigateurs du marché, mais désormais de proposer une solution pour créer des applications natives, avec pour principale cibles iOS et Android. En effet, c’est tout naturellement que le couplage lâche entre la vue et le contrôleur ont amené les Développeurs du framework à pousser le concept jusqu’au bout : écrire d’un côté un code unique pour la partie contrôleur et de l’autre des templates propres à chaque plateforme cible (UiBuilder pour iOS, Layout XML pour Android, HTML pour le Web). Pour être tout à fait complet, Singular apportera avec lui son lot d’APIs permettant d’accéder aux fonctionnalités natives du terminal (géolocalisation, caméra, etc.). Grâce à cette dernière nouveauté, il se pourrait bien que GWT vienne appuyer le slogan original de Java: « Develop once, run everywhere ».

Conclusion

Cet article reprend l’un des concepts qui m’ont parus les plus prometteurs annoncés lors de la conférence de Sami Jaber. N’oublions pas que GWT, avec son concept original (et qui le reste 10 après !) est un incubateur d’idées, où les meilleures d’entre elles se voient pérennisées lors des releases suivantes. Si vous êtes intéressés, je vous propose de regarder du côté de GSS (Less/Sass like), Elemental (HTML5 features) et de divers travaux qui émergent autour des Web Components, Polymer et de GWT.

Share
Guillaume PARAMELLE
Guillaume PARAMELLE

921

Leave a Reply

Your email address will not be published. Required fields are marked *