GWTCon 2015 Keynote

download GWTCon 2015 Keynote

of 78

Transcript of GWTCon 2015 Keynote

  • 7/24/2019 GWTCon 2015 Keynote

    1/78

    C

    GWTCon 2015 Keynote

    11/11/2015

    +JulienD@jDrama

    https://twitter.com/jDramaixhttp://plus.google.com/+JulienDramaix
  • 7/24/2019 GWTCon 2015 Keynote

    2/78

    Last Year at GWTCon...

  • 7/24/2019 GWTCon 2015 Keynote

    3/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

  • 7/24/2019 GWTCon 2015 Keynote

    4/78

    Progress since last ye

  • 7/24/2019 GWTCon 2015 Keynote

    5/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

  • 7/24/2019 GWTCon 2015 Keynote

    6/78

    GSS: status

    Stable and not experimental anymore.

  • 7/24/2019 GWTCon 2015 Keynote

    7/78

    GSS: status

    Stable and not experimental anymore.Used in production at Google.

  • 7/24/2019 GWTCon 2015 Keynote

    8/78

    GSS: status

    Stable and not experimental anymore.Used in production at Google.Old CssResource deprecated

  • 7/24/2019 GWTCon 2015 Keynote

    9/78

    GSS: status

    Stable and not experimental anymore.Used in production at Google.Old CssResource deprecated

    Not turned on by default.

  • 7/24/2019 GWTCon 2015 Keynote

    10/78

    GSS: status

    Stable and not experimental anymore.Used in production at Google.Old CssResource deprecated

    Not turned on by default.Simpler and smoother transition to GWT 2.8!

  • 7/24/2019 GWTCon 2015 Keynote

    11/78

    GSS: status

    Stable and not experimental anymore.

    Used in production at Google.Old CssResource deprecated

    Not turned on by default.Simpler and smoother transition to GWT 2.8!

    Improve CSS of your application

  • 7/24/2019 GWTCon 2015 Keynote

    12/78

    GSS: status

    Stable and not experimental anymore.

    Used in production at Google.Old CssResource deprecated

    Not turned on by default.Simpler and smoother transition to GWT 2.8!

    Improve CSS of your applicationDetect css errors sooner and reduce the size of your application CSS.

  • 7/24/2019 GWTCon 2015 Keynote

    13/78

    GSS: status

    Stable and not experimental anymore.

    Used in production at Google.Old CssResource deprecated

    Not turned on by default.Simpler and smoother transition to GWT 2.8!

    Improve CSS of your applicationDetect css errors sooner and reduce the size of your application CSS.

    You need to migrate now!

  • 7/24/2019 GWTCon 2015 Keynote

    14/78

    GSS: GWT 2.8 new features

    For loop@for$i from1to 12{

    .col-$i {

    width:mult(100%,divide($i,12));

    }

    @for$j from1to $i {

    .col-$i .col-$j {

    width:mult(100%,divide($j,$i));

    }

    }

    }

  • 7/24/2019 GWTCon 2015 Keynote

    15/78

    GSS: GWT 2.8 new features

    For loop@for$i from1to 12{

    .col-$i {

    width:mult(100%,divide($i,12));

    }

    @for$j from1to $i {

    .col-$i .col-$j {

    width:mult(100%,divide($j,$i));

    }

    }

    }

    generates

    .col-1{ width:8.333333%}

    .col-1.col-1{ width:100%}

    .col-2{ width:16.666667%}

    .col-2.col-1{ width:50%}

    .col-2.col-2{ width:100%}

    .col-3{ width:25%}

    .col-3.col-1{ width:33.333333%}

    ...

  • 7/24/2019 GWTCon 2015 Keynote

    16/78

    GSS: GWT 2.8 new features

    concat() function@defHOST foo.bar.com

    .img {

    background-image:url(

    concat('//',HOST,'/image.png')

    );

    }

  • 7/24/2019 GWTCon 2015 Keynote

    17/78

    GSS: GWT 2.8 new features

    concat() function

    @defHOST foo.bar.com

    .img {

    background-image:url(

    concat('//',HOST,'/image.png')

    );

    }

    .img {

    background-image:url('//foo.ba

    }

  • 7/24/2019 GWTCon 2015 Keynote

    18/78

    GSS: GWT 2.8 new features

    @gen-webkit-keyframes annotation/* @gen-webkit-keyframes */

    @keyframesmyframe {

    from{

    top:0px;

    }

    to{

    top:200px; }

    }

  • 7/24/2019 GWTCon 2015 Keynote

    19/78

    GSS: GWT 2.8 new features

    @gen-webkit-keyframes annotation/* @gen-webkit-keyframes */

    @keyframesmyframe {

    from{

    top:0px;

    }

    to{

    top:200px; }

    }

    generates

    @keyframesmyframe {

    0%{ top:0

    }

    to{

    top:200px

    }

    }

    @-webkit-keyframesm

    0%{ top:0

    }

    to{

    top:200px

    }

    }

  • 7/24/2019 GWTCon 2015 Keynote

    20/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

  • 7/24/2019 GWTCon 2015 Keynote

    21/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

  • 7/24/2019 GWTCon 2015 Keynote

    22/78

    Faster super dev mode with Incremental compilati

    6-7x faster for average app.

  • 7/24/2019 GWTCon 2015 Keynote

    23/78

  • 7/24/2019 GWTCon 2015 Keynote

    24/78

    Faster super dev mode.

    Speedup of 6-7x for average app!

    100% of GWT apps at Google use SDM with incremecompilation!If you have opted out, its time to use it.

  • 7/24/2019 GWTCon 2015 Keynote

    25/78

    Production compilation improved

    Compilation speed improvement: 20% faster for bigapplication.

  • 7/24/2019 GWTCon 2015 Keynote

    26/78

    Production compilation improved

    Compilation speed improvement: 20% faster for bigapplication.

    More optimal and smaller code.

  • 7/24/2019 GWTCon 2015 Keynote

    27/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

  • 7/24/2019 GWTCon 2015 Keynote

    28/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

  • 7/24/2019 GWTCon 2015 Keynote

    29/78

    JsInterop: New simpler specification

  • 7/24/2019 GWTCon 2015 Keynote

    30/78

    JsInterop: New simpler specification

    packagefoo;

    @JsType

    publicclassBar{

    publicbooleanbool=true;

    publicBar(){}

    publicStringfoo(){return"Hello GWTCon!";}

    }

    Java

    Expose your ObJavaScript wor

  • 7/24/2019 GWTCon 2015 Keynote

    31/78

    JsInterop: New simpler specification

    packagefoo;

    @JsType

    publicclassBar{

    publicbooleanbool=true;

    publicBar(){}

    publicStringfoo(){return"Hello GWTCon!";}

    }

    varbar =newfoo.Bar();

    if(bar.bool){

    alert(bar.foo());

    }

    JavaScript

    Expose your ObJavaScript wor

    JavaScript canAPI of exposed

    Java

  • 7/24/2019 GWTCon 2015 Keynote

    32/78

    JsInterop: New simpler specification

    @JsType(isNative =true)

    publicabstractclassJQuery{@JsMethod(namespace=GLOBAL)

    publicnativestaticJQuery$(Stringselector);

    publicnativeJQuerycss(Stringprop,Stringval);

    publicnativeJQueryattr(Stringname,Stringval);

    }

    Java

    Use native JsTyexisting JavaSc

  • 7/24/2019 GWTCon 2015 Keynote

    33/78

    JsInterop: New simpler specification

    @JsType(isNative =true)

    publicabstractclassJQuery{@JsMethod(namespace=GLOBAL)

    publicnativestaticJQuery$(Stringselector);

    publicnativeJQuerycss(Stringprop,Stringval);

    publicnativeJQueryattr(Stringname,Stringval);

    }

    importstaticjquery.JQuery.$;

    // ...

    $("ul > li").css("color","red").attr("data-level","first");

    Java

    Java

    Use native JsTyexisting JavaSc

    Use it like Java

  • 7/24/2019 GWTCon 2015 Keynote

    34/78

    Want to know more ?

    I t ith J S i t

  • 7/24/2019 GWTCon 2015 Keynote

    35/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

    I t ith J S i t

  • 7/24/2019 GWTCon 2015 Keynote

    36/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

    I t ith J S i t

  • 7/24/2019 GWTCon 2015 Keynote

    37/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

    Interop ith Ja aScript

  • 7/24/2019 GWTCon 2015 Keynote

    38/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

    Interop with JavaScript

  • 7/24/2019 GWTCon 2015 Keynote

    39/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

    Interop with JavaScript

  • 7/24/2019 GWTCon 2015 Keynote

    40/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

    Interop with JavaScript

  • 7/24/2019 GWTCon 2015 Keynote

    41/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

  • 7/24/2019 GWTCon 2015 Keynote

    42/78

    Interop with JavaScript

  • 7/24/2019 GWTCon 2015 Keynote

    43/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

    Interop with JavaScript

  • 7/24/2019 GWTCon 2015 Keynote

    44/78

    Interop with JavaScript

    Compile

    Web componentssupport

    Java8 support

    Google Closure Style

    Source mapping IDE integr

    many more

  • 7/24/2019 GWTCon 2015 Keynote

    45/78

    Runtime performance improved

    HashMapPut operations are 2.8x faster.

    LongDivision are 5x faster.

    Double/Boolean are not boxed anymore.

  • 7/24/2019 GWTCon 2015 Keynote

    46/78

    Generic Accessor for GWT Properties

    Access any cbinding propetime.

    if("true".equals(System.getProperty("foo.bar")) &&"ie8".equals(System.getProperty("user.agent"))){

    // do something

    }

    .gwt.xml

    java

  • 7/24/2019 GWTCon 2015 Keynote

    47/78

    GWT 2.8

  • 7/24/2019 GWTCon 2015 Keynote

    48/78

    GWT 2.8 Beta release

  • 7/24/2019 GWTCon 2015 Keynote

    49/78

    GWT 2.8 Beta releasePlease test and report bugs

  • 7/24/2019 GWTCon 2015 Keynote

    50/78

    GWT 2.8 Beta releasePlease test and report bugsEspecially for JsInterop!

  • 7/24/2019 GWTCon 2015 Keynote

    51/78

    Expect Official release

    month if everything looks

  • 7/24/2019 GWTCon 2015 Keynote

    52/78

    The future

  • 7/24/2019 GWTCon 2015 Keynote

    53/78

    GWT has a lot of burde

  • 7/24/2019 GWTCon 2015 Keynote

    54/78

    GWT is...

    10 years old

    GWT i

  • 7/24/2019 GWTCon 2015 Keynote

    55/78

    GWT is...

    10 years oldDecisions made at that time are not longer ideal

    GWT i

  • 7/24/2019 GWTCon 2015 Keynote

    56/78

    GWT is...

    10 years oldDecisions made at that time are not longer ideal

    doing too much

    GWT i

  • 7/24/2019 GWTCon 2015 Keynote

    57/78

    GWT is...

    10 years oldDecisions made at that time are not longer ideal

    doing too muchPermutations, generators, optimisations, changed file tracking, servlet hosting, custom terunner, dependency injection, huge library space

    GWT i

  • 7/24/2019 GWTCon 2015 Keynote

    58/78

    GWT is...

    10 years oldDecisions made at that time are no longer ideal

    doing too muchPermutations, generators, optimisations, changed file tracking, servlet hosting, custom terunner, dependency injection, huge library space

    Others actors of the development stack can nowmanage these responsibilities.

  • 7/24/2019 GWTCon 2015 Keynote

    59/78

    GWT is loved for itsperformance but hated f

    development slownes

  • 7/24/2019 GWTCon 2015 Keynote

    60/78

    Google is developing a

    Java-to-JavaScript trans

  • 7/24/2019 GWTCon 2015 Keynote

    61/78

    J2CLpronounced Jackal

  • 7/24/2019 GWTCon 2015 Keynote

    62/78

    J2CLpronounced Jackal

    "Canis mesom

    Licensed und

    J2CL is

  • 7/24/2019 GWTCon 2015 Keynote

    63/78

    J2CL is...

    source to source transpiler,Takes Java 8 code as input and outputs readable ECMAScript 6 with JsDoc Closure style

    targeting Modern Js features,

    blazing fast,

    fully integrated with Closure compiler.Optimizations will be made by Closure compiler.

    J2CL is

  • 7/24/2019 GWTCon 2015 Keynote

    64/78

    notan optimizer or linker,Rely on Closure compiler.

    nota dependency injector,Rely on user land (Dagger2, )

    notproprietary generators,Rely on APT

    nota web toolkit,Rely on JsInterop and third-party libraries

    J2CL is...

  • 7/24/2019 GWTCon 2015 Keynote

    65/78

    No roadmap available y

  • 7/24/2019 GWTCon 2015 Keynote

    66/78

    Dont take it wrong:GWT is not dead!

  • 7/24/2019 GWTCon 2015 Keynote

    67/78

    GWT is a mature framew

  • 7/24/2019 GWTCon 2015 Keynote

    68/78

    GWT 2.8 will be a lonmaintenance release

  • 7/24/2019 GWTCon 2015 Keynote

    69/78

    GWT 3.0: What, When, H

  • 7/24/2019 GWTCon 2015 Keynote

    70/78

    GWT 3.0: What, When, HWe dont know yet.

  • 7/24/2019 GWTCon 2015 Keynote

    71/78

    GWT can still survive tonext 10 years.

  • 7/24/2019 GWTCon 2015 Keynote

    72/78

    How to prepare your app

    the future?

  • 7/24/2019 GWTCon 2015 Keynote

    73/78

    Use JsInterop instead

    JSNI/JSO

  • 7/24/2019 GWTCon 2015 Keynote

    74/78

    Use APT instead of GW

    generators.

  • 7/24/2019 GWTCon 2015 Keynote

    75/78

    Use Dagger instead Gin/G

  • 7/24/2019 GWTCon 2015 Keynote

    76/78

    Use modern framework in

    of classic gwt libs.

  • 7/24/2019 GWTCon 2015 Keynote

    77/78

    THANKYOU

    +JulienD@jDrama

    http://plus.google.com/+JulienDramaixhttps://twitter.com/jDramaixhttp://plus.google.com/+JulienDramaix
  • 7/24/2019 GWTCon 2015 Keynote

    78/78

    QUESTIONS ?

    +JulienD@jDrama

    http://plus.google.com/+JulienDramaixhttps://twitter.com/jDramaixhttp://plus.google.com/+JulienDramaix