GWT - Overview

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 compiles the code written in JAVA to JavaScript code.

  • Application written in GWT is cross-browser compliant. GWT automatically generates javascript code suitable for each browser.

  • 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 generates optimized javascript code, produces browser's specific javascript code by self.

  • 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 Degradable − If your application user disables Javascript then user will just see the basic page and nothing more.

  • 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 −

  • GWT Java to JavaScript compiler − This is the most important part of GWT which makes it a powerful tool for building RIAs. The GWT compiler is used to translate all the application code written in Java into JavaScript.

  • 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.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.

GWT also provides a GWT Hosted Web Browser which lets you run and execute your GWT applications in hosted mode, where your code runs as Java in the Java Virtual Machine without compiling to JavaScript.