web-dev-qa-db-ja.com

理想的なHTML5 Webアプリケーションに制限はありますか

次の2つの仮定が当てはまると仮定します。

  • ユーザーベース全体にブロードバンドアクセスがありますどこでも
  • HTML5およびWHATWGグループのドラフト仕様全体を一貫して実装する架空のブラウザーXがあり、すべてのユーザーがブラウザーXを使用しています。

商用パブリックデスクトップアプリケーションが必要な商用パブリックHTML5 Webアプリケーションのintrinsic制限は何ですか?

Flash/Java/SilverLight/etcブリッジに追加機能を依存せず、ブラウザープラグインに追加機能を依存しないプラグインなしのWebアプリケーションの制限に興味があります。

適用されない可能性のある制限:

  • データベース? WebSQLとindexedDBがあります。
  • ファイルIO?読み取りと書き込みの両方を行うHTML5ファイルAPIがあります。
  • 速度?最近のJavaScriptエンジンの競合により、ブラウザーが遅くなることはなくなりました。ネイティブC++は、ChromeのV8エンジンよりも3倍高速です。
  • 開発ツール? Webは成熟しており、数が多すぎてリストすることができないさまざまなツールが利用可能です。
  • クローズドソース?はい、すべてのコードはオープンソースです。これは両刃の剣であり、クローズドソースまたはオープンソースコードの使用については多くの意見があります。私は個人的には、オープンソースコードの利点が欠点を上回ると信じています。
  • JavaScript/HTML5? 「私は個人的にHTML5とEcmaScriptは恐ろしい開発プラットフォームだと私は思います」のような意見は無視されます。

既知の制限:

  • リアルタイム/セキュリティ(トップシークレット)の重要なコードは、Webには属しておらず、また属すこともできません。 CやC++のような低レベルで制御性の高い言語で作成する必要があります。
  • コンピューターに接続されたサードパーティのハードウェアとやり取りする必要があるツールは、Webアプリケーションとのやり取りに苦労します。

Webに属さないプログラムのスイート全体もあります。オペレーティングシステム、ドライバー、サーバーソフトウェア、低レベルAPI。私はそれを知っていますが、私はそれらを「商用のパブリック」アプリケーションとして分類しません。これらはコンピュータにプレインストールできるタイプのソフトウェアです。

余談ですが、私は2つの仮定が恐ろしく非現実的であることを知っていますが、5/10/20/30年でそれらを達成できるかもしれません。アプリケーションの種類と、それらを作成するアプリケーションの機能に興味があります完全に非互換 Webと。

動機:

ポイント:

デスクトップアプリケーションが有効なソリューションである場合の一連の問題を考えます。

  • Webアプリケーションが有効なソリューションではないのはなぜですか?
  • ソリューションとしてWebアプリケーションを使用できるかどうかを確認するにはどうすればよいですか。

私は、Webアプリケーション(インターネット接続とブラウザーサポート)の主な問題を、それらが存在しないと断言することで取り除こうとしました。

余談ですが、HTML5オフラインアプリケーションとModernizrは、これらの両方の問題の解決に向けて順調に進んでいます。

Webアプリケーション開発の他の困難は何ですか?

11
Raynos

頭の上から...

  • ファイル以外の方法でI/Oをエクスポートする専用ハードウェアにアクセスする。科学機器、産業機械、またはプレーンなCDレコーダーと傾斜サポート付きのデジタイザータブレットであること。
  • hTTPと他のプロトコルの小さなファミリのみ。ソケットを好きなように作成することはできません。好きなバイナリデータを転送してください。これにより、他のシステムやサービスとの接続が大幅に制限されます。
  • 健全な開発者は、Javascriptでグラフィックを多用するゲームを作成しません。ブロードバンドは、多くの場合必要とされるDVD/HDDスループットにほとんど匹敵しません。 Canvasでの3Dのサポートは、ゲームエンジンで得られるものよりも大幅に劣ります。ジョイスティック、複数の同時キープレスをサポートする方法はありません。オープンな性質のため、不正行為は簡単です。ただし、主に、パフォーマンスの低下は許容できません。
  • 重いサンドボックス化。 OSに深く統合されたものは入手できません。スクリーンショット、ウイルス対策、仮想ドライブ、システムトレイのバックグラウンドタスク、管理タスクなど。
  • ミッションクリティカルになることはできません。基本的なソフトウェアを実行するために常にブロードバンドに依存することは、ほとんどの企業が実行することを好む好ましい方法ではありません。
11
SF.

基本的に、サーバー/クライアントモデルに適合できるものはすべて、優れたWebアプリケーションを作成できます。また、その逆も事実であると言えます。ほとんどのプログラムをモデル/コントローラー/ビューにモデル化できる方法を見ると、プログラムはモデルとコントローラーをビューから分割できるため、ウェブへの移行傾向は急速に進んでいます。

もちろん、効率上の理由から、誤った要求やデータでサーバーに過負荷をかけないようにするために、一部のコントローラーはクライアント側にも配置されています。

私の要点は次のとおりです。どのプログラムがモデル/コントローラー/ビューソフトウェアアーキテクチャに適合しないか、というのも、それらはおそらくWebアプリケーションに変換されなかった同じプログラムであるからです。頭に浮かぶ良い例は、オペレーティングシステム、タスクスケジューラ、コマンドプロンプト、ウイルス保護、スパイウェア保護です。モデルに適合しないため、そのすべてがWebサイトに実装されていない可能性があります。そして、これらのプログラムのどれもがシステムに大きく依存しているのは偶然ではありません。ほとんどはハードウェアへの直接アクセスを必要としますが、他のものは単に実行するためにより高いセキュリティを必要とし、インターネットWebサイトによって実行されることを信頼できません。

もちろん、Googleは新しいオペレーティングシステムでこの概念を完全に再採用しています。おそらく、Windowsとは異なり、インターネットを使用するようになったのは単なるシステムではなく、インターネットに大きく依存しているシステムです。すぐにこれらすべてのプログラムがオンラインで利用できるようになり、ハードウェアとソフトウェアへのアクセスが可能になります。厳密な証明書認証により、信頼できるサイトではなく、どのサイトでも実行できないようにします。彼らが何を思いつくのかを知りたいと思っています。20年後には、コンピュータはインストール可能なソフトウェアで作られなくなると考えているからです。むしろ、すべてのサービスがオンラインで利用可能になります。

3
Neil

•コンピューターに接続されている外部のサードパーティ製ハードウェアとやり取りする必要があるツールは、Webアプリケーションとのやり取りに苦労します。

私が現在取り組んでいるソフトウェアは、サードパーティの周辺機器からデータを収集する必要があるため、デスクトップの側面とWebベースの側面を備えています。ドライバと、デバイスとWebの間のギャップを埋めるクライアントデスクトッププログラムの開発ニーズ。

ただし、これらの種類のデスクトップアプリケーションは、主にサーバーに常駐するロジックでシンになる可能性があるため、これはWebアプリケーションを除外しません。

もう1つの注意点として、クラウドコンピューティングと大規模仮想化の側面では、アプリケーションは必ずしもWebテクノロジの制限とセキュリティホールに制約される必要がないと言えます。ダム端末(Citrixと同様)の仮想化環境からデスクトップアプリケーションを実行することは、はるかに容易に実現でき、次の開発の「流行」になる可能性があります。

結論として、今まで以上に選択肢が増え、明日のテクノロジーを「最良の」方法として利用する話者がはるかに多くなっています。

0
maple_shaft

次の2つの仮定が当てはまると仮定します。

  • ユーザーベース全体がブロードバンドアクセスどこでも
  • HTML5およびWHATWGグループのドラフト仕様全体を一貫して実装する架空のブラウザーXがあり、すべてのユーザーがブラウザーXを使用しています。

商用パブリックデスクトップアプリケーションを必要とする商用パブリックHTML5 Webアプリケーションのintrinsic制限とは何ですか?

Flash/Java/SilverLight/etcブリッジに追加機能を依存せず、ブラウザープラグインに追加機能を依存しないプラグインなしのWebアプリケーションの制限に興味があります。

OK、それからここに問題があります:そのブラウザは本質的に安全ではありません。ですから、あなたは私たちに2つの間のトレードオフをするように求めています。しかし、それを乗り越えて、私たちがあなたの投稿で言及したJavaScriptを持っていると仮定すると、HTML5/Javascriptだけを使用して記述できないアプリはないという答えがあります。ただし、邪魔にならないブラウザを想定しています。

ローカルDBストアがあり、HTTPリクエスト(RESTafarianで十分であると通知されます)を使用して他のプラットフォームを呼び出すことができ、(Canvas経由で)必要なものをほぼすべて描画できます。すでにオープンスタンダード(OpenGL ish)を使用して記述された3Dゲームがあり、好きなことを何でもできるAPIがあります。

唯一の本当の欠点はスピードです。これらのHTTP APIを他のシステム(データベース)に呼び出すには時間がかかります。 FILE(COM1 :)要求(Windowsのシリアルデバイスを介して読み取るなど)の処理には時間がかかるため、これらは私が予想する問題の領域です。もちろん、ドライバーもファイルのようにアクセスできるように作成されていると思いますが、これはもう本当ではないと確信しています。しかし、彼らはそのようなメカニズムを公開することができます;)

ユーザーにとって、それほど大きな違いはありません。

0
jcolebrand