What is GWT?
Google Web Toolkit (GWT) is a development toolkit to create RICH Internet Applications (RIA). Here are some of its notable features −
- GWT provides developers option to write client side application in JAVA.
- GWT is open source, completely free, and used by thousands of developers around the world. It is licensed under the Apache License version 2.0.
Overall, GWT is a framework to build large scale and high performance web appliation while keeping them as easy-to-maintain.
Why to use GWT?
Being Java based, you can use JAVA IDEs like Eclipse to develop a GWT application.
Developers can use code auto-complete/refactoring/navigation/project management and all features of IDEs.GWT which provides full debugging capability. Developers can debug the client side application just as a Java Application.
- GWT provides easy integration with Junit and Maven.
- Again being Java based, GWT has a low learning curve for Java Developers.
- GWT provides Widgets library provides most of tasks required in an application.
- GWT is extensible and custom widget can be created to cater to application needs.
On top of everything, GWT applications can run on all major browsers and smart phones including Android and iOS based phones/tablets.
Disadvantages of GWT
Although GWT offers plenty of advantages, it suffers from the following disadvantages −
- Not Indexable − Web pages generated by GWT would not be indexed by search engines because these applications are generated dynamically.
- Not Designer’s Friendly − GWT is not suitable for web designers who prefer using plain HTML with placeholders for inserting dynamic content at later point in time.
The GWT Components
The GWT framework can be divided into following three major parts −
- JRE Emulation library − Google Web Toolkit includes a library that emulates a subset of the Java runtime library. The list includes java.lang, java.lang.annotation, java.math, java.io, java.sql, java.util and java.util.logging
- GWT UI building library − This part of GWT consists of many subparts which includes the actual UI components, RPC support, History management, and much more.