You do not /have/ to use the GWT serialization lib which comes with RPC. You can use JSON with GWT. It's actually very trendy and some new librairies simplify this.
But the combination GWT + node is surprising...
One of main advantages of GWT is you use the same language client-side and server-side. It's not at all "a swing portage" as it more or less used to be at the very beginning, but still, GWT comes from the Java world. If you want a strong-typed langage for your client code (big client application, huge dev team, or whatever), GWT is really the most mature solution today.
So :
* if you are ok with JS, and about making your backend in JS (I can't...), just use JS everywhere...
* if you want GWT, but a "reactive backend" like node, there are lots of good reactive backend-frameworks in the Java ecosystem
Polymer is a framework based on web-components (a relatively low level fmk - it's not angular). Webcomps is a coming standard to be implemented natively by browser, so you'll have a native components model, at last ! But webcomps aren't ready yet. Polymer is heavily based on polyfills and is slow or won't work on older browsers because of that. But yes, Polymer has a great API.
I'd say React is the best response TODAY if you want a component approach.
And if you want to see what future could look like, give a try to Polymer Dart =)
The backend part of GWT is really tiny : a RPC library which stays optional ; lots of people do not use at all nowadays.
I haven't took the time to look how react exactly work yet, but it seems the notion of virtual dom is really comparable to GWT initial component model. Even if the initial motivation is not the same, in both models there's a separation between the DOM and the components tree you manipulate.
You do not /have/ to use the GWT serialization lib which comes with RPC. You can use JSON with GWT. It's actually very trendy and some new librairies simplify this.
But the combination GWT + node is surprising...
One of main advantages of GWT is you use the same language client-side and server-side. It's not at all "a swing portage" as it more or less used to be at the very beginning, but still, GWT comes from the Java world. If you want a strong-typed langage for your client code (big client application, huge dev team, or whatever), GWT is really the most mature solution today.
So :
* if you are ok with JS, and about making your backend in JS (I can't...), just use JS everywhere...
* if you want GWT, but a "reactive backend" like node, there are lots of good reactive backend-frameworks in the Java ecosystem