Developpez.com - Rubrique Java Web

Le Club des Développeurs et IT Pro

GWT disponible dans sa version 2.8, JSInterop et support de Java 8.

Retour dans la course de Java pour le développement web ?

Le 2016-10-24 11:13:04, par Mickael Baron, Rédacteur
Bonjour,

La dernière version stable du framework GWT est enfin disponible. GWT 2.8 était en préparation depuis quelque temps (novembre 2014). Cette attente aura été nécessaire, car cette version finale apporte de grosses fonctionnalités comme :

  • le support de Java 8 pour être plus proche du langage fonctionnel JavaScript ;
  • l'ajout de JSInterop, qui facilite l'intégration de bibliothèques JS existantes ou la prise en compte de nouveaux standards comme les WebComponents ;
  • un Super Dev Mode qui permet de tester plus rapidement son développement web. Les temps de compilation incrémentale ont été réduits.


GWT était en perte de vitesse pour le développement web, mais avec ces nouvelles fonctionnalités, il permet à Java de se positionner dans la course des nouveaux langages qui tentent d'enrichir ou remplacer JavaScript (CoffeeScript, TypeScript, ES6, Dart...). En effet, vous pouvez utiliser votre environnement de développement préféré comme Eclipse ou IntelliJ et exploiter toute la puissance de l'écosystème Java pour développer des applications web de très bonne qualité. Sans compter également toutes les bibliothèques JavaScript qui peuvent être facilement intégrées en utilisant JSInterop.

L'équipe Java de Developpez.com a toujours proposé des articles pour soutenir le framework GWT. N'hésitez pas à consulter les ressources suivantes :



Que pensez-vous de cette nouvelle version ?

Source : https://groups.google.com/forum/#!ms...k/MlkNU2oIBgAJ
  Discussion forum
17 commentaires
  • j-mi-jim
    Membre du Club
    Je n'ai jamais lâché GWT depuis ses débuts !
    Couplé au framework Errai, les possibilités sont énormes. L'arrivée de jsinterop les booste encore plus.

    Ce qui m'inquiète, c'est vraiment le futur, exemple sur la partie UI. Sur mes projets récents, j'utilise polymer afin d'avoir des webcomponents utilisables au travers de js interop ( je pense qu'il y a bcp de développeurs qui utilisent encore les composite pur et dur).
    Or, le futur de GWT prédit des breaking changes ( dont la suppression des widgets). Même si sur les récents projets j'essaie d'éviter leur utilisation je me suis permis au moins d'utiliser le HTMLPanel et les uibinders au minimum!
    Si l'uibinder et le htmlpanel disparaissent, j'espère qu'il y aura qd même une librairie (même si elle ne serait pas recommandée pour les nouveaux projets) qui permettra encore leur utilisation le temps d'une migration afin de pouvoir utiliser les nouvelles fonctionnalités de GWT3.0 sur d'anciens projets basé sur gwt 2.8!

    Enfin je rêve un peu, le temps que GWT 3 sort, il y aura eue de l'eau qui aura coulé sous les ponts.

    Ceci dit, je peux comprendre le doute des décideurs sur le choix GWT pour les nouveaux projets de peur que ces breaking changes freine l'évolutivité de leur projet.
    Du coup, j'aurais tendance à dire qu'il y aura moins d'utilisation de GWT sur les nouveaux projets de grande envergures tant que GWT 3 ne sera pas sorti.
  • Mickael Baron
    Rédacteur
    Bonjour,

    D'ici à ce que GWT 3.0 sorte on a le temps.

    De mon point de vue, GWT 3.0 sera plus comme un langage (à la TypeScript mais basé sur Java) + des outils qu'une bibliothèque.

    Mickael
  • Gugelhupf
    Modérateur
    Ce serait génial si un framework (GWT 3.0 peut-être ?) compile directement du code Java en WebAssembly.
  • Mickael Baron
    Rédacteur
    Est-ce qu'il existe des choses autour de JS => WebAssembly ?

    Mickael
  • Gugelhupf
    Modérateur
    Bonjour Mickael,

    Oui il existe des choses autour de JS => WebAssembly

    Il est possible d'accéder à WebAssembly en JavaScript grâce à l'API `Wasm`, mais il faut au préalable l'activer.

    Activer WebAssembly sous Firefox :
    1. Aller dans la barre d'URL et saisir : about:config
    2. Mettre à true l'option suivante : javascript.options.wasm

    Tester le bout de code suivant :
    Code javascript :
    1
    2
    3
    4
    5
    if (typeof Wasm !== "undefined") { 
        alert("WebAssembly exists"); 
    } else { 
        alert("WebAssembly does NOT exists"); 
    }
    Avec un peu d'instrospection on peut voir qu'ils en sont à la version 11, et qu'il existe des fonctions instantiateModule() et toSource(). Mais bon à l'avenir il est prévu de passer par le tag <script type='module'> pour charger WebAssembly

    Tu as du voir l'article de Stéphane sur le WebAssembly Community Group qui a fourni une version initiale du MVP (une release candidate) avec C et C++. JS, lui ne sera "prêt" que lorsque le Garbage Collector sera implémenté, et ce dernier ne sera fait qu'après le MVP.

    Once GC is supported, WebAssembly code would be able to reference and access JavaScript, DOM, and general WebIDL-defined objects.

    Sources : http://webassembly.org/docs/web/ , http://webassembly.org/docs/future-features/

    Je pense que nous aurons une meilleure vision au premier trimestre 2017 :
    Envoyé par http://v8project.blogspot.fr/2016/10/webassembly-browser-preview.html
    the WebAssembly Community Group plans to produce an official specification in Q1 2017, at which point browsers will be encouraged to ship WebAssembly on-by-default

    A+
  • Mickael Baron
    Rédacteur
    Merci pour ces détails.

    Je t'avoue que je suis un peu perdu entre toutes les normes (Web Assembly, Web Components...)

    ça serait bien un tutoriel qui montre tout cela de manière pédagogique ;-)

    Mickael
  • unZero
    Futur Membre du Club
    Hello,

    Quelqu'un saurait-t-il si les conférences de ce GWT con 2016 ont été filmées ?
    Il me semblait que c'était chose courante pour ce genre d'évènements, mais en faisant régulièrement des recherches sur le net à ce sujet, aucune info ne filtre
    Certains intervenants ont publié des slides. Très louable de leur part mais sans les commentaires, ça n'est pas d'un grand intêret.

    Merci !
  • Mickael Baron
    Rédacteur
    Salut,

    Tu peux demander directement sur le Twitter de la conférence. Francesca Tosi répond rapidement

    Mickael
  • unZero
    Futur Membre du Club
    Bonne idée, mais je n'ai pas de compte Twitter (ni Facebook d'ailleurs).
  • Mickael Baron
    Rédacteur
    Pour Facebook tu ne rates rien ;-) Pour Twitter c'est pratique pour faire de la veille.

    Je l'ai fait pour toi, wait and see ...

    Mickael