なぜウェブはリモートアプリケーションのスペースを獲得し、Xはそうではなかったのですか?


19

X Window Systemは25歳で、昨日(15日)に誕生日を迎えました。

おそらくご存知のように、最も重要な機能の1つは、Microsoft、Apple、またはWaylandのウィンドウシステムのいずれにもない方法で、サーバー側とクライアント側を分離することです。

かつて(あいまいな言い回しでごめんなさい)多くの人は、このサーバーとクライアントの分離のために、Xがウィンドウを作成する他の方法よりも支配的であり、ユーザーがクリックしてタイプする間、アプリケーションを別のサーバーで実行できると考えていました自宅で自分のコンピューター。

この使用法は明らかに残っていますが、せいぜい無視されています。サーバー上で実行されるプログラムを作成して使用する場合、ほとんどの場合、html / css / jsでWebを使用します。

なぜウェブは勝ちましたが、Xは勝たなかったのですか?Webに使用される技術(html / css / jsによる)は混乱です。すべてのバックエンドフレームワーク(Rails、Djangoおよびすべて)と組み合わせることで、実際にナビゲートするジャングルです。それでも、ウェブは創造性と進歩とともに繁栄しますが、リモートXアプリは繁栄しません。


6
この2つは、リモートでも比較できません。Xサーバー接続を使用すると、リモートアプリケーションを実行し、ローカルでGUIを表示できます。これは、リモートリソースをローカルクライアントにロードできるのとはまったく異なる使用例です。
マーティンピーターズ

3
違いがあることに同意しません。Webクライアント(ブラウザ)をサーバー(ローカルまたはリモート)に接続すると、(Web)アプリのGUIを表示できます。XセッションでアプリのGUIを表示できるように。
マーティンジョセフソン

4
X11プログラムを作成して、HTMLページと比較してみてください-必要な帯域幅も比較してください。さらに、WWWはX11を置き換えず、Gopherを置き換えました。

2
Pieters:確かに、ページはクライアント上でレンダリングされ、JSはクライアント上で実行されますが、それは単なる技術上のことです。多くの場合、コードはサーバー側で実行されます(php、java、.net、python、rubyなど)。実際には、どちらもサーバー上で実行されるアプリとクライアントで表示されるアプリの両方のインターフェイスです。XとWebはさまざまな方法でそれを行いますが、それがその要点です。
マーティンジョセフソン

14
テクノロジーはアダルトエンターテインメント業界による検証に合格しなかったため、テクノロジーの主流の採用に必要なステップです(これは、裸の女性の写真がXシステムで十分に早く利用可能にならなかったと言っているのです)。
dasblinkenlight

回答:


22

今ではまったく明白で基本的なように見えますが、World Wide Webの致命的な革新はハイパーリンクでした。Xがモデムリンク上で完全に使用できなかったとしても、シングルクリックでまったく新しいサーバーでまったく新しいプロセスを起動できないため、そのようなユースケースへの採用が妨げられます。


1
これが正解かもしれません。また、そのWebクライアントはAppleおよびMicrosoft OSでも実行されました。
マーティンジョセフソン

ハイパーリンクはWorld Wide Webの革新ではありませんでした。AppleのHypercardなど、80年代および90年代にWebブラウザと多くの不思議な類似性を備えた人気のあるプログラムなど、これまで何度も実装されていました。ハイパーテキストとハイパーリンクの概念はProject Xanaduで60年代に遡り、ティムバーナーズリーが90年代初期にCERNでハイパーテキストの独自のネットワークベースの実装を最終的に作成するまで、多くの形式で何度も実装されてきました。
チャールズサルビア

3
@CharlesSalvia:HTMLハイパーリンクのブレークスルーはURLによるものでした。特に、その普遍的な側面:グローバルで、仕事をするのに十分な中央権限を持ち、特定のメディアタイプやテクノロジーに縛られていません。以前の技術は、はるかに普遍的ではありませんでした。
–MSalters

17

Xには、アプリケーションを作成するためのCS学位が必要だからです。Webでは、入力する能力が必要です(それさえもできません)。

特に、webがhtmlだった初期の頃。ターミナルを開いて10分で機能するディスプレイを作成し、その後すぐにフィードバックしてインタラクティブに改善できます。エントリのこの低いバーは、大規模なユーザーの取り込みに拍車をかけました。一方、X-Serverアプリケーションの構築は、経験豊富なプログラマにとっても簡単な作業ではありません。

Webが機能の点でXアプリケーションと直接競合するようになり、機能のような同じGUIを提供するには、10年かかりました。この機能は時間の経過とともに言語スタックに追加されており、開発者は次の機能が追加される前に1つの機能セットを習得できます。そのため、技術の複雑さのこの漸進的な拡大により、低い水準が維持されています(すでに現場にいて、多くの人がいる場合)。今、この分野に飛び込むのは10年前よりもはるかに難しいですが、それでも可能ですし、Webの即時フィードバックにより学習がより満足のいくものになります(人間はドライブを強化するために迅速な満足が必要です)。

コストはもう1つの要因です。X-Serverを開発するのに十分なプログラミングスキルを習得するための実際のコストは相当なものです。さらに、アプリケーションを実行するサーバーの可用性がコストを押し上げました。HTMLを書くことを学ぶことは、「Hello World」ページを立ち上げて実行するのに実際には何もありませんでした。だから無料で練習できます。最終的にビジネスホスティングが必要になったとき、ホスティング会社の可用性は成長し、コストは常に比較的安価でした。


1
X上で使用されるアプリを作成するには、X APIを理解する必要があると仮定します。ただし、Webアプリを作成するためにHTTPを理解する必要がないのと同様に、Xの下で実行されるアプリを作成するためにXを理解する必要はありません。一番上にGTKライブラリがあるだけです。html、css、js、およびサーバーサイド言語を学ぶよりもずっと簡単です。その要点:Webサイトを公開するためにhttpサーバーを作成する必要がないように、Xアプリを提供するためにXサーバーを作成する必要はありません。
マーティンジョセフソン

そこでの分析には同意しません。最近のWebアプリケーションの作成は、10年前のXアプリケーションの作成とほぼ同じくらい複雑になっているという点があります。Xアプリケーションを作成することは、まだ簡単なプロセスではありません。Windowsアプリケーションを書くようなものです。重要なプログラミングの経験がない人の能力をはるかに超えています。一方、HTMLページを作成するのは簡単で、10分で完了できます(初心者でも)。したがって、迅速な再施行と迅速な実験が可能になります。これにより、エントリのバーがずっと低くなります。
マーティンヨーク

GTKは、Webが確立されてから利用可能になりました。
user16764

@ user16764:それは真実ではありません。私は1997年にGTKを使用していました(最初に起動したのはいつかはわかりませんが、それより前です)。(HTML / HTTPのように)Webは当時は稼働していたかもしれませんが、それほど確立されていません。つまり、92年にWebブラウザーがメインストリームに導入されたばかりでした(初めて見たとき)。Xには、それ以前にも使用できた他のウィンドウマネージャーがいくつかあります。twm(私は信じているtomのウィンドウマネージャー)ともう1つ少し高いレベル(忘れてしまいました)を使用したことを覚えていますが、90には(多すぎる)から選択できるものがたくさんありました(そして、それらはその前に利用可能でした(私は思います))。
マーティンヨーク

@LokiAstari:ウィンドウマネージャーとGUIライブラリを混同しています。明確なオーバーラップ(GNOME / Gtk、KDE ​​/ Qt)がありますが、それらは確かに同一ではありません。ウィンドウマネージャーを使用しても、まだ苦痛の世界がありました。
–MSalters

11

その答えは、「技術的な理由ではなく、arbitrary意的な歴史的または社会政治的な理由で多くの技術が採用されている」ということです。特定の問題に対する最善の解決策が常に支配的な技術になるわけではありません。(実際、ほとんどありません。)

2012年、HTTPサーバーを使用してデスクトップアプリケーションと同等のインタラクティブアプリケーションを作成している場合、HTTPとXの比較は興味深いものです。後知恵では、Xはおそらく、リッチでインタラクティブなネットワーク展開アプリケーションを開発するための優れたテクノロジーです。対話型デスクトップのようなアプリケーションは、HTTPのようなステートレスでドキュメント指向のテクノロジーにうまくマッピングされず、この不一致により、Cookie、セッションなどの状態を作成するためのあらゆる種類の回避策(ハック)が歴史的に発生しました。

しかし、HTTPの本来の目的は、ステートフルなデスクトップのようなアプリを開発することではありませんでした。それは、ドキュメントを取得し、情報表示することでした。情報は、他のドキュメントにリンクして、すぐに表示することもできます。リンクされたドキュメントのコレクションのアイデアは、1960年代にセオドアネルソンのプロジェクトザナドゥ」によってさかのぼります。Webはネルソンのハイパーテキストの概念の実装であると想定されていました。これは、百科事典や新聞などの印刷ページをコンピューター化する試みで、ユーザーはクリックするだけで、ある記事から別の記事に瞬時に「ジャンプ」できます。

AppleのHypercardのように、このアイデアの多くの反復が行われ、ハイパーテキスト/ハイパーリンクの概念を実装しましたが、ネットワーク上には展開されませんでした。World Wide WebはCERNのハイパーテキストの概念のネットワークベースの実装であり、Tim Berners-Leeが無料でブラウザコードライブラリをリリースし、他の人がそれを試せるようになったために成功した可能性があります。これは最終的に、Netscapeの前身であるMarc AndreesenのMosaicブラウザにつながりました。そして残りは歴史です。


しかし...多くのテクノロジーと同様に、HTTPまたはハイパーテキストの元の設計者があまり考えすぎないという新しい可能性が現れ始めました。Webは商品化され、人々はショッピングカートやログインなどのステートフルな対話機能を備えたWebサイトの開発を開始しました。HTTPのステートレスでドキュメント指向の性質は、デスクトップのようなアプリケーションにはあまり適していないことがますます明らかになりました。しかし、その時点では遅すぎた。誰もがすでにHTTPを使用していました。そこで、今日はさまざまなAJAXアプリケーションがデスクトップアプリであるかのように最善を尽くしています。


3

テクノロジーは今、同様の問題を解決しようとするかもしれませんが、確かに過去ではありませんでした。

現在のHTMLスタックは、時間の経過とともに、非常に単純なテキストドキュメントの転送から、スクリプトをほとんど使用しない「視覚的な」ドキュメントまで、フル機能のアプリケーションプラットフォームに進化しました。

HTMLが始まった当時、誰もリモートコンピューターに接続してそこでグラフィカルアプリケーションを実行することを夢見ることはできませんでした。これが可能になったのは、インターネットの遅延とスループットが改善された後のみです。それでも当時、HTMLはすでに存在していました。これは、リモートマシンで実行されるグラフィカルアプリケーションへのアクセスを顧客やユーザーに提供する方法であることは誰もが知っていました。

そして、すべての「無料」システムと同様に、今回はすべてを「リセット」し、それを改善するために新たに開始することは不可能になりました。そのため、HTML / CSS / JSを閉じて使用する必要があり、それをサポートする人々が最終的に賢明になり、それが長年の遺産とともに埋められることを願うだけです。

これは「なぜWebが勝ったのか?」という質問に答えます。競争はなく、すべてが始まる前にウェブが勝ちました。


1
HTMLが始まった時点で、NSCA HTTPサーバーとそのSGIを備えたサーバーサイドコンピューティングがすでに存在していました。ほとんどのアプリケーションはテキストを配信しましたが、Googleカスタムマップ、Googleマップの祖先をレンダリングできるものを覚えています。
ムービシエル

実際、イメージマップは前世紀の最後の10年の初期に遡ります。
-MSalters

1

原則として、この2つは似ていることに同意します。「サーバー上でコードを実行し、リモートクライアント上で視覚化を提供する方法は?」という質問をした場合、独立したチームがいずれかのソリューションを思い付くと考えるのは理にかなっています。

特定の面で一方が他方よりも人気がある理由は、2つのアプローチがまったく異なる視点から同じ問題にアプローチしているためだと思います。Xは技術的な問題に対する技術的な解決策ですが、Webは社会的な問題を解決する必要性として進化しました-リモートサーバーからリソースを取得してローカルマシンに表示し、それを簡単に行う方法便利?

より多くの人々が経験した問題を解決したため、ウェブは「勝ちました」。車の例えを考えてみましょう。高級セダンとトラックは、表面上は同じ問題を解決します。ある場所から別の場所に何かを輸送する方法です。

トラックは、文字通りポイントAからポイントBに何かを運搬するという技術的な問題を解決しました。そのため、非常にうまく機能します。乗用車は、人々が旅行中に快適であり、より多くの人を運び、肥料を少なくする必要性として進化しました。利便性を必要とする必需品になりました。したがって、時間の経過とともに、乗用車の数は、道路上のピックアップトラックの数をはるかに上回りました(シカゴの交通状況の観察に基づいて、テキサスでは異なるのでしょうか?)

そのため、車/トラックの類推のように、WebとX11はどちらもほぼ同じ技術的な問題を解決しますが、まったく別の目的を果たします。


1

あなたはリンゴと梨を比較しています。Xウィンドウは、画面コンテンツのレンダリングをローカルクライアントに分離することです。ローカルクライアントは、細いワイヤーでコンテンツのソースに接続できます。これは、「glass tty」時代から高品質グラフィックスの領域への計算モデルの拡張です。Xは、PCがまだかなり弱々しい時代に始まり、実際の計算のほとんどはUNIXまたはメインフレームボックスで行われました。アイデアは、比較的安価な「X端末」と比較的遅いネットワークのパワーを利用して、これらの深刻な計算リソースをグラフィカルに利用できるようにすることでした。

これがMacやPCで勝てなかった理由は、ゲーム、エディター、ビジネスグラフィックスなどのローカルアプリケーションでハイエンドグラフィックスをサポートしたいという願望が常にその開発を推進していたためです。ネットワーク常駐アプリケーションのサポートは、最近の再考です。

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