Why GWT?
GWT is a set of tools which allows you to write javascript code in java language. That is, to avoid confusion, GWT does not have a lot in common with tons of existing Java technology stacks out there.
It is designed in a such way that backing your javascript application by server build on top of Java stack becomes a huge advantage. However, it does not mean that you can’t build GWT apps backed by PHP/Python/Ruby servers which might be more lightweight solution (both from technology & business points of view).
You can easily implement your data exchange using JSON or use ports for your favorite language of native GWTs RPC serialization mechanism.
One might be curious about GWT language choice, but If you’ll google a little bit about available Java projects & tools, the solution google folks made, becomes very obvious. Java as a language & technology proven to be successful over long period of time. By using Java in GWT you’re able to leverage good stuff from both worlds.
The bottom-line is as following: if you want to use GWT in your project there only few prerequisites:
- Your devs are familiar with basic OOP principles & are strong in JavaScript for modern browsers
- You are ready to pay an upfront cost of GWT/java lurning curve & overall initial slowness of development cycle
What are the main problems GWT was designed to solve
The problem of large-scale javascript development
Javascript as tool was not designed for writing huge applications, therefore it has some serious problems. Lack of tools, huge cost of maintenance, debugging issues, differences between Javascript engines, etc. (for more details see p.5)
The problem of building desktop-alike applications in browser (RIA)
From the very beginning you should clearly understand the difference between web site & web application, because some people confuse between these two.
A web site is a collection of related documents or information resources containing images, videos or other digital assets.
A web application is an application that is accessed over a network such as the Internet or an intranet.
What this means, is that you have to use completely different approach for developing complex web-apps. As a consequence, your web-app will be a more like a desktop GUI application from the architectural point of view.
If it’s more about GUI, than you’d better use somewhat time-tested, bulletproof architectures like MVC/MVP and look for their implementations in your technology stack. Otherwise, without having that kind of backbone, within a couple of months, blindly coding, you’ll end up with a pile of unmanageable crap.
The conclusion is as following:
It’s too risky to develop large javascript apps without special tools to manage complexity
What kind of tools we’re talking about? Simply put, those could be categorized as:
Page 1 of 4 | Next page