Google Web Toolkit

Google Web Toolkit (GWT) は、Javaを使ってウェブ用Ajaxアプリケーションを開発できるオープンソースのJavaソフトウェア開発フレームワークである。Apache License 2.0でライセンスされている。
GWTは再利用可能で効率的なAjaxソリューションであることを強調しており、すなわち非同期RPC、履歴管理、ブックマーク、ブラウザ間の移植性の良さなどを特徴とする。
歴史.
GWT version 1.0 RC 1 (build 1.0.20) は2006年5月16日にリリースされた。Googleは2006年のJavaOneでGWTを発表した。
開発.
GWTを使うとAjaxアプリケーションをJavaとJava用開発ツールを使って素早く開発できる。そして、そのアプリケーションを配布する際には、GWTクロスコンパイラがJavaからJavaScriptへの変換を行い、オプションで高度に最適化された（読みにくい）コードも生成できる。
GWTは単にインタフェースまわりの開発にとどまらず、JavaScriptを使った任意の高機能クライアントを構築できる。GWT開発者は、GWTは単なるライブラリではなく、新たなAjaxライブラリの実装というだけではないことを強調する。そのオープンエンドの哲学は徹底しており、多くのアーキテクチャ上の決定がGWTを利用する開発者に委ねられている。GWTの目的を記した文書を見ると、GWTの役割と開発者の役割をわかりやすく解説している。例えば、履歴トークンはGWTが管理するが、履歴トークンがアプリケーションの状態とどう対応するかは開発者に委ねられている。
GWTアプリケーションは以下の2つのモードで動作する。
GWTにはコマンド行ユーティリティapplicationCreatorがあり、GWTプロジェクトを開始するのに必要な全ファイルを自動生成する。Eclipse用プロジェクトファイルを生成することもできる。GWTを使ったIDEでの開発を支援するオープンソースのプラグインがいくつかある。例えばNetBeans向けのGWT4NB、Eclipse向けのCypal Studio for GWTやGoogle社が作成、提供しているGoogle Plugin for Eclipse、JDeveloper向けのgwtDeveloperなどである。
コンポーネント.
主なGWTコンポーネントは以下の通り。
機能.
使用可能なウィジェット.
version 1.4（2007年8月）で提供しているウィジェットは以下の通り。
GWTにない一般的ウィジェットはサードパーティのライブラリで実装している。例えば、Ext GWT、GWT Component Library、GWT Widget Library、GWT-Ext、GWTiger、Rocket GWT などがある。