私は本当にあなたが作成したいWebサイトの種類に依存していると思います。
GWTは、おそらく、いわゆるSOUI(サービス指向のUI)とSOFEA(サービス指向のフロントエンドアーキテクチャ)に最も適しています。
GWT Webアプリケーションでは、バックエンドとすべてのUIワークフローによって提供される1つのHTMLホストページがあり、flow synchronisationはGWTによってクライアント側で実行されます。 したがって、アプリケーションのようなデスクトップを実現したい場合は、アプリケーションのような複雑なデスクトップを開発することができ、Java開発(テスト、リファクタリングなど)のすべての利点を提供する素晴らしいツールキットなので、GWTはおそらく最良の選択です。
"従来の" Web 2.0ish Webサイトの場合、GWTはJSフレームワーク(jQuery、dojoなど)よりもいくらか大きな学習曲線を持っているため、最良の選択ではないかもしれません。
さらに、これらのWebサイトには複数のページがあり、JavascriptはUIの拡張に使用され、フロー同期を完全に引き継ぐのではなく、ページをよりインタラクティブにするために使用されます。これらのWebサイトでは、通常、フロー同期を処理する良いバックエンド(Grails、Spring MVC)があります.JSフレームワークは、UIをよりインタラクティブにしたり、UIを変更したりする責任があります。
この種のWebサイトの例は、stackoverflowです。リンクをクリックすると、新しいHTMLページが読み込まれます。あなたの受信トレイのリンクをクリックすると、jQueryを使ってポップアップを開き、通知を取得して表示します。
Google閉鎖はおそらくGWTよりもjQueryに近いでしょう。 Google Closureの最大のセールスポイントは、クライアント側とサーバー側のHTMLテンプレートです。私はGoogle閉鎖で多くの経験を持っていませんが、彼らのウェブアプリケーションでGoogleが頻繁に使用しています。
私はここでGWTで主に働いているので、私はGWTについて考えることができます利点とDIS-利点のリストです:
利点:
- 堅牢なツールキット
- 開発ツール(テスト、リファクタリング、エクリプス、ライブデバッグ)
- すぐにブラウザの互換性があります(いくつかの注意点があります)
- GWTをサードパーティのライブラリ(DTOのシリアライズ、MVPフレームワーク、など)クライアントにダウンロードされて使用されている
- コードだけの可用性(あなたが唯一の特定の機能を使用する場合でも、JSフレームワークを使用すると、全体のフレームワークをダウンロードしてください) -RPCとRequestFactoryを使ってJAVAバックエンドと通信します(自分自身をシリアライズまたはデシリアライズする必要はありません)。
短所:
- ビガー学習曲線
- は小さなUIの強化に適していない可能性があります
コードベースが大きく、別のブラウザで、言語がでなければならない場合には、いくつかの時間がかかることが
- コンパイル
- 複雑なアプリケーションで生成されるJavascriptが大きくなることがある(解法:コード分割)
サイドノート:それぞれの新しいGWTバージョンでは、新しいGWTバージョンの方がコンパイル時間とコードサイズが向上するため、デメリットは少なくなります。 GWT 2.5は、この分野でいくつかの本当に良い拡張機能を備えているはずです。
要約すると、インタラクティブなWebアプリケーションのようなデスクトップを開発する場合は、GWTがおそらく最良の選択だと思います。
しかし、より伝統的な "web 2.0ish" Webサイトを開発したい場合は、jQuery/Google Closureがより良い解決策になるかもしれません。
完璧な...非常によく説明されています。実績 – Peeyush
"JSフレームワークではフレームワーク全体をダウンロードしています..."注:これはクロージャでは当てはまりません。 Javascriptを「コンパイル」して難読化し、圧縮し、使用しているものだけをインクルードします。 –
+1 GWT 2.5の情報へのリンクです。 :) – Justin