- Rich Internet Applications
- Advantages of GWT
- Software Methodologies to Apply
- Summary
Advantages of GWT
Why would you develop with GWT? Shouldn't directly using JavaScript make more sense? How do you manage with browser quirks? Let's consider the reasons for GWT.
HTML Ubiquity and Browser Differences
The first reason for GWT applications is the ubiquity of HTML. Even if some time ago browsers for, say, cell phones, weren't as capable as their desktop brethren, nowadays you can basically find the exact same capabilities in both. In terms of GWT, this is a boon because it means that a well-designed application can run and look pretty in devices from 3 inches to 25 inches.7
This availability is somehow tempered because today's browsers are not created equal—but you certainly knew that if you designed web pages on your own! When Microsoft's Internet Explorer ruled the roost, having practically 100% of the browser market, this wasn't a noticeable problem. However, today browser usage statistics point to a different status quo: Mozilla Firefox and Safari, among others, have started carving larger and larger niches in the market, and in some countries (mostly European) they have outnumbered Internet Explorer. The current trend is toward applying web standards, and that bodes well for web developers. In any case, GWT is quite adept at solving browser quirks and differences, so the point may be considered moot for the time being.
JavaScript Deficiencies
Even assuming fully standard-compliant browsers, the fact remains that JavaScript, no matter how powerful, isn't a good language from the specific point of view of software engineering. Because this isn't a book on JavaScript, we won't delve in its main problems, but using it for large-sized application development can be, to say the least, a bit complicated.
This language isn't well adapted either to development by large groups of people, and the tools it provides for system development aren't that adequate, so the programmer must add extra code to bridge the distance between a modern object-oriented design and its actual implementation.
One solution that has been applied is the usage of different libraries that provide a higher-level way of using the language.8 GWT solves this problem in a radically different way, by enabling the use of the higher level Java language, for which there are plenty of modern development, testing, and documentation tools.