GWT 2.8 enfin disponible, et maintenant ?

Il aura fallu plus de 3 ans pour livrer cette version majeure de GWT. La version 2.8 sera officiellement la dernière version supportée n’impliquant aucune rupture de compatibilité. Si le chemin a été long pour arriver à cette disponibilité c’est en partie du fait des innombrables modifications du code d’origine pour supporter les nouveautés du JDK 8. Cette version apporte une vraie fraicheur à GWT avec les lambdas du JDK, l’approche orientée fonctions, les collections.

Il faut noter par ailleurs le vrai travail sur les performances pour éviter les opérations de boxing/unboxing sur certains types numériques. L’utilisation des Map ES6 et l’intégration des API JSInterop et GSS pour la partie feuilles de styles. Plus que jamais GWT mérite son nom de « Toolkit », une boîte à outils prêt à l’emploi comprenant des centaines de classes utilitaires couvrant des domaines tels que l’internationalisation, la structuration MVP, la gestion des ressources, le chargement différé ou encore les appels RPC. Face à un marché JavaScript complètement fragmenté et nécessitant d’importer une ribambelle de Framework à la pérennité douteuse, GWT 2.8 propose un environnement complet et auto-suffisant, le tout en JAVA.

Mais cette sortie ne doit pas masquer le fait que GWT est à un tournant de son histoire. Si la mode « boite à outils » a rendu de fiers services et continuera à en rendre, il n’en reste pas moins que le marché va vers la mode des applications « puzzle ». Google se concentre actuellement sur la version 3.0 de GWT qui sera une sorte de transpileur Java vers JavaScript qui fait table rase sur le passé. On utilisera ainsi n’importe quelle bibliothèque JavaScript du marché (React, Angular, JQuery, BackBone, etc…) simplement en générant des classes Java réalisant le pont avec le monde faiblement typé JavaScript. Alors que le langage JavaScript évolue structurellement vers plus de Java (concept de classes, génériques, annotations, …) Java se rapproche de JavaScript dans GWT. Il y a des évolutions technologiques qui surprennent parfois.

Pour l’heure, cette version 3.0 appelé aussi « Jackal » (pour J2CL) est à l’état de prototype et les rumeurs vont bon train sur une éventuelle sortie en béta dans l’année 2017. Ce qui est sûr, c’est que le fameux comité créé par Google pour ouvrir GWT a vécu. Plus que jamais Google garde la maîtrise de GWT, de sa roadmap et des évolutions à apporter à la 2.8. Concernant l’avenir, il y aura deux stratégies à adopter, la conservatrice mais néanmoins innovante consistant à développer avec GWT 2.8 et les nombreuses nouveautés du JDK 8, et la stratégie plus « fashion » de GWT 3. Il y en aura pour tous les goûts, notamment pour les allergiques à JavaScript, qui contrairement à ce qu'on pourrait penser, sont encore nombreux.

Nous aurons l’occasion d’en reparler sur ce blog.