当社サイトのリンクを通じて購入すると、アフィリエイト手数料が発生する場合があります。 仕組みは次のとおりです.

Web は、生きて呼吸し、常に変化し、相互にリンクされ、進化する大量のドキュメント、データ、およびアプリケーションです。 その性質上、分散型かつ即時型です。 ウェブは、その混沌とし​​た美しさにおいて、バージョンレスです。そして、これまでもそうでした。 Gmail のバージョンは何ですか? それともフェイスブック? あなたは知っていますか? 手入れする? 関係ありますか? いいえ。

さらに、Web のようなバージョンのないリソースにアクセスするために使用されるメカニズムは、それ自体も同様にバージョンレスである必要があります。 そうしないと、リソース自体とその消費手段との間でインピーダンスの不一致が生じます。 この単純な自明の理に基づいて、私は #oneversion #manifesto をツイートすることにしました。

「#oneversion #manifesto 私の Web サイトはブラウザの最新バージョンのみをサポートします。 ユーザーにアップグレードしてもらうのはブラウザメーカーの義務です。」

つまり、Web にはバージョンがありませんが、それでも私たちは、自分たちのつまらない便宜のために、数字の順序という焼き印で Web に傷を付けようと決意しているようです。

たとえば、ティム・オライリーが Web 2.0 という用語を作ったとき、この用語は開発者が Web 標準、オープン データ、API に焦点を当てるようにという呼びかけとして機能しました。 そのスナップショット – ただし、 それは人為的だったかもしれない – Web 1.0 の西部開拓時代のような、同様にステレオタイプなスナップショットからのイデオロギー的かつ実際的な移行を定義するのに役立ちました。 黙示録的な荒野には、ブラウザ戦争の犠牲者が散らばり、テーブルベースのレイアウトの悪用と、不運なスパゲッティスープの悲劇があふれていました。 Perl/HTML/JavaScript コード。 しかし、Web 2.0 は、いかなる時点においても Web の真の状態を記述したものではありません。 それは単に、ウェブがかつてどこにあったのか、どこにあると考えていたのか、どこにあるべきだと考えていたのかについて議論する出発点を与えてくれた、単なる都合の良いフィクションでした。 しかし、Web 2.0 とは実際には何を意味したのでしょうか? Web 2.0 ソリューションを販売しようとしているマーケティング担当者の数と同じくらい多くの定義がありました。

そしてそれがここでの問題の核心です: 本質的に存在するものにバージョン番号を適用することです バージョンレスは、最新かつ最高のものを販売することを目的としたマーケティング活動である以上に無意味です。 アップグレードします。 私たちはソフトウェアがサービスであるという認識をようやく受け入れつつありますが、今日ではその用途さえも疑わしいものです。

バージョン番号は、目的地まであとどれくらいかを示す高速道路のマイルストーンのようなものです。 十分な間隔で発生する場合に便利で、穏やかなリズムを提供します。 進捗。 しかし、今日のソフトウェア開発は、マイルではなくインチで測定される継続的な改善で構成されています (または、理想的には、他の文明世界のようにキロメートルではなくセンチメートルで測定されます)。 バージョン番号は、ソフトウェアのアップグレード サイクルが数日 (数時間ではないとしても) ではなく、数か月 (数年ではないとしても) に及んでいたコンピューティングの暗黒時代の名残です。 配布とアップグレードは、データが保存された薄っぺらな物理的なオブジェクトを出荷することを意味し、ユーザーが意識する必要さえないインターネットを介したシームレスなアップグレードではありませんでした。 発生した。

圧倒的なユーザー数

毎日のようにバージョン番号の変更をユーザーに浴びせることは、ユーザーを圧倒する確実な方法です (最近 Firefox ユーザーが経験しているバージョン番号の過負荷によって証明されています)。 その代わり、ソフトウェアは継続的に進化するため、バージョンをユーザーから安全に隠すことができます。 開発者にとってメリットのある実装の詳細 (バグ レポートをソース コードのコミットに関連付けるため、 例)。 バージョン番号を非表示にすると、ユーザーは心配する必要が 1 つ減ります。 そして、私たちが好むと好まざるにかかわらず、ソフトウェアは将来、常に最新の (あるいは古くなった) ものとして理解されるようになるでしょう。

Web テクノロジーと Web 自体は、絶え間なく (そして加速的に) 進化しています。 これは人間にとって対処が難しいことです。 それは本質的に混沌とし、本質的に安全ではなく、本質的に不安定である一方で、私たちは物事を理解するために秩序、単純さ、予測可能性を切望します。 私たちの原始的な麺類は、容赦ない変化の猛攻撃よりも、何十年にもわたってゆっくりと進化するものに慣れています。 流れる川の写真の詳細に基づいて報酬を得るのははるかに簡単ですが、時代遅れではあります。 スナップショットは、絶えず変化するストリーム自体の現在の状態に基づいて私たちの議論を適応させるよりも、そうかもしれません。

したがって、バージョン化できないものをバージョン化したいという要望が非常に一般的であることは理解できます。 HTML に数字の接尾語を追加したり、Web 3.0 が正確に何であるか、かつては何だったのか、そしてこれからどうなるのかについて威張り散らすにしても、私たちは単に混乱に秩序をもたらそうとしているだけです。 物事をバージョン管理したいという私たちの願望は理解できますが、それでも、次のことを考えると、それは依然として無意味で非現実的な取り組みです。 ウェブ、そして今日のソフトウェア全般の流動的、変更可能、順応性のある性質は、そのような静的な性質とは相容れません。 道標。

進化

Web テクノロジーが絶え間なく進化することを考えると、Web テクノロジーへのゲートウェイが常に進化することが最も重要です。 Web (Web にアクセスするために使用するアプリケーション) も同様にバージョンレスであり、一貫した方法で進化します。 やり方。 このペースに追いつけない(または追いつかない)ブラウザは、ゲートウェイではなく *ゲートキーパー* となり、最新かつ最高の (そして唯一の) Web へのアクセスを人為的に制限します。 このようなブラウザは有害™ です。

開発者として私たちが最もすべきことは、ブラウザーのメーカーに代わってそのような有害な行為に報いることです。 もし私たちが時間、労力、予算を費やしてそのような行動を支持するなら、IE 6 の大失敗をもたらした通常通りの態度が許容されるという危険なメッセージを送ることになります。 その代わりに、私たちはブラウザのメーカーに対し、そのような有害な行為は容認できず、容認されないことを大声ではっきりと伝えるべきです。

現在、Web のバージョンレス状態を理解し、その性質に準拠している唯一の主要なブラウザーは、Google Chrome です。 Chrome のダウンロード ページを見ると、バージョン番号が記載されていますか? 実行している Chrome のバージョンを知っていますか? 最後に Chrome を更新したことを覚えているのはいつですか (煩わされることなくシームレスに更新されます)。 Chrome はすでに限界を設けており、他のブラウザ メーカーが追随するか取り残されるかは、次第です。

しかし、正確には、なぜブラウザが Web のバージョンのない特性に影響されないのでしょうか? 確かに、ここまではうまくいきました。 ウェブはこれまで以上に進歩しています。 はい、でも時代は変わりつつあります。 Web は孤立して存在しているわけではありません。ネイティブ プラットフォームと他のクロスプラットフォーム テクノロジの両方との競合が存在します。 歴史的に、Web には、展開/配布、シームレスなアップグレード、ユニバーサル アクセスという 3 つの主要な領域において、ネイティブ プラットフォームと比較して重要なユーザー エクスペリエンス上の利点がありました。

Web サイトの公開は、選択した Web オーサリング ツールの「公開」ボタンを押すだけで簡単に行え、更新も同様に簡単です。 これを、工場でソフトウェアを CD に焼き付けたり、それを収納する箱、トラックでソフトウェアを配布したりする必要があった従来のソフトウェアの発行と配布の複雑さと比較してください。 それらを小売業者やそれらをホストする棚に配布します(電子配布ではプロセスが簡単になりますが、それでも、単一のボタンを押すほど単純ではありません) ボタン)。

Web サイトの利用は、ネイティブの Web サイトを見つけて利用するプロセスと比べて、同じくらい簡単です (URL を入力するだけです)。 ソフトウェア: ソフトウェアを探したり、ダウンロードしたり、ダウンロードした場所を見つけたり、インストールしたりする手間がかかる場合があります。 依存関係をインストールし、インストールした場所を見つけて実行すると、ダウンロードする新しいアップグレードがあることが通知されるだけです。 インストール。 なんという悪夢でしょう。 そして、Web にとってユーザー エクスペリエンスには大きなメリットがあります。 言うまでもなく、実質的にどのデバイスからでも Web アプリケーションにアクセスでき、データにもアクセスできます。 データをコピーしたり、紛失しやすい周辺機器に入れて持ち歩いたり、同期したりすることを心配する必要はありません。

しかし、最近ではネイティブアプリが追いつきつつあります。

アプリ

App Store は、ソフトウェアの検索とインストールを簡単に、そしてシームレスに行えるよう順調に進んでいます。 アップデート(Chrome に実装されたメカニズムなど)により、常に最新バージョンを簡単に入手できるようになります。 アプリ。 同時に、iCloud などのクラウドベースのソリューションを使用すると、同期について心配することなく、さまざまなデバイスからデータにシームレスにアクセスできます。 私たちは常に、ウェブがネイティブに追いついたことについて話しますが、現代の本当の象徴はネイティブがウェブに追いつくことです。 Web が競争力を維持するには、エンド ユーザーと開発者の両方により良いユーザー エクスペリエンスを提供する必要があります。

また、Web は伝統的に、オーサリングの容易さという点で、開発者にとってユーザー エクスペリエンスに有利な点を持っていました。 しかし、「特定の種類の Web プロジェクト向け」と限定して、この記述を和らげる必要があります。 どのような種類の Web プロジェクトですか? ドキュメント中心のタイプ。 Web プロジェクトは、ドキュメント中心の Web サイトから行動中心の Web アプリケーションに至るまで、幅広い連続体の上にあると考えることができます。 Web は、その初期の頃から、ドキュメント中心の Web サイトの作成を容易にしてきました。 てか、「Hello, world!」 Web の例は、単純に「Hello, world!」です。 シンプルズ。 (もちろん、これは有効な HTML ではありませんが、その赤ちゃんを .html 接尾辞が付いたテキスト ファイルに挿入し、Web サーバーに送信すると、 ) Web の寛容な性質は Web の成功の重要な要素であり、Web がこれほど普及した主な理由の 1 つです。 今日。 メモ帳を持っているジョーなら誰でも、Web 開発者である可能性があり、おそらくある時点では Web 開発者であった可能性があります。 それは良いことです™

しかし、開発者にとっての Web のユーザー エクスペリエンスの利点は、動作中心の Web アプリケーションの作成には及びません。 動作中心の Web アプリケーションの作成はまったく別の競技であり、桁違いに複雑になります。 ほとんど非インタラクティブなドキュメントの代わりに、非常に非線形で高度にインタラクティブなアプリケーションについて話しています。 アプリケーションでは、ブラウザーやプラットフォーム間で表示上の一貫性を維持するだけでなく、動作の一貫性も保証する必要があります。 レスポンシブ デザインの実装(現在は主にプレゼンテーションの問題に焦点を当てています)が重要であると考えている場合は、 大変です。動作中心の Web では、プラットフォームやデバイス間で動作の一貫性を維持してみてください。 アプリ。

複数のブラウザーの以前のバージョンでの特殊な機能をサポートする必要があるため、そのタスクに伴う複雑さは倍増し、Web では次のことが突然明らかになります。 複数のプラットフォームと複数のランタイム (ブラウザ) バージョンが組み合わさった複雑さにより、特定のネイティブと比較した場合、開発者は不利な立場に置かれます。 プラットフォーム。 その複雑さをいくらか取り除くことができれば、Web に競争上の優位性を与えることができます。 バージョンの断片化を排除するために、ブラウザのメーカーが更新をシームレスに行えるようにすることが、これを実現する上で大きな部分を占めます。 そしてこれが、無能であるか悪意があるにもかかわらず、ブラウザにシームレスなアップグレードを実装していないブラウザ メーカーが Web に損害を与えている理由です。

これは、私の Web サイトが主要な Web ブラウザの最新バージョンのみをサポートし、あなたの Web サイトもサポートする必要がある理由でもあります。

これはそうなります ない 一部の解釈では、「プログレッシブ エンハンスメントを使用しない」という意味です。 ドキュメント中心の Web サイト (たとえば、新聞サイトではなく新聞サイトなど) をお持ちの場合は、ぜひ、 Photoshop クローンのような行動中心の Web アプリケーション) と予算が許す限り、実装してください。 漸進的な強化。 予算とスケジュールが許せば、それを超えて、さまざまなデバイスで動作するレスポンシブ デザインを実装してください。 次に、それをさらに超えて、タッチベースの入力などの機能をより適切にサポートするようにサイトを最適化します。

本当にサイトを輝かせたいのであれば、それをさらに超えて、(最後のステップとして)特定のデバイス向けに最適化して、ユーザー エクスペリエンスに重要な最後の 5 パーセントの磨きをかけるべきです。 ただし、サイトが IE 8 で最高に動作しなくても心配する必要はありません。 またはFirefox 7。 またはChrome 14。 それはあなたの仕事ではありません。 更新がシームレスになるようにソフトウェアを構築するのは、ブラウザ メーカーの仕事です。 そして、バージョン番号というボールとチェーンを残すように単なる人間を教育するのは、私たち全員にかかっています。

今の時代では、バージョン番号という概念自体が時代遅れです。 物事は最新バージョンであるか、古くなっているかのどちらかです。 Web にはバージョンがありません。 ブラウザが Web へのゲートウェイであり続けるためには、バージョンレスである必要があります。 ウェブエクスペリエンスへのアクセスを制限し、競合するウェブサイトに関連してウェブに損害を与える門番 プラットフォーム。

明日のことをさらに素晴らしいものにするために、今日の時間を費やして昨日のことをサポートすることで進歩は起こりません。

開発者でありカンファレンス主催者の John Allsopp 氏は、Aral の意見に完全には同意していません。 彼の返答を読んで、 できるだけ多くのユーザー向けに開発する、そして私たちに知らせてください あなた 以下のコメント欄で考えてみてください。