Sunday, August 10, 2014

Re: GWT seems deprecated according to Thoughtworks

IMHO GWT has two huge selling points: 
  • Compiler
  • Java 
The compiler does a really good job in producing optimized code (both code size as well as speed). 
Javascript VMs do a lot of optimizations nowadays but they require that the developer doesn't throw it off the hot path. Here a compiler can help the developer a lot and AFAIK 
upcomming GWT releases will have an emphasis on producing even more performant code for the new Javascript engines. 
Furthermore tree-shaking will make sure that dead code is eliminated from the output. The only real competition here is "Dart", which also has an advanced compiler. 

The second huge benefit of GWT is Java. Because Java is a strongly typed language you will catch errors during compile time which is a huge thing when you develop complex web-apps. 
Furthermore it allows you to do safe refactoring which will be also very important in complex apps. 
The "downside" of Java is, that it is quite verbose. However this will change with Java8 and GWT 3.0 (lambdas, method handles, etc).

However you have to get rid of the idea that you will only know GWT/Java and can forget about the web-platform (SWING like applications). This isn't anymore up to date. 
If you want to develop a modern performant and responsive web-application, you have to embrace and know the web-technologies (CSS, Javascript, HTML5) and GWT allows you to do this. 

You can use GSS as "CSS on steroids" (similar to LESS/SASS) and soon you will be able to leverage web-components via JSInterop to easily integrate various JS components into your GWT app and still benefiting from the compiler and the strongly typed language. 


On Friday, August 8, 2014 7:36:08 PM UTC+2, Axel Regnoult wrote:
Hi,

I am asking about the future of GWT.... (here, in France, it does not seem that is have a so good reputation, but this is just my feeling)

I have read this article : http://www.thoughtworks.com/radar/platforms/gwt (the citation is at the end of this mail)

Martin Fowler, a worldwide reconized expert is working at Thoughtworks, so I think their opinions are well thinked...and I would like to know the opinion of some gwt gurus about it...

I have used GWT 3 years and I personally liked it; but my lack of experience in other frameworks doesn t allow me to give an opinion. And I am asking if I should use, and learn, for exemple Spring, or Angular.js to develop my next application... 

Thanks you,
Axel



GWT is a reasonable implementation of a poor architectural choice. GWT attempts to hide many of the details of the web as a platform by creating desktop metaphors in Java and generating JavaScript code to implement them. First, in many ways, JavaScript is more powerful and expressive than Java, so we suspect that the generation is going in the wrong direction. Secondly, it is impossible to hide a complex abstraction difference like that from event-driven desktop to stateless-web without leaky abstraction headaches eventually popping up. Third, it suffers from the same shortcomings of many elaborate frameworks, where building simple, aligned applications is quick and easy, building more sophisticated but not supported functionality is possible but difficult, and building the level of sophistication required by any non-trivial application becomes either impossible or so difficult it isn't reasonable.
....
Google Web Toolkit (GWT) offers an interesting premise: write Swing-like Java code and generate unit testable JavaScript widgets and user interfaces. From a practical standpoint this doesn't work well. First, using code-gen to produce the artifacts is time consuming, artificially extending build times and requiring manual changes to obtain optimal package layout. Second, if the JavaScript doesn't behave exactly as you want you will have to hack the generated code. Third, using Java to generate JavaScript means that you can't take direct advantage of the powerful features of JavaScript or numerous libraries such as JQuery. Finally, the JUnit support is quite limited, for example code using reflection cannot be tested.



--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" 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 http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment