GWTでは、コードをJavaで記述し、JavaScriptコードに変換することができます。 Script#では、C#でコードを記述し、JavaScriptコードに変換することができます。 GWTとScript#はウェブ開発者にJavaScriptの苦痛を与えないようにします。そして、なぜこれらのツールが支配的ではなかったのですか?なぜ人々はまだJavaScriptコードを書くために専用?GWTおよびスクリプト#-styleフレームワークが支配的にならなかったのはなぜですか?
答えて
複数の理由、および最も重要なものは、開発者とは異なる。ここでは2つです:
- JavaScriptが
- 人々はGWT /スクリプト# によって生成された出力を信用していないのJava/C#のより素敵な/柔軟性/強力/(ここでは選択肢の挿入形容詞)言語であるため、
Leaky abstractionsと、JavascriptがJavaまたはC#よりはるかに優雅で適切な言語であるためです。
GWTはワンサイズの解決策ではないため、
GWTは素晴らしく、リッチインターネットアプリケーションを作成しているJava開発者にとっては時間がかかりません。 でも!
GWTサイトを気楽に書くのは難しいです。 JavaScript以外のフォールバックは不可能です。 ロード速度が最適化されていません。
私はGWTについてのビットを除いてすべてのコメントに同意します。本当に読み込み速度に最適化されていません。 GWT *はコンパイルされたjの無期限のキャッシングと、最適化されたRPC転送プロトコルでロード速度を最適化します。 – Chii
ネットワークの往復の回数は、#アンカーリンクのためにわずかに高くなります。ワン・リクエスト・ワン・レスポンスは単純に不可能です。 –
@Chii GWTでは、最初のリクエストに大量の読み込み時間がかかるページを作成するのはとても簡単です(ページが必要とするすべてのものをダウンロードしていて、多くのGWTアプリケーションが1ページまたは2ページだけであるため)。 JavaScriptの不合理な恐怖からGWTに来る多くの人々にとって、それはまったく予想外の動作です。 –
JavaScriptの問題は言語そのものではなく、私の意見では静かですが、JSは誤解され、人々は真剣にそれを覚えていないので、覚えていないのでコピーしません。&コードを理解していないスクリプト。 第2に、InternetExplorer、JScript、および混乱したDOM実装は、言語のイメージを破壊しました。
しかし、主な問題は、DOMとJavaScriptがGWTコードの書き方を理解する必要があることです。これは、HTMLとCSSを理解しなければならないJSF開発と同じです。 Javaを書くのとは異なり、バイトコード全体を理解する必要はありません。
(x)HTML、CSS、およびJavascriptを表示する1つの方法は、世界で最も柔軟なUIシステムです。 GWTのようなシステムは、安定性のための柔軟性の一部を兼ね備えています(注:私は基本的な前提の外でGWTに精通していません)。 (x)HTML、CSS、Javascriptが市場で差別化するために提供する柔軟性を使用する、ソフトウェアおよび/またはサービス指向のショップが数多くあります。
想像上の会話。
クライアント:あなたが作成したUIが気に入っていますが、この20ピクセルを広くし、色相を少し変更し、この半分をロールオーバーすると追加のフローティングプロンプトが表示されます。
GWTショップ:残念なことに、GWTフレームワークは、大きなハッキングや有料のたくさんの追加作業がなければ、そのようなものはサポートしていません。
(x)HTML/CSS/Javascriptショップ:ええ、あまりにも多くのトラブルを起こすことなく、これを行うことができます。
私はここでpro/conと主張していませんが、架空の会話が意味するように確かにもっと複雑ですが、GWTのようなアプローチを採用すると強制的に競争上のビジネス上の利点を失う店がありますそれをするつもりはない。
私はGWTのために話すことができますが、ここで私はそれをバック保持していると思う事があります:
- 時間をコンパイル(GWTのコンパイルに時間がかかり、javascriptの変更はインスタントです)新しいを学ぶ
- 言語(多くのWeb開発者はJavaのコード方法を知らない)
- FUD over leaky abstractions and compiler。人々はそれらのためのjavascriptと漏れた抽象化物を作るコンパイラを恐れる。どちらも私の意見ではただFUDですが、それはそれほど理由を作るものではありません。
- GWTをどこでどのように使用するのかよくわからず、間違った穴に詰め込もうとしているため、GWTを使用しないでください。
- GWTはバックエンド開発者がJavaScriptをコードできるように作成されていると認識されていますが、そうではありません。
- VerticalPanels、HorizontalPanels、FlowPanels、FlexTablesを使用することのアイデアは、既にHTMLでレイアウトする方法を既に学んだことのある人にとっては異例です。
- Googleはマーケティングに悪いです。 GWTの犯罪者はいませんが、もしそれが販売されていれば/少し上手く見せると、ホットケーキのように外に出ていたでしょう。
- GWTのための素晴らしいウィジェットライブラリがありません。デフォルトでそれに付属のウィジェットは良いですが、もう少し必要です。 GWT-extのようなライブラリは、GWTでjavascriptライブラリをラップしようとしているだけで、Javaでのコーディングのパワーを利用していないため、私の意見では役に立ちません。
- Webデベロッパーのための熟練した学習曲線です。フレームワークなので、HTMLのようにスイングします。
まだ私の日々のコーディングでそれを使用していますが、私はそれが離陸しようとしていないと長い間受け入れてきました。
すばらしい答え - 私は同じように感じます。私はGWTがより人気があることを望んだ。しかし、gwtに関する1つの悪い点は、悪いhtmlを生成する傾向があり、公に直面している "ウェブサイト"にはうまくいかないということです。オンラインで起きるGUIアプリケーション(例えば、貿易クライアントなど)に最適です。 – Chii
javeプログラマーでjaveスクリプトを学びたいと思っていたり、IEバージョンがJsをどのように扱っているのか気にしていないなら、GWTが行く方法です!
- 1. std :: vector reserve()およびpush_back()はresize()および配列インデックスより高速ですが、なぜですか?
- 2. AEMのosgiおよびスリングフレームワークの目的。なぜ私たちは2つのフレームワークが必要です
- 3. SilverfrostからダウンロードしたPlato IDEでC++およびFortranプログラムが動作しないのはなぜですか?
- 4. フレームワーク内の暗黙的および明示的な待機アプローチ
- 5. Eclipse 3.5.2およびUbuntu 10.10でこのコンソールプログラムがサイレントになっているのはなぜですか?
- 6. GWTにisFocused()がないのはなぜですか?
- 7. ポップアップブロッカーがalert()、confirm()、およびprompt()をブロックしないのはなぜですか?
- 8. CollectionがCloneableおよびSerializableを拡張しないのはなぜですか?
- 9. querySelectorAll()およびgetElementsByTagName()が機能しないのはなぜですか?
- 10. .NET RuntimePropertyHandleおよびPropertyInfo.GetPropertyFromHandleが存在しないのはなぜですか?
- 11. Oracleのto_timestamp_tzが間違った時刻および/またはタイムゾーンを返すのはなぜですか?
- 12. 変数を使った効率的な4次元スクリプトXrotation、Yrotation、およびZrotation
- 13. hashCode()およびgetClass()のネイティブメソッドはなぜですか?
- 14. URLDownloadTaskが呼び出されなかったのはなぜですか?
- 15. Select2フレームワークでユニコード文字が見つからないのはなぜですか?
- 16. Antlr4のMySQL文法にDATEおよび/またはTIMEエントリがないのはなぜですか?
- 17. Pythonスクリプトがまったく動作しないのはなぜですか?
- 18. -ms-overflow-styleが存在するのはなぜですか?
- 19. Rのt検定関数からの間違ったおよび/または一貫性のない自由度があるのはなぜですか?
- 20. なぜ、removeClass()およびaddClass()が機能しないのですか?
- 21. HTML5に<input type = "picture">および/または<input type = "video">がないのはなぜですか?
- 22. ファイルが開かれなかったのはなぜですか?
- 23. なぜSpringフレームワークですか?
- 24. routes.MapPageRouteおよびLINQの#のような文字が機能しないのはなぜですか?
- 25. GWT Cellウィジェットはなぜですか?
- 26. なぜHTML5 BoilerPlate、Blueprint、および960.gsのCSSフレームワークでClearfix overflow:hiddenが使用されるのですか?
- 27. Utf8スクリプト、Unicodeデータ、およびutf8データベースでlatin-1コーデックエラーが発生するのはなぜですか?
- 28. PHPでの異なる操作の絶対的および相対的なコストはいくらですか?
- 29. なぜReactの「クラス」支柱がないのですか?
- 30. Newbオーバーヘッド:私の家で作られたスクリーンレコーダーがクラッシュするのはなぜですか?(C#およびwindowsフォーム)
また、Pythonをjavascriptに翻訳するプロジェクトも忘れてしまいました。 –