GWTCon 2015 Keynote
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