Hypercardは、無駄ではなかったが、ウェブの重要な「#ViewSource」アフォーダンスを予見していました。これにより、人々は自分たちが楽しい、または役に立つと感じたものをコピー、変更、カスタマイズ、改善することができました。このアフォーダンスは、後に#Scratchのような人間中心のプロジェクトにも採用され、#エンシッティフィケーションに対する強力な解決策となっています。
人々がオープンソースソフトウェアについて話すとき、その会話はしばしばフリーソフトウェア財団のフリーソフトウェアの概念に支配されます。
「フリーソフトウェア」とは、ユーザーの自由とコミュニティを尊重するソフトウェアを意味します。大まかに言えば、ユーザーがソフトウェアを実行、コピー、配布、調査、変更、改善する自由があることを意味します。
フリーソフトウェアのこの定義は有用であり、FSFはそれを提唱することで、世界に多くの素晴らしいオープンソースソフトウェアを贈りました。
しかし、Webアプリケーションは、常にこのフリーの定義に適合するのが難しいものでした。これは主に技術的な理由によるものです。Webアプリケーションは、Webブラウザがリモートシステムで実行されているWebサーバーと対話することを含みます。
基本的なレベルでは、WebのRESTfulアーキテクチャは、リモートリソースのハイパーメディア表現を中心に構築されました。ブラウザはサーバーによって提供されるハイパーメディア表現のみを処理するため、サーバー側で実行されているコードの実際のソースを認識できません。
確かに、Webは成長においてフリーおよびオープンソースソフトウェアを活用してきました。ブラウザは通常(少なくともほとんど)オープンソースであり、サーバーソフトウェアは多くの場合オープンソースなどです。そして、もちろん、フォーラムなどのためにユーザーが実行できるオープンソースのWebアプリケーションもあります。
ただし、一般的なWebアプリケーションユーザーの観点からすると、WebアプリケーションはFSFの意味でフリーではありません。ユーザーは、ブラウザを介してアプリケーションと対話するときに実行されるサーバーコードのソースを確認および変更することができません。
Webはフリーソフトウェアの概念とはやや不調和な関係にありますが、初期のWebには非常にオープンな開発者文化がありました。
実際、いくつかの重要で実用的な点で、初期のWebはフリーソフトウェア運動によって達成されたものよりもさらにオープンな開発者文化を持っていました。
ブラウザで利用可能な#ViewSourceアフォーダンスにより、人々は少なくとも非公式な方法でWebを理解し「所有」することができました。ほとんどのFSFに準拠したアプリケーションでさえできなかった方法で:アプリケーション自体内から利用できるアプリケーションの「ソース」、または少なくともソースの一部に直接アクセスできました。
複雑なビルドツールチェーンや、実際にはツールチェーンをまったく必要とせずに、「ソース」(HTML、JavaScript、CSS)をコピーアンドペースト(または保存)して、変更を開始できます。
Webのこの根本的なオープンさにより、多くの人々、多くの場合、正式なコンピュータプログラマーの訓練を受けていない人々が、アドホックかつ非公式な方法でWebページやアプリケーションを作成する方法を学ぶことができました。
厳密なフリーソフトウェアの用語では、これはもちろん妥協でした。Webアプリケーションのユーザーとして、サーバーが特定のハイパーメディア応答をどのように構築しているかを認識できませんでした。
しかし、サーバーが何を応答しているかを確認できました。ダウンロードして微調整したり、いじったり、調べたりできます。高度なユーザーであれば、ブラウザツールを使用して、アプリケーションをその場で変更できます。
そして、最も重要なこととして、HTMLがどのように生成されたかを確認できなくても、そこから学ぶことができました。
クライアントとネットワークプロトコルのこの根本的なオープンさと、それによって生み出された文化は、初期のWebの成功の大きな要因でした。
囲い込み運動は、以前はコモンズであったものが民営化された英国史の時代でした。
これは、18世紀の匿名詩人が書いた次の詩が示すように、英国史における悲劇的な出来事でした。
法は男または女を閉じ込める
コモンズからガチョウを盗む人
しかし、より大きな重罪犯を解放する
ガチョウからコモンズを盗む人。
–18世紀の匿名詩人
過去10年間で、Webは「デジタル囲い込み」の時代を迎えました。この時代では、FacebookやTwitterなどの「閉鎖されたプラットフォーム」が、以前のよりオープンで混沌としたブログやインターネットフォーラムに取って代わりました。
多くの(ほとんどの?)Web開発者は、この傾向を非難しています。
しかし、インターネットがますます閉鎖される危険性を認識しているにもかかわらず、多くのWeb開発者は、自分たちの技術的な決定と、これらの決定がWebのオープンな文化の消滅にどのように貢献する可能性があるかを考慮していません。
不注意ながら(ほとんどの場合)、過去20年間のWeb開発における技術的な傾向と決定は、Webの「技術的囲い込み」と呼ばれるものにつながりました。これは、このアーティクルの冒頭でコリー・ドクトローが論じた#ViewSourceアフォーダンスを、技術的な決定によって徐々に蝕むプロセスです。このアフォーダンスは初期のWeb開発者にとってコモンズとして存在していました。
Web開発における#ViewSourceアフォーダンスの低下と、技術的囲い込みの実際の顕著な例を見るには、おそらくインターネットで最も人気のあるWebページであるGoogleホームページを見てみましょう。
これは、2000年のほぼ完全なページのソースで、wayback machineから取得したものです。
対照的に、これはWebサイトの現在のソースコードの約1/100のランダムなスナップショットです。
これらの2つのスクリーンショットは、時間の経過に伴う#ViewSourceアフォーダンスの有効性の低下を劇的に示しています。はい、ページを右クリックして基になるソースを表示することはできますが、後者のコードを理解することは、最も経験豊富なWeb開発者にとっても困難でしょう。
新しいWeb開発者は、そうすることから価値を引き出すチャンスはほとんどないでしょう。
これは、この状況につながったGoogleエンジニアの技術的な決定を技術的な決定として批判するものではありません。明らかに、外見は似ていますが、2023年のGoogleホームページは2000年のものよりもはるかに洗練されています。
2023年のGoogleホームページは、2000年のページよりもはるかに複雑になり、時代精神を考えると、多くのJavaScriptが含まれることになるでしょう。
しかし、これは初期のWebに関する非常に重要な何かが、ほとんど間違いなく意図せずに失われたことを指摘するためのものです。それは、ページのソースを表示し、それが何をしているかを理解し、そして最も重要なこととして、そこから学ぶ能力です。
htmxとhyperscriptの両方は、動作の局所性設計原則に従っています。
この原則は、次のように述べています。
コードユニットの動作は、そのコードユニットだけを見ることでできる限り明確である必要がある
上記のエッセイで概説されているように、動作の局所性の主な技術的利点は、保守が容易なことです。
しかし、htmxとhyperscriptの動作の局所性には、重要な文化的利点もあります。それは、Webでの#ViewSourceアフォーダンスの力を回復することです。
Hyperwordleを考えてみましょう。これは、現在ニューヨークタイムズが所有する人気のあるWordleゲームのhyperscriptベースのクローンです。
Hyperwordleにアクセスして右クリックし、そのソースを表示すると、少しの努力で理解できるHTMLとhyperscriptが表示されます。
この場合、#ViewSourceアフォーダンスは有効です。
これを、ニューヨークタイムズでのWordleの実装のソース表示体験と比較してください。
これはもちろん少し不公平です。NYTimesバージョンは、より多くの機能を持ち、大幅に最適化されています。Hyperwordleは概念実証であり、毎日何百万人ものユーザーによって叩かれているわけではありません。
その限定にもかかわらず、HyperwordleはWebの潜在的な未来、つまり、オープンな文化、#ViewSourceの礼儀正しさが再びWebの文化の試金石となる未来を示しています。
Webのオープンな文化を重視するエンジニアは、その文化への脅威は、Webの最も重要な部分の大企業によるデジタル囲い込みだけではないことを認識する必要があります。
彼らはまた、技術的な囲い込みのリスクと、ウェブ開発のオープンな文化を永続させる上での#ViewSourceの持つ非技術的な価値を認識する必要があります。彼らは、技術的な意思決定においてこのアフォーダンスを優先事項とすることを考え始めるべきです。すべての優先事項と同様に、これはアプリケーション開発中に他の技術的、さらには機能的な優先事項とのトレードオフを伴う可能性があります。
しかし、もし私たちが#ViewSourceを擁護しなければ、誰もそうしないでしょう。