GWT version 1.0 RC 1 was released on May 16, 2006.3 Google announced GWT at the JavaOne conference in 2006.4
In August 2010, Google acquired Instantiations,5 a company known for focusing on Eclipse Java developer tools, including GWT Designer, which is now bundled with Google Plugin for Eclipse.
In 2011 with the introduction of the Dart programming language, Google stated that GWT would continue to be supported for the foreseeable future while also hinting at a possible rapprochement between the two Google approaches to structured web programming. However, they also mentioned that several of the engineers previously working on GWT are now working on Dart.6
In 2012 at their annual I/O conference, Google announced that GWT would be transformed from a Google project to a fully open-sourced project.7 In July 2013, Google posted on its GWT blog that the transformation to an open-source project was completed.8
Using GWT, developers have the ability to develop and debug Ajax applications in the Java language using the Java development tools of their choice. When the application is deployed, the GWT cross-compiler translates the Java application to standalone JavaScript files that are optionally obfuscated and deeply optimized. When needed, JavaScript can also be embedded directly into Java code using Java comments.9
GWT does not revolve only around user interface programming; it is a broad set of tools for building high-performance client-side JavaScript functionality. Indeed, many architectural decisions are left entirely to the developer. The GWT mission statement10 clarifies the philosophical breakdown of GWT's role versus the developer's role. History is an example of such: although GWT manages history tokens as users click Back or Forward in the browser, it does not detail how to map history tokens to an application state.
GWT applications can be run in two modes:
Several open-source plugins are available for making GWT development easier with other IDEs, including GWT4NB15 for NetBeans, Cypal Studio for GWT16 (an Eclipse plugin), and GWT Developer for JDeveloper. The Google Plugin for Eclipse handles most GWT-related tasks in the IDE, including creating projects, invoking the GWT compiler, creating GWT launch configurations, validation, and syntax highlighting.
The major GWT components include:
As of version 2.4 (September 2011), Google Web Toolkit offers several widgets26 and panels.27
Many common widgets not found in the GWT have been implemented in third-party libraries.
GWT uses or supports Java, Apache Tomcat (or similar web container), Eclipse IDE, Internet Explorer,28 and internationalization and localization. Java-based GWT rich web applications can be tested using JUnit testing framework and code coverage tools. Because GWT allows compile time verification of images, CSS, and business logic, many common development defects are automatically discovered without requiring the manual testing commonly required by RIAs.
Google has noted that some of its products are GWT-based:29 Blogger, AdWords, Flights, Wallet, Offers, Groups, Inbox.30
On December 8, 2009, Google launched Google Web Toolkit 2.0 with Speed Tracer.31
Version 2.0 of GWT offers a number of new features,32 including:
Since the new development mode removed most platform-specific code, the new version will be distributed as a unique archive, instead of one per supported platform, as was the case with previous versions.
As a general framework for making web apps, Google Web Toolkit is also capable of being used as a framework for creating mobile and tablet apps, either by making the needed widgets and animations from scratch or by using one of the mobile frameworks for GWT. An HTML5 app written in GWT can have separate views for Tablets and Mobile phones.
"GWT Name Use Policy". Retrieved April 23, 2014. http://www.gwtproject.org/GWTPolicy.html ↩
"Google Web Toolkit License Information". February 23, 2007. Retrieved September 25, 2007. http://www.gwtproject.org/terms.html ↩
"Google Web Toolkit Release Archive". Retrieved September 25, 2007. https://code.google.com/webtoolkit/versions.html ↩
Olson, Steven Douglas (2007). Ajax on Java. O'Reilly. p. 183. ISBN 978-0-596-10187-9. 978-0-596-10187-9 ↩
Ramsdale, Chris. "Google Relaunches Instantiations Developer Tools". http://googlewebtoolkit.blogspot.com/2010/09/google-relaunches-instantiations.html ↩
"Google Web Toolkit Blog: GWT and Dart". Googlewebtoolkit.blogspot.com. November 10, 2011. Retrieved June 16, 2013. http://googlewebtoolkit.blogspot.com/2011/11/gwt-and-dart.html ↩
Vaadin to Support Google Web Toolkit (GWT) Development. vaadin.com (June 29, 2012). Retrieved on 2014-05-15. https://vaadin.com/press/2012-06-29-vaadin-to-support-google-web-toolkit-gwt-development ↩
Google Web Toolkit Blog: GWT News. Googlewebtoolkit.blogspot.com (July 15, 2013). Retrieved on 2014-05-15. http://googlewebtoolkit.blogspot.com/2013/07/gwt-news.html ↩
"Coding Basics - JavaScript Native Interface (JSNI) - Google Web Toolkit — Google Developers". Google Inc. October 25, 2012. Retrieved June 16, 2013. https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsJSNI ↩
GWT mission statement https://code.google.com/webtoolkit/makinggwtbetter.html#introduction ↩
Debugging in Development Mode http://www.gwtproject.org/doc/latest/DevGuideCompilingAndDebugging.html#DevGuideDevMode ↩
"Development Mode will not be supported in Firefox 27+". google-web-toolkit@googlegroups.com (Mailing list). https://groups.google.com/d/topic/google-web-toolkit/QSEjbhhHB4g/discussion ↩
"GWT Developer Plugin no longer works with Chrome on Linux". google-web-toolkit@googlegroups.com (Mailing list). https://groups.google.com/d/topic/google-web-toolkit/Ve32_oy0kAw/discussion ↩
"Super Dev Mode". http://www.gwtproject.org/articles/superdevmode.html ↩
GWT4NB http://java.net/projects/gwt4nb/pages/Home/ ↩
Cypal Studio for GWT https://code.google.com/p/cypal-studio/ ↩
"com.google.gwt.dev.Compiler". GitHub. The main executable entry point for the GWT Java to JavaScript compiler. https://github.com/gwtproject/gwt/blob/master/dev/core/src/com/google/gwt/dev/Compiler.java ↩
"com.google.gwt.dev.jjs.JavaToJavaScriptCompiler". GitHub. A base for classes that compile Java JProgram representations into corresponding Js source. https://github.com/gwtproject/gwt/blob/master/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java ↩
Perry, Bruce W (2007). Google Web Toolkit for Ajax. O'Reilly Short Cuts. O'Reilly. pp. 1–5. ISBN 978-0-596-51022-0. 978-0-596-51022-0 ↩
"GWT Javadoc Canvas". http://www.gwtproject.org/javadoc/latest/com/google/gwt/canvas/client/Canvas.html ↩
"Widget List". Google Inc. Retrieved May 21, 2012. https://developers.google.com/web-toolkit/doc/latest/RefWidgetGallery ↩
GWT Project. GWT Project. Retrieved on May 15, 2014. http://www.gwtproject.org/doc/latest/DevGuideIE9.html ↩
"Google I/O 2012 - The History and Future of Google Web Toolkit". GoogleDevelopers. July 10, 2012. Retrieved March 18, 2013. https://www.youtube.com/watch?v=VOf27ez_Hvg#t=450s ↩
Toubassi, Garrick. "Going under the hood of Inbox". Official Gmail Blog. Retrieved November 22, 2014. http://gmailblog.blogspot.com/2014/11/going-under-hood-of-inbox.html ↩
Introducing Google Web Toolkit 2.0, now with Speed Tracer http://googlewebtoolkit.blogspot.com/2009/12/introducing-google-web-toolkit-20-now.html ↩
"GWT 2.0 milestone 1 announcement". Amit Manjhi. Retrieved October 5, 2009. https://groups.google.com/group/google-web-toolkit/browse_thread/thread/8b79ebe444b9126d ↩