Webアプリケーション用のクライアントJavaと(Adobe)Flash、何をいつ選択するか

StackOverflow https://stackoverflow.com/questions/292361

質問

数年前、クライアントJavaはWebユーザーのかなりの部分にJavaがインストールされていなかったため、Web開発には適していませんでした。 (正確な数字は覚えていませんが、10%以上)。

大規模なサイトのGoogleアナリティクスの統計情報が表示され、98%のユーザーがJavaをインストールしていることがわかりました。

これらの統計は、JavaScriptの使用によって非常に偏っていますか?私が理解しているように、Google AnalyticsはJavascriptを持っているユーザーのみを測定します。

他の大きなサイトの写真は似ていますか?

クライアントJavaには本当に「ストッパー」がありますか? Flashと比較した場合の欠点は?

編集:主にJavaアプレットを意味しますが、Java WebStartは一般ユーザーには適さないようです。
Javascriptについては、Googleアナリティクスの仕組みを説明するためだけに言及しています。

役に立ちましたか?

解決

卒業プロジェクトを書いたとき、FlashアプレットとJavaアプレットを選択する必要がありました。長所と短所を次に示します。

Javaアプレット:

  • [プラス] Javaでプログラミングします。Javaは成熟しており、安定しています
  • [plus]たくさんのパンチを詰め込んだJava GUIフレームワークを使用できます
  • [マイナス]ユーザーがアプレットでページに初めてアクセスしたとき、JVMを初期化する必要があり、高速コンピューターでも最大数分かかることがあります
  • [マイナス]アプレットは、アニメーションメディアとして使用するためのものではありません。確かに、あなたは何かをすることができますが、それはCでのプログラミングのようなものです-あなたはすべてをゼロからやります

例:2つのルーター間を移動するデータパケットを表示する必要がありました。パケットは、ボタンやsmthのような何らかのコントロールでなければなりません。このアニメーションは、Flashの1行のコードで定義できます。すべてのオブジェクトは、アニメーション化可能なベースオブジェクトから派生します。 Javaで適切なソリューションを見つけることができませんでした。

フラッシュ:

  • [plus]本当に本当にアニメーションに焦点を合わせました。
  • [plus] ActionScriptは実際にはオブジェクト指向言語です
  • [マイナス] ActionScriptはずさんでバグがあり、少数のサポーターのみがいます。行き詰まっている場合は、あいまいな日本語フォーラムで解決策を探す準備をしてください
  • [マイナス] ActionSCriptはオブジェクト指向かもしれませんが、Enum、完全なインターフェース、スレッド(!!!!)などの多くの機能が欠けています。
  • [マイナス] Flashは非技術者が使用するように設計されています。オーサリングツールを使用するだけです。私はすべてのコードを書き、それは機能しましたが、それは苦痛でした。

私の結論:

アニメーションとリッチクライアントインターフェイスのプログラミングパラダイムを待ち望んでいます。

ps:Silverlightは今のところがっかりしたようです。Microsoftがそれに$を投入するかもしれません。

他のヒント

うーん、Javaは私よりもよくサポートされているようですが、いくつかの統計を検索し、92から96%のブラウザがJavaをサポートしていることを発見しました(つまり、それを検出するのに十分有効になっています!Java検出アルゴリズムの多くはあなたが指摘するように、&レポートを検出するためのJavaScriptですが、JSサポートはとにかく非常に優れており、Web 2.0時代ではさらにです)。
アドビはより優れたサポートを誇っていますが、全体的な違いはかなりわずかです。とにかく、実際にアプリケーションを表示/使用したい人は、必要なエンジンをアクティブ化/アップグレード/ダウンロードします。

今、サポートされているJREを確認する必要があります!残念ながら、そのための統計情報は見つかりませんでした。
アドビには優位性があります:誰もがFlash 9または10を持っているわけではありませんが、アップグレードは非常に高速です。新しいJREをダウンロードしてインストールするのは非常に大きなタスクです...もちろん、歴史的に最も低い共通分母であるJava 1.1、またはより現実的にはJava 2(1.4)をターゲットにできますが、すべてを使用できないのはいらいらします1.6機能...

Javaアプレットがブラウザをクラッシュさせる(Unixシステムでは明らかに)と不満を言う人がいますが、それは他の何よりも少数のブラウザ/システムの問題です。

指摘したように、Javaアプレットの起動時間はFlashの場合よりもかなり長くなります(ただし、一部の大きなFlashゲームは読み込みに時間がかかります)。
現在、悪名高い Processing アプレットを多数見ています。 ://www.aharef.info/static/htmlgraph/?url = http%3A%2F%2Fstackoverflow.com%2Fabout "rel =" nofollow noreferrer "title ="グラフとしてのWebページ-HTML DOM Visualizerアプレット "> Webページとしてグラフ、それらのほとんどは迅速にロードされます。多くのパワーは、拡張Javaライブラリのユーザーのハードディスクに既にあります。処理により非常に軽量なjarが生成されますが、多くのFlashアプレットには外部ライブラリを含める必要があります...または車輪を再発明する必要があります!

ActionScriptに関するコメントに関しては、以前の投稿のいくつかは廃止されています。 ActionScript3。 Flex 2の期間、つまりFlex 2.0とFlash Player 9が出荷された2007年1月に利用可能になりました。

AS3は、Javaに匹敵する本格的なOOPプログラミング言語です。クラスとインターフェース、継承、クラスメンバーのアクセス保護キーワード、コンストラクター、静的変数、およびJavaにはない優れた機能(プロパティ、イベント、宣言型データバインディング、クロージャー)があります。

デフォルトでは、AS3は静的にコンパイルされるため、メンバーと変数の型を宣言します。これは、AS3がJavaScriptの動的型付けに戻すことができる場所まで緩和できます。ただし、実行時の効率は低下します。動的なデータを扱うときは、動的クラスを選択的に使用すると便利な場合があります。 (静的型チェック言語の優れた利点は、Flex Builder IDEでのコード補完です。)

Flexの開発の多くは、MXMLを使用して行われます。これは、Flex向けのXMLベースの宣言型DSLです。ただし、MXMLはActionScript3コードにコンパイルされます。したがって、MXMLで行うことはAS3命令型コーディングと同等ですが、多くの場合、それが表す基になるグラフィカルFlexフォームに関して、より簡潔で明確で、より適切に構造化できます(つまり、MXMLはMVCパターンのビューのコーディングに適しています) )。

要点は、FlexのActionScript3プログラミングは、JavaまたはC#プログラマーにとって簡単かつ自然に習得できることです。言語はまったく問題ではありません。 Flexの力は、Flex SDKとそこにある無数の機能と密接に関係しています。

正確な答えではありません。非常に意見が多く、私の経験を共有するだけです...

WAI準拠のサイトを構築している最近のプロジェクトでは、アクセシビリティが大きな問題であったため、Flashオブジェクトを避けるように求められました。別のメモのアプレットは、ほとんどのWeb開発者にはあまりうまくいきません;)。 1つの理由は、リッチUIとWeb UIのパラダイムの違いかもしれません。

ただし、クライアント側の監視が必要な場合、アプレットは置き換えられないことがわかりました(.NETおよびActiveXコントロールの代わりに)。アプリケーションはスマートカードベースの認証を使用し、アプレットがブラウザにロードされてクライアント側イベント(カードの取り外し)をリッスンし、セッションを終了するようサーバーに警告します。

この文脈では、Flashは見た目が良い(ビュー)を意図していると感じがちで、アプレットは多目的に設計されていますが、クライアント側でモデルの役割を果たします。アプレットとフラッシュの両方がクライアントマシンでCPUサイクルを消費するため、従来、長い計算を伴うタスクに適していたことに注意してください。電卓、レポートジェネレーター、トレンドイラストレーター、占星術チャートジェネレーター(はい)、およびユーザーがデータを供給でき、結果がすぐに表示されるその他のタスクは、これらを使用します。

大きな懸念事項は、クライアント側のソフトウェア(Java、フラッシュプラグイン)の不足です。このような場合のユーザーエクスペリエンスは迷惑以上です。

Java自体が更新されないというコメントを削除しました。 1.6.0_10がリリースされ、以前よりも簡単に更新され、自動化されています。また、新しいインストール方法であるJavaカーネルのオプションがあります。これにより、必要に応じてJavaコンポーネントのインストールが自動化されます。

これに関するテキスト: http://java.sun.com/javase/ 6 / 6u10faq.jsp

変更があるので、Sunは新しいCeoで目を覚ましました。この新しいシステムが普及するまでに1〜2年かかりますが、準備ができたらプロジェクトを開始して楽しんでください。 :)誰が知っている。

とにかく、フラッシュよりも簡単なアニメーション機能で+ 500%を使用するかもしれませんが、アプリが単純なアニメーションではない場合は、フラッシュで+ 500%を使用して、簡単な3行のJavaコード置換を行います:)アプリに依存します。

過去7年間Javaで働いていましたが、最近、最新のプロジェクト(1.5年以降)でAS3を開始しました。 AS3とFlashが大好きです。その理由は次のとおりです。

  • 言語自体はJavaに非常に似ています。 Adobeのドキュメントは、JavaDocsと同等かそれ以上です。
  • AS3言語は、ネイティブタイプとしてXMLをサポートしています。 JavaでのXMLの解析は悪夢です。
  • papervision 3Dやtweenerなど、Flash用の優れたアニメーションおよびグラフィックフレームワークがあります。
  • Flex 3フレームワークとFlex Builder 3を使用する場合、Swingと同じかそれ以上に見えるインターフェースの構築は簡単です。 SwingでUIを書くのは大好きでしたが、視覚的なFlex DesignerでUIを設計するのは新鮮な息吹のようなものです。
  • Flashのブラウザサポートが増えたことは確かです。
  • Flashアプレットのロードを見たことがありますか?使い勝手が非常に悪く、アプレットが起動する前にユーザーが2つまたは3つのダイアログをクリックするようにします。 Flashアプリは動作します。

プロジェクトの成功をお祈りします!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top