Tuesday, January 23, 2018

Re: What is Wrong With GWT Widgets

On Monday, January 22, 2018 at 11:09:27 PM UTC+1, Mutaz Alghafary wrote:
What is exactly the problem with GWT Widgets, I am new to GWT and I have been watching some sessions about the future of GWT , it seems everyone agrees that you should not be using GWT Widgets, and use things like Elemental or other UI libraries ?

Nothing "wrong" with them, besides : they're a lot of code to maintain, sometimes quite complex, Google won't maintain them anymore, so it's big work left to the community. That doesn't mean they'll necessarily be deprecated, etc. but maintaining them has a cost.
Other reasons are: they rely on com.google.gwt.dom which makes extensive use of JSNI (and deferred binding), things that will go away in GWT3. They also rely on com.google.event.dom which was built in a time where browsers needed a lot of workarounds to avoid memory leaks, make them behave similarly, etc. Both com.google.gwt.dom and com.google.event.dom could mostly be trashed in GWT3, assuming you target "modern browsers" (evergreen browsers, possibly IE11, maybe IE10, nothing older), and/or be rebuilt with a totally different architecture. In other words: they're a legacy, most probably not how we'd build things nowadays.
Finally, it's harder than necessary to integrate third-party non-GWT UI components in GWT applications; but Web Components (custom elements, etc.)
With that in mind, it doesn't make much sense (YMMV) to invest into porting widgets to GWT3. I'm not saying it won't be done, just that it's a lot of work, and nobody knows if and when it would be done. On the other hand, Web Components provide similar levels of "encapsulation" as GWT WIdgets and are portable across a lot of JS toolkits/frameworks, which means you're a) much more likely to find a component that suits your needs and b) those components, with wider reaches beyond toolkit/framework boundaries, are more likely to receive patches and overall be maintained in the long term. So, starting a new project with web components today, while not as easy as it could be in a GWT2 world –should be much better in GWT3–, interacting with them through low-level APIs (in other terms: develop a JS application, except you write Java code; like other people write TypeScript), might be your best bet for future-proofness.

It's too early to draw conclusions though, and each project will have to make their own choices.

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+unsubscribe@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.

No comments:

Post a Comment