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


11

次の2つの仮定が真であると仮定しましょう。

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

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

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

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

  • データベース?WebSQLとindexedDBがあります。
  • ファイルIO?読み取りと書き込みの両方を行うHTML5 File 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アプリケーション開発のその他の困難は何ですか?


2
主な制限:少なくともコストを返すビジネスモデルに関連して、人々が使用したい十分な数のWebアプリケーションの良いアイデア。残りははるかに2番目です。
SF。

「本質的な制限とは」「固有の制限」とはどういう意味ですか?これらの言葉はどういう意味ですか?どのような情報が必要ですか?どんな問題がありますか?質問はなんですか?
S.Lott

@SFは「web」という単語を削除します。問題と解決策が必要です。そのソリューションがアプリケーションである場合、問題を解決し、ユーザーベースを持ち、機能するビジネスモデルを持つ必要があります。解決策としてデスクトップアプリケーションを使用している問題のセットを比較し、なぜWebアプリケーションが機能しないのかを質問しています。
レイノス

@ S.Lottあなたの正しい、質問はあまりにも曖昧だった、私は実際の質問が何であるかを明確にしたことを望みます。
レイノス

何?「商用パブリックデスクトップアプリケーションが必要な商用パブリックWebアプリケーションの本質的な制限は何ですか?」これは、「Webが機能しないためにデスクトップが必要になるのはいつですか?」という意味ですか?その場合、これらはすべて重複しています:Programmers.stackexchange.com/search
q

回答:


11

頭の上から

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

1
2. WebSocketsはTCPソケットを公開します。ブラウザでUDPにアクセスすることはできませんが、TCPにはさらに多くのオプションがあります。
レイノス

2
3. WebGLは興味深い進歩を遂げています。OpenCLサポートが最近開始されました。確かに、デスクトップゲームの開発にはまだ5年遅れていますが、可能になり始めています。
レイノス

2
@Raynos:WebSocketsはソケットのような機能を提供しますが、特定のハンドシェイクが必要です。既存のシステムに簡単に適合させることはできません。サーバー側の変更が必要です。汎用のsshクライアントWebアプリはありません。WebGLはgfxの問題の一部を解決するかもしれませんが、バルクデータ要件(ギガバイトのテクスチャとメッシュ)、コントローラーI / Oに対する解決策はまだありません。また、オーディオサポートは現在哀れに貧弱です。
SF。

1
4. W3C Device API(私は知りませんでした)は、実際にサンドボックスの問題を解決するために着実に進行中です。
レイノス

1
この回答を最初に書いてから多くのことが変わりました。ブラウザは、それ自体で合法的なソフトウェアプラットフォームになりました。回答で説明した内容の多くが可能になりました。はい、十分な努力を払えば、ブラウザで実行されているほとんどのゲームやアプリケーションを想像できます。
ロバートハーヴェイ

3

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

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

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

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


0

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

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

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

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

肝心なのは、今まで以上に多くの選択肢があり、「最高の」方法として明日のテクノロジーを演じる多くの話し手がいるということです。


1
興味深いことに、Webブラウザ上の仮想化環境からデスクトップアプリケーションを実行できます。ほとんどのVNCサーバーの古い機能は、VNCビューアーJavaアプレットであり、http:// [リモートマシン]:5800 /でデフォルトで利用可能です。
SF。

0

次の2つの仮定が真であると仮定しましょう。

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

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

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

わかりました、それからここに摩擦があります:そのブラウザは本質的に安全ではないでしょう。ですから、2つをトレードオフするように求めています。しかし、それを超えて、JavaScriptを持っていると仮定すると(投稿で言及した)、HTML5 / Javascriptだけでは書けないアプリはないという答えが返ってきます。ただし、邪魔にならないブラウザを想定しています。

Thingにはローカルdbストアがあり、HTTPリクエストを使用して他のプラットフォームを呼び出すことができ(RESTafarianが十分だと伝えます)、必要なものを(Canvasを介して)描画できます。オープンスタンダードを使用して記述された3Dゲーム(OpenGL ish)がすでにあり、必要なことを行うためのAPIがあります。

唯一の本当の欠点は速度です。これらのHTTP API呼び出しを他のシステム(データベース)に行うには時間がかかります。FILE(COM1 :)リクエストの処理には時間がかかります(たとえば、Windowsのシリアルデバイスを介して読み取るため)。これらは、私が予想する問題領域です。もちろん、ドライバーはファイルのようにアクセスされるように書かれていると仮定していますが、これはもはや真実ではないと確信しています。しかし、彼らはそのようなメカニズムを公開する可能性があります;)

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.