GWTCon Keynote

Arnaud Tournier, le 11-11-2015

Alberto Mancini and Fransesca.

Why GWT Con ?

Because they believe GWT needs a strong community and GWT Con is the contribution towards that.

110 people. Mostly developers.

GWT Con website is available on github.

Hash tag : #GWTcon2015

Julien Dramaix, keynote.

This kind of event keeps the community alive.

Last year Daniel Kurka made the keynote. Since then :

  • GSS status : stable and not experimental anymore (used in production at google - migrated to gss everywhere). Old css bundle will be deleted just after 2.8. It won’t be turned on by default on GWT 2.8, in order not to block people from migrating. GSS does better optimizations. So you need to migrate. – new features : the for loop, concat() function, @gen-webkit-keyframes annotation for keyframe generations with optimization to the max.

  • Compile time : SuperDevMode 6x faster. Example, Inbox took 30 seconds and now it take 3 seconds. 100% of GWT apps at Google use SuperDevMode with incremental compilation. Production compilation has also improved with introduction of a new optimization process : during optimization, only changed code is reinspected for possible new optimizations, this led to 20% compilation time reduction on large applications.

  • JsInterop : new simpler specification. In GWT 2.8 the final spec have been implemented, it is enables by default and not experimental any more.

    @JsType public class Bar{

    }

    // Javascript var bar = new foo.Bar(); if(bar.bool){ … }

A presentation will be given on JsInterop at the end of the day.

  • Java 8 support : syntax is fully supported. Around the API, some Java 8 api will be implemented : functional interface, optional. But streams won’t be available yet.

  • IDE Integration : Brandon Donelson is maintaining the Google Plugin

  • Source mapping : some patches. Chrome Dev Tools team made improvments o their side, so Java source map is much better.

  • Web Components : nothing was done on this side. Waiting for Ecma6 supporting WC. But the problem is that the spec is not really coming and not really object oriented friendly.

  • Peformance : HashMap put operation is 2.8x faster, Long division is 5x faster. And Double/Boolean are not boxed anymore which gives more performance.

  • Generic accessor for GWT Properties : can use System.getProperty("foo.bar") when property is defined with define-property.

GWT 2.8 beta has been released for beta testers. Public available today or tomorrow.

Normally GWT will be ready in a month.

Future of GWT

GWT has a lot of burden. 10 years old, that’s old.

The decisions made at that time are no longer ideal.

Doing too much : permutation, generations, optimisations, change file trancking, servlet

GWT is loved for performance but hated for development slowness.

So Google is developping a new Java to Javascript compiler : J2CL (Jackal). Will output ES6 with JsDoc Closure style annotations.

Targets modern JsFeatures

Blazing fast

Fully integrated with the Closure compiler.

J2CL is not : - optimizer or linker (closure), - dependency injector (dagger2), - no proprietary generators (jsr 269) - a web toolkit (won’t be aware of DOM).

There is no roadmap yet, but j2cl is growing fast. It will be open sourced but not yet, before they want to test it against internal use.

GWT is now a mature framework. GWT 2.8 will be a long maintenant release (just bug fixing, non new features).

So GWT 3 : What when how ? Answer is we don’t know yet. J2CL will be an independant product but could be integrated to GWT, that for the GWT steering comittee to decide.

GWT will survive the next 10 years !!

How to prepare your application for the future ?

  • Use JsInterop instead of JSNI/JSO
  • Use JSR 269 instead of GWT generators
  • Use Dagger 2 instead of Gin/Guice
  • Use modern frameworks instead of GWT libs (Widgets and so on…).

Arnaud Tournier, le 11-11-2015