Hello everyone,
for those who missed my session, please find the recording at
https://bluejeans.com/s/zij35/ (there are two chapters, because I've accidentally clicked "stop recording" during the session)
As for the questions - let me post some answers here:
> (asked by Roy) Intellij supports super dev mode. Does anyone have experience with it?
But I wasn't able to make it work on my local dev. env. as it attempts to start SDM code server on its own, whereas in oVirt we have a dedicated command to start the code server, `make gwt-debug`. And that's partially because we use ${foo} placeholders in our *.gwt.xml files (to be substituted during Maven build) which causes IntelliJ to fail with messages like
Invalid property value '${gwt.runtimeLogLevel}'
which comes from WebAdmin.gwt.xml file.
TL;DR it works for HelloWorld-style GWT webapps, but unless we can tell IntelliJ to reuse existing SDM code server, it won't work for us.
> (asked by Shmuel) What about utilizing WebAssembly to improve performance?
There are two things to consider, asm.js [1] and WebAssembly spec [2].
asm.js is about having a subset of JavaScript which is easily optimizable by the runtime platform (e.g. browser's JavaScript engine) but this platform obviously needs to be aware of the asm.js spec to do the optimizations. Latest working draft of asm.js is from Aug 2014.
WebAssembly seems to be the next step, defining a binary format that is size- and load-time-efficient but working with low level structures like some basic types, table of types, linear memory, functions and local/global variables - everything wrapped as a "module". The runtime platform also needs to support WebAssembly spec, which is currently being standardized, see
http://webassembly.org/docs/mvp/I found some GWT discussions about WebAssembly and it eventually comes down to GC (garbage collection) support, since WebAssembly code runs in its own context, possibly outside (next to) JavaScript VM. Plus, given the fact that lots of performance depends on how much DOM (or other browser-specific) operations a webapp performs, the gain of using WebAssembly in webapps might not be that big, compared to e.g. games or scientific applications that leverage the power of native code on given OS platform.
So once/if WebAssembly adds GC support and tightens integration with web APIs, it might be a feasible compilation target for GWT.