On Wednesday, August 24, 2016 at 4:38:51 PM UTC+2, Philippe Gonze wrote:
>
> Hearing that 3.0 will be a "bundle", our key concern is "How many 
> technologies should we (learn?) mix and organize to work together?".
>

Currently, GWT gives you a compiler with various linkers, emulation 
library, dev server(s), testing tool (GWTTestCase), and various libraries 
(i18n, dom, widgets, editors, places, activities, resources, uibinder, xhr, 
http, rpc, requestfactory, storage, etc.), all developed in a monorepo and 
shipped as a whole every other year.
Tomorrow, each bit would be developed separately (this is still unclear 
though, maybe it won't be the case and everything will stay the same as 
nowadays), at its own pace, with intermediate releases so you don't have to 
wait one year for a feature to be completed to finally have your fixes for 
other features (this is exactly the situation with 2.8: the goal was to 
ship with JsInterop, and it took a year to polish, and in the mean time we 
got Java 8 with stream emulation as well, but many bugfixes –like the 
nocache.js timestamp bug from 2.7, which was fixed a couple weeks after the 
release– had to wait this long to finally ship in a release); and every now 
and then, the dev team would pick the latest versions of each part, verify 
that they indeed work well together, fixing them when needed, and ship them 
as a whole: a bill of material of each components' version that are 
guaranteed to work well together, so you can choose to pick new versions of 
some components when you need a specific bugfix or feature, and wait for 
the "bundled release" for everything else; instead of using snapshots of 
the whole thing.
The big difference would be that the compiler, which currently builds 
"permutations", calls generators, transpiles, and optimizes (dead-code 
pruning/tree-shaking, minification, bundling) will be split into 4 parts: 
annotation processors run by your standard Java compiler (APT exists since 
Java 5, integrated into the Java compiler in Java 6; it's a stable 
technology), transpilation to ES6 through J2Cl, then 
compilation/optimization through Closure Compiler (or actually the tool of 
your choice), and "manual" permutations (AFAICT, i.e. you manually run the 
transpiler+compiler once for each locale you want to build for; 
permutations would likely go away for user.agent as browsers converge to 
being able to all run the same code with only few tweaks/checks here and 
there as needed). That transpiler/compiler split means that the 
compilation/optimization can take place not only on code transpiled from 
Java but also all your external pure-JS libraries (you'd currently have to 
copy/paste the lib into a JSNI method to have it optimized by GWT).
GWT could then also possibly come with additional tools to run everything 
in one go (except possibly annotation processing), just like you do today, 
instead of configuring all those steps into your build tool of choice (or 
maybe that will be left to the next-gen gwt-maven-plugin, 
gwt-gradle-plugin, et al.)
The goal of that "bundling" would be mostly (if not only) to make it as 
easy as it is today to use GWT, such that migration should be as easy as 
replacing all your GWT.create() calls with calls to generated classes; 
modulo deprecated/unported libraries, and other changes/tweaks needed to 
make things work (e.g. change an "extends SomeMarkerInterface" to an 
annotation, to trigger the corresponding annotation processor replacing a 
GWT generator).

But I repeat: this is all handwaving and hypotheses for now (and my very 
own point of view), only very few things are certain at this point in time. 
It's still too early to start worrying: 2.8 is still not released, and real 
work will only start after that, and not necessarily immediately after the 
release (there could actually be a 2.8.1 and 2.8.2 before the code is 
branched out for GWT 3, who knows?)

>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to