The Web Platform

Web プラットフォーム

[1] Web (ウェブ) プラットフォーム (the Web platform) は、Webブラウザーによって提供される、 HTMLCSSJavaScriptDOMHTTP などの Web標準技術によって構築されたハイパーテキスト・アプリケーションのためのプラットフォームです。

技術

[15] Webプラットフォームは数多くの技術により構成されています。 具体的にどれとどれが Web の技術であると明確に範囲を定めることは難しいですが、 おおよそ次のようなものが含まれると考えられます。

[57] 文書:

[65] 文書 API:

[56] 転送プロトコル:

[58] 識別子:

[60] Webブラウザー API:

[59] API:

[67] 廃れたものの限定的にまだ使われているもの:

[61] Web 以外で広く用いられているもので、 Web でも組み込まれているもの:

[68] クライアントの構成技術についてはWebブラウザーサーバーの構成技術についてはHTTPサーバーも参照。

特定製品でのみ実装されている技術

失敗した技術

[40] Web ではほとんど利用されなかったもの

[25] 一世を風靡した後廃れたもの:

[41] 廃れて現在では使われていないもの:

[42] 廃れて Web では使われなくなったもの:

まだ仕様化されていないもの

[54] 2004年の WHATWG 設立以来、新旧の Web 技術の多くが仕様書の形で文書化されてきており、 現在ではWebブラウザーに実装されている技術の大部分がいずれかの仕様書で記述されています (その品質と完成度は、まだそれぞれです)。しかし、今なおソースコードや簡単な紹介文書程度にしか記述されていないものもあります。

技術の利用方法や組み合わせ

[27]

補助技術

[43] Web技術を支える技術

技術と利用者との関わり

[26] Web platform の技術は、Webブラウザー利用者インターフェイスを介して利用者に提示されます。

個別の要素については、Webブラウザーを参照。

仕様書

[22] Webプラットフォームはたくさんの技術で構成されているので、 たくさんの仕様書でその部分部分が規定されています。

各技術の項を参照。

[23] 仕様書の探し方は、Web技術の仕様書の探し方を参照してください。

団体

[16] Webプラットフォームの技術を扱う標準化団体は色々あります。 Web を参照してください。

隣接分野

[17] Web の普及により、 Web 技術が Web 以外でも使われることが多くなりました。

[36] これらWebプラットフォームもどきとでもいうべきもの達は、 採用しているWeb技術の程度が違っています。 Webアプリケーションがそのまま動くことを謳い文句にするものもあれば、 Web API のいくつかが提供されているに過ぎないものもあります。

[37] それぞれの設計目標があるのですから、 Webプラットフォームに近いほど優れているともいえません。 Webプラットフォームに近いのなら、 Webプラットフォームと完全に等しくないことはデメリットともいえます。

[18] 中途半端に標準的な Web 技術との互換性を持たせているために、 開発者に優しいと謳いながら一方で開発者を苦しめていることもあります。 独自の改変のため、 Web の進歩についていけずに破綻することもよくあります。

walled garden も参照。

[38] 企業運営にしろコミュニティーベースにしろ、 最初は勢いがあって最新の Web技術を流用・模倣するところから始まって、 利用者 (たる技術者) の側も新しい物好きが食いついたら一気に火がついたりするんですけど、 そのエネルギーを持続させるのが難しいのですよね。 次第に企画開発の予算や人員が削減されたり、 興味を持つ人が減ったりする中で、 必ずしも自プラットフォームの改善につながるとはかぎらない Webプラットフォーム側の仕様の発展に追いつくためだけの変更に割くリソースがあるプロジェクトは少ない。 でもそれを放っておくと、どんどんWebプラットフォームとの差異が増えていって、 Webプラットフォーム側の魅力的な新機能を取り込むのが難しくなりますし、 利用者 (たる技術者) からは古びた使いにくいプラットフォームに見えるようになっちゃう。

[39] それを避けるには独自技術の部分もどんどん上流Webプラットフォームに取り込んでもらって一緒に発展していくモデルが理想的なのでしょうけど、 Webプラットフォームとは違う要件があるから独自技術を作ることになったのでしょうから、 無理がある場合が多いし、独自に仕様を決めて独自に開発するスピード感と、 多数の利害関係者を調整しながら開発を進めていくWeb標準化のスピード感が違いすぎて、 きっとうまくいかない。

[19] スマートフォンアプリなどネイティブアプリの機能の一部を Webサーバーの提供する Web API を利用する形で実装したり、 アプリ内ブラウザー (埋め込みブラウザー) でレンダリングしたりすることがあります。 今日では通信機能を持ったスマートフォンアプリのほとんどは HTTP を使っていると思われますから、大多数のスマートフォンアプリは広義の 「Web 技術を流用したもの」に含まれます。

[20] Webプラットフォームという語の対象範囲はあまり明確ではありませんが、 こうした閉鎖的環境に Web 技術を応用していて Web 本体の発展と同期しないことを敢えて選択しているものは範囲外との認識が一般的だと考えられます。

[21] いわゆるイントラネットWeb 系アプリケーションの位置付けは微妙です。 例えば「IE6 専用」のような特定環境を要求した企業内システムは、 他の Webブラウザーの存在などの Webエコシステムを無視したもので相互運用性がそもそも成立しないため、 HTML5 以降の新技術開発におけるWeb互換性の判断では無視されてきました。 しかしだからといって一般に企業内のみの閉鎖的なシステムの互換性がすべて無視されているかというと、そうでもありません。 公開サイトであろうがアクセス制限があろうが、特定の Webブラウザーのみに限定されていなければ、 Webプラットフォーム上のアプリケーションであると主張することはできそうです。 (インターネットと接続しない独自ネットワーク上のアプリケーションでもそのように言えるのかどうかはよくわかりません。 少なくてもWeb互換性の議論の対象には (統計的に) 入らなそうですが...)

[28] ブラウザー上で動作して広義の Webブラウザーを構成し、 利用者に追加の機能を提供するブラウザー拡張や、 プラットフォームから Webブラウザーソフトウェア部品として利用する埋め込みブラウザーのような、 Web を「外側」から扱う技術もあります。

[29] これらは Webブラウザープラットフォームの仕組みやビジネス的な環境に大きく依存する部分でもありますから、 「内側」とは違ってあまり標準化の及ばない領域となっています。 それでも、「内側」と「外側」との関係性の部分である程度の共通化の試みは存在しています。

関連

[6]Web 5.0」は、 Web platform を規定する HTML5 世代の仕様書群の総称として使われることがありました。 仕様書からのバージョン番号の撤廃でこの言葉は使われなくなりました。

[7] Web プラットフォームと同じ意味で「Open Web Platform」という語が使われることもあります。

[8] 最近は W3COpen Web Platform の意味で Web Platform という語を使うことがあって意味が揺らぎつつあります。

[35] Open Web Platform はとうとう死語になったね。。。

歴史

[2] 従来、ソフトウェアとしての「Webブラウザー」、技術の総称としての「DHTML」や 「Ajax」、用途としての「Webサービス」、「Webアプリケーション」といった言葉はありましたが、 プラットフォームとしての Web を指す用語はありませんでした。 (本 Wiki 項目の執筆初期時点でも、普及したものはありませんでした。)

[3] Web platform はこの Web の環境を指す語として (2008年くらいから?) Ian HicksonWHATWG 関係者がよく使っています。

[5] に再登場した Web Applications 1.0 では、 Abstract で

This specification defines a big part of the Web platform, in lots of detail.

... とその位置付けが説明されています。 HTML仕様書における 「Web platform」の初出はこれだと思われます。加えて、その後の改訂で HTML Standard の各章でちらほら使われるようになりました。

[11] バズワードとしての HTML5 は、本項の Webプラットフォームと同義かもしれません。
古い

[4] IRC logs: freenode / #whatwg / 20090827 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20090827

[9] Relevant spec links · mozilla/servo Wiki ( ( 版)) https://github.com/mozilla/servo/wiki/Relevant-spec-links

[10] W3CWeb 関連技術の文書を集めたサイトを WebPlatform と呼んでいます。ただし現状では Web platform のごく一部しかカバーできていません。

[12] W3C WS Package PAS Explanatory Report (Daniel Dardailler 著, 版) http://www.w3.org/2010/08/ws-pas.html

[13] >>12 は「other foundational Web and Internet technologies (XML, http, URI)」 のことを「Web Platform」と呼んでいます。図中には更に SMTPTCP も含まれています。

[14] IRC logs: freenode / #whatwg / 20150909 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20150909

# [15:43] <MikeSmith> so I am going to experiment with using the term "the Web runtime" in conversations instead of "the Web platform"

# [15:44] <MikeSmith> the reason being that I am increasingly running into people who are using "the Web platform" to mean either just "the Web" or else basically whatever they want it to mean such that there pet technology is part of it

# [15:45] <MikeSmith> e.g., claims that EPUB is part of the Web platform

# [15:45] <MikeSmith> or that Linked Data is part of the Web platform

# [15:45] <MikeSmith> etc.

[31] W3CWebApps WG廃止してかわりに設置した WGWeb Platform Working Group と称しています。 しかし Web platform の多くの部分を担当範囲に含めてはいますが、 一般的に Web platform と呼ばれる範囲と比べるとごく一部に限られています。

[24] Web updates () https://antenna.suikawiki.org/web/

[30] Writing Procedural Specs () https://garykac.github.io/procspec/

[32] Drafts of unspecified behaviors that Servo needs to implement for web compatiblity () https://servo.github.io/servo-specs/

[33] servo/servo-specs: Drafts of unspecified behaviors that Servo needs to implement for web compatiblity () https://github.com/servo/servo-specs

[34] day-to-day () https://foolip.github.io/day-to-day/