Why GWT?
- Debugging tools (Firebug, IE Dev tools, Webkit developer tools, etc.)
- Packaging/optimization/obfuscation tools (YUI Compressor, Closure Compiler, JSMin, etc. )
- Abstraction layers implemented as frameworks/libraries (jQuery, jQuery UI, YUI Library, SproutCore, Javascript MVC, Cappuccino, PersistenceJS, etc.)
Each of these tools focuses on a number of particular problems: crossbrowser issues(jQuery), building consistent GUI(jQueryUI), abstracting data layer(PersistenceJS), offering a full implementation stack of well-known architecture pattern (Sproutcore, Javascript MVC).
It’s up to you wether to use them or not, but in 2009, when we made evaluation(see spikes section p.7) none of mentioned solutions proven to meet our needs. Some of them were pretty buggy, others were not mature enough and some of them didn’t have a strong community.
As you probably see, there are tons of different ways on how to write your webapp in javascript, but
there’s no stable and consistent technology which is widely adopted for developing large-scale webapps
Should I use GWT or just stick with modern Javascript/HTML5 stack?
That is not the right question to ask. It’s not wether you should use GWT or not, but what kind of user experience do you want to deliver?
As I already mentioned, GWT will allow you to build feature-rich user interfaces and deliver desktop-alike experience to your end users: almost instant action response, rich interactions with complex business logic. GWT is not for creating web-sites, however your application will be run in browser. From this point of view, browser is just a way to deliver application to your customers.
Check this out, if you’re still in doubt by making your decision in favor of GWT:
Of course, no-one can prohibit you from building your RIA by means of modern HTML5 technologies, using plain JavaScript. But you must be aware that this will probably work only for tiny projects. Why?
Javascript flaws
As you might heard, Javascript was invented as a tool for scripting purposes by Netscape developers. The main goal of javascript was to write small programs which would enhance behavior of web pages.
Later on, it was adopted in other areas as a general tool for automation by system administrators, graphic artists, 3D modeling industry, etc.
An important thought here, is that javascript was not designed for writing real-world complex apps from the beginning:
- No package mechanism
- By default everything is in the global namespace
- Only basic building blocks for OOP
- Debugging might be a real nightmare
- Lack of development tools
- Javascript has its own flaws as a language
- Scales pretty bad on a large number of developers
That said, you’ll inevitably need a special tooling to develop large apps in javascript
Pros & cons of GWT
Pros:
Page 2 of 4 | Previous page | Next page