web-dev-qa-db-ja.com

GETはまだ新しいプロジェクトに適していますか?

質問 GWTの代わりにjQueryを使用する必要があるのはなぜですか? は、その答えとしては時代遅れかもしれません。そして mostofthe other SO関連する質問も最近では時代遅れになっているかもしれません。 最先端 新しいプロジェクトのGWT関連性について。

最近ではGWTはより成熟しています

2009年の質問/回答以来、GWTは進化しており、いくつかのJSフレームワークがJavaで利用可能です。

さらに、JavaコードはスタンドアロンJSライブラリに変換できます: gwt-exporter

しかし、低レベルのJSフレームワークで十分かもしれません

しかし、もっと読むと、Web開発者がGWTに背を向けて直接JSフレームワークを使用するようアドバイスしていることがわかります( Firebug 、IDE JSフレームワークのプラグイン...) 。

生産性

ただし、同じIDE(Eclipse、Netbeans、IntelliJ IDEA ...)を使用して開発およびデバッグするというアイデアが好きです。Ithinkより生産的になります...ドキュメントとコミュニティについても考える必要があります(これについてはフォーラムの反応性SO質問)...

質問

  1. どのような種類の新しい2014プロジェクトGWTを考慮する必要がありますか(考慮しない)?
  2. GWTの代わりに適切な代替手段がありますAJAX Webアプリケーションの開発とデプロイメント?
  3. 現在のモードとトレンドは何ですか?

私の特定のケース

Python3に基づく(イントラネットWebアプリの)POCを完了しました(http.server.HTTPServer)(POST)bashスクリプト(C++での処理)の呼び出しとJSONデータの取得。レンダリング用のWebページの一部のJS(フレームワークなし)。だから私は次の反復のための最良のオプションを疑問に思っています。

しかし、他のケースについてもこの質問に答えてください。より多くの人に役立つ一般的な質問/回答を希望します。


2015年10月更新

GWTは11か月以降新しいリリースがないため、あまりアクティブではありません。しかし、過去には バージョン2.4と2.5の間で13か月 でした。 Gitリポジトリミラー はまだ非常にアクティブです。さらに、GWTは拡張可能で、新しい機能はGWTライブラリから新しいGWTフレームワークのリリースを必要とせずに提供できます。たとえば、 最も一般的なモバイルGWTライブラリ と、それに対応するリリースサイクルを参照してください。それまでの間、どこでもNode.jsを使用する傾向があります!新しいプロジェクトにGWTを採用するかどうかは、開発者のスキル/動機とプロジェクトの有効期間(離職/トレーニング/メンテナンス)に大きく依存します。利用可能なソースコードの再利用や市場投入までの時間など、その他の基準も考慮される場合があります。以下の回答をご覧ください。

47
olibre

ポイント1については、使用する基準をいくつか示します。

JavaScriptベースのフレームワークを使用する場合、通常、コードの初期作成は非常に高速です。私の経験では、メンテナンス(バグ修正、新機能、リファクタリング)に関しては、ツールのサポートが静的に型付けされた言語ほどではないため、はるかに遅くなります。したがって、大規模または長期実行プロジェクトの場合は、Javaであり、コンパイラーチェック/エコシステム/ツールであるため、常にGWTを選択します。ダイナミックタイピングによる奇妙な問題はありません。長生きしない、または大きなリファクタリングを必要としない小規模なプロジェクトの場合、JavaScriptフレームワークは開発速度の大きな推進力となります。

ターゲットプラットフォームのコンテキストでのデバッグニーズも、私にとっての基準です。 GWTコードのデバッグは、DevModeでサポートされているか、少なくともSuperDevModeベースの新しいソースマップで使用できるブラウザを持っている限り、非常に便利です。例えば。 MacOS XのSafariはサポートされていません。モバイルデバイスの場合、Android ChromeでJavaScriptをリモートデバッグできますが、私の知る限り、GWTではこれは不可能です。

私のもう1つの基準は、チームの規模と離職率です。 Javaベースのツール(IDE、コード品質チェッカーなど)は、開発者、特に新しい開発者が他の開発者のコ​​ードをナビゲートするのに役立ちます。これは他の静的型言語にも当てはまりますが、 GWT/Java用。

次はスタックの質問です。サーバー側でサーブレットコンテナを使用する場合、GWTはクライアントとリモート通信の部分を簡単に解決します。また、成熟したJavaエンタープライズテクノロジー(JPA、EJB、Springフレームワークなど)と組み合わせることも簡単です。これは、スタックが必要な場合、またはスタックが必要な場合の大きな強みです。サーバー側でJVMを使用せずにポリグロットを行っています(前述のとおり)。これはあなたのためではありません。

確かに、GWTとJavaScriptフレームワークの両方についてより多くの基準があります。

そして、大きな問題は好みです。 JavaScriptには本当に素晴らしいコンセプト(クロージャなど)がありますが、動的な型指定のためにリスクもあります。あなたはどちらを好みますか?

ポイント2について:

同様の機能とツールを提供するGWTの代替案があるかどうかはわかりません。他のほとんどのフレームワークは、1つの側面(ウィジェット、最適化、データバインディング、リモート通信、ブラウザーサポート、I18nなど)のみに焦点を当てています。それは、他のフレームワークが悪いという意味ではありませんが、通常、GWTが提供する機能を得るには、異なるフレームワークの組み合わせが必要です。

ポイント3について:

  • タイピングが改善され、JavaScriptとの相互運用性が向上したため、TypeScriptを間違いなく見ることができます。
  • 私が覚えている限りでは、ダートは同様の目標を持っています
  • 常緑樹はJQueryですが、ニーズに応じて適切な代替手段があります。しかし、それは非常に主観的です
  • ウィジェットの場合、Twitter Bootstrap( http://getbootstrap.com/ )は、物事を行う方法が大丈夫な場合に適しています。GWTバージョンもあります。それ( http://gwtbootstrap.github.io/
43

ステフェンによる素晴らしい答え。彼へのコメントとして入力し始めましたが、予想以上に入力したことがわかったため、別の回答にしました。ポイントを探していません...

私は1つの主観的なポイントを追加したかっただけです。現実には、開発者の大部分はいわゆるバックエンド開発者であり、知識、経験、そして最も重要なこととしてWebフロントエンドの開発を望んでいません。米国のIT市場の現実は、大半がJS、PHP、Javaおよびその他のエキゾチック言語よりも履歴書でPythonを好むということです。その理由は補償です。 Java開発者は平均してより多くの収入を得ます。他の国についてはわかりません。

したがって、会社の開発者の大部分はJava開発者(または、この会話の外にある.NET)です。それらをUIで機能させるには、Java互換テクノロジー(JSPまたはGWT)を使用する必要があります。 JSPは、フロントエンドを多少なりとも提示可能にするために、JSライブラリを学習する必要があります。

明らかに、ユニークなUIでパブリックを印象付けたい場合は、よりカスタマイズが可能なJSライブラリを使用する必要があります。ほとんどの作業はJSで行われるため、JSPとGWTの両方が機能します。上で述べたように、JS開発者をスタッフとして経験した企業はほとんどありませんでした。

ただし、アプリケーションの大部分は、一般向けではなく、内部使用向けに作成されています。説明したことから、ユースケースはこのカテゴリに分類される場合があります。

一般に公開されていない内部ツールは、一般に公開Webサイトよりも複雑な機能を備えていますが、機能が内部にあり便利である限り、設計要件はより緩和されます。

この場合、Java開発者にとってはjQueryや標準テーマのGXTなどの高レベルライブラリよりも外国語のGWTを使用できます。

GXTを使用したGWTは、内部アプリケーションのセットを簡単かつ迅速に作成する方法でした。弊社のJava開発者のチームでは、同じ期間内にプロジェクトの品質や完全性に近づくことはありませんでした。

7
ATrubka

GWTのサンプルページ GWTアプリケーションの実際の例を紹介

これらの例の超重量特性について読んでください。

GWT自体はそれほど軽量ではなく、日付ピッカーを作成するように設計されているとは思いません。 GWTもjQuery以外の完全なものです。 jQueryよりもJSF2に匹敵する可能性があります。 「GWTまたはjQueryを使用すべきか」という質問には、次のように答えることができます。

日付ピッカー、いくつかの効果、ソート可能なテーブル、オートコンプリートをあちこちに追加したい場合。おそらくjQueryを使用する必要があります。

GWTをフロントエンドテンプレート/エンジンメカニズムとして使用するかどうかを把握したい場合は、実際に比較可能な他のものを検討する必要があります。 Javaについて議論するとき、おそらくJSF2が唯一の選択肢です。また、JSFの学習曲線は急勾配です。

もっと深く掘り下げて、悲しい投稿を見つけました。

http://polygoncell.blogspot.mx/2013/07/gwt-for-new-project-no-thanks.html

このページに来たのは、AngularJS、Backbone、シングルページアプリケーション(SPA)などの今後のプロジェクトについて読んでいたからです。要するに、googleはGWTをドロップしました。 GWTが放棄されたため、GWTは現在オープンソースです。現在、AngularJSはgoogleによる大きなプッシュを取得しています。

[〜#〜] edit [〜#〜]親愛なるアンドリューは「私のポイントを証明する」ように私に言った

技術が競争力があるかどうかを評価するために使用するアルゴリズムを次に示します。

1)お気に入りの求人サイトに移動します

2){興味のある技術}の仕事を検索する

3)開口部の数、関連する技術要件などを確認する

4)競争力のある技術に対して#2と#3を繰り返す

5)評価

今日2016年5月19日、アップワークでGWTジョブを検索しました。

仕事:23。

angularjsジョブを検索しました。

Jobs:1338。そうです。千三百三十八。

ポイント証明済み?

2
Toskan

ポイント1に答えるために、あなたはあなたの現在の状況が何であり、あなたの目標が何であるかを見なければならないでしょう。

Java彼らのキャリアのほとんどを使用している開発者のチームがある場合、JavaScriptのパラダイムを学習するのに良い6か月を期待できます。 GroovyまたはClojureを使用すると、おそらくその時間をいくらか削減できます。したがって、プロジェクトが1年以上続くことを期待していない場合は、GWTを使用することをお勧めします。

逆に、JS開発者のチームがある場合、静的型付けシステムはかなりイライラし、効果的に使用するために学習するのに半年かかる可能性があります。この場合、学習曲線が生産性を上回る新しいプロジェクトにGWTを使用することはおそらくないでしょう。

ポイント2が何を求めているのか本当にわかりません。スタックフレームワーク全体について質問している場合、nodejsを使用して何かを見つけることができると思いますが、それについてアドバイスする十分な経験はないと思います。

私が働いているポイント3では、JSフレームワーク(特にAngularJS)を使用して、PythonおよびGroovyで書かれたいくつかの(新しい)サーバー/サービス、およびまだレガシーシステムJavaでもClojureで記述されたいくつかのサービスがあります。

1
Nick