Hi,
for each developer the reasons to choose framework 'X' are different.
These are the reasons I choose GWT for frontend development against a java backend;
1 - simple integration with Java backend. I can use the GWT-RPC mechanism to have the server receive and respond in java objects. This saves me a java -> string -> js conversion as GWT takes care of this and I can do all coding in java and have compile time validation with a simple maven build. Ofc unit/integration testing can achieve something similar with a json interface, but that already requires more effort than just compiling. Simplicity is always a winner in enterprise application development in my opinion.
2 - reuse of developer skills. Frontend has become available with java knowledge only. No need for javascript knowledge.
3 - adaptation to accessibility requirements. With GWT you have full control of the html you generate. So you can generate purely semantic HTML and fully comply with any accessibility requirements. Most component based frameworks do not allow for this flexibility on a tag/structure level.
4 - I can keep pure OO paradigms in front end development. A bit too much to explain - and mb personal preference - but I've never seen procedural or functional programming outperform a good OO design/implementation. With GWT I can apply these OO principles in the UI too.
5 - You are able to keep layout outside of GWT, styling can become a purely css thing. Which is where it belongs and where it's easiest to maintain. Combined with simple semantic html this makes styling a GWT application very flexible. The only class definitions I set with gwt are functional; i.e. descriptive of what the component is, but never for a specific usage (table, table-row, headered-section for instance and not person-table or similar) which also keeps the css maintainable.
Working with a java backend, I haven't seen a more practical UI solution since I started using GWT back around '07 or so.
The exact underlying technology of GWT is not that relevant to me, but what it enables for java applications in the ui development/maintainability side is unbeatable in my book.
rg,
Leon.