
HTMLはクソダサい。でも、たぶん僕が間違っていた。
― ティム・バーナーズ・リーの言葉
今言っても、たぶん信じてもらえない。
だからといって、「惜しかったですね」と哀れんでもらいたいわけでもないし、「こくちゃん、先見の明があったんですね!」と称賛してもらいたいわけでもない。
ましてや、
「実はWWWを発明する可能性もあった男」
みたいな肩書きをプロフィール欄につける気もない。
そんなものをつけ始めたら、いよいよ危ない人である。
でも、正直に言う。
1987年ごろ、サー・ティム・バーナーズ=リーが1989年にWorld Wide Webを発明する少し前、僕もハイパーテキストを記述するための言語を考えていた。
しかも、その記法は、今でいうMarkdownにかなり近かった。
見出しなら # をつける。
リンクなら [] のような簡単な記号を使う。
文章そのものは、できるだけ文章として読めるようにする。
そんな感じだった。
である。
ここまで読むと、
「おお、こくちゃん、WWWを先に……!」
と思うかもしれない。
思わなくていい。
このあと、話は急速にしょぼくなる。
HTMLを見た僕の第一声
僕が自分の言語をちゃんと実装するより先に、WWWとHTMLが世の中に出てきた。
そして普及し始めた。
それを見た僕の感想は、だいたいこうだった。
HTML、クソダサいな。
今なら世界中から石が飛んできそうだが、当時、本当にそう思った。
まず、
< と >
である。
僕にとってこれは、不等号だった。
3 < 5
とか、
10 > 7
とか。
学校でそう習った。
少なくとも日本のコンピュータ初心者に、
「これはカッコです」
と言ったら、
「いや先生、それ不等号ですよね」
となる。
ごもっともである。
日本語でカッコと言われれば、だいたい
大カッコ []
中カッコ {}
小カッコ ()
あたりまでは、なんとなく納得できる。
ところが急に、
<>
が出てくる。
待て待て。
お前はどこから来た。
今でもプログラミングを教えるとき、僕は学生に、
[ ] は、ホッチキスの針を落としたみたいなやつ。
{ } は、にょろんとしたカッコ。
( ) は、普通の丸カッコ。
などと言っている。
正式名称を教えろ、という話ではある。
だが、初学者にとって大事なのは、まず区別できることだ。
そこへC++がやってくる。
vector<int>
また出た。
<>。
テンプレートである。
僕は仕方なく、
「これは今までと違う特別なカッコで、不等号の記号をカッコとして使い回してます」
みたいな、なんとも情けない説明をする。
三角カッコ。
カニさんのハサミみたいだから、カニさんカッコ。
もう好きに呼んでくれ。
文句がある人は、C++を設計したビャーネ・ストロヴストルップさんに言ってほしい。
そもそも名前からして、僕はいまだに一発で美しく発音できる自信がない。
ちなみにテンプレート自体も1980年代後半にストロヴストルップが設計を進めた機能なので、この件については、かなりちゃんと彼のところへ苦情を持っていってよさそうである。
ただし、ご本人の前で「カニさんカッコ」と言う勇気は僕にはない。
HTMLは本文よりタグのほうが目立つ
話をHTMLに戻す。
HTMLを初めて見ると、文章の中に、
<p>
<strong>
<a href="...">
<div>
<span>
みたいなのが、これでもかというくらい出てくる。
そして、
<keyword>
で始まったものを、
</keyword>
で閉じる。
ものすごくわかりやすい。
そして、ものすごくダサい。
これは両立する。
しかも世の中には、閉じ方が少し違うものや、歴史的事情を背負った例外もある。
たぶん、ITやWeb専攻の学生で、HTMLを習います、となったら、かなり
このカニさんカッコに悩むと思うんだよ。
人類はたぶん何十年にもわたって、このへんを散々いじってきたので、2026年になって僕まで石を投げる必要はないだろう。
もう許してやろう。
何様だ。
そして結局、人間が直接文章を書く用途では、Markdownのような簡易記法が広く使われるようになった。
ほら。
# で見出し。
[] でリンク。
僕が考えていた方向に近いじゃないか。
……と言いたくなる。
言いたくなるのだが、ここで僕は長いこと、一つの重大な勘違いをしていた。
ティムさん、物理畑の人だから言語センスないのでは?
ティム・バーナーズ=リーは、オックスフォード大学で物理学を学んだ。
その後CERNで働いた。
この経歴を見て、若いころの僕は勝手に思っていた。
「ああ。物理畑の人だから、プログラミング言語の美しさとか、あんまり気にしなかったのかな」
かなり失礼である。
なお正確には、彼は物理学を専攻しているものの、その後は通信やソフトウェア開発の仕事をしており、本人も後年、「自分を物理学者とは呼べない」という趣旨のことを語っている。CERNでもソフトウェア技術者として仕事をしていた。
なので「物理学者ティム」という言い方は少し乱暴だ。
ただし僕の中には、物理を専攻する人への妙な偏見がある。
なぜなら、うちの二番目の兄が物理専攻だからである。
この兄がどのくらい奇人なのかは、そのうち別に一本書ける。
一例だけ挙げる。
紅茶に角砂糖を入れる。
普通の人なら飲む。
兄は違う。
角砂糖が溶けていく様子をじっと見る。
そして突然、数式を書き始める。
何をしている。
紅茶を飲め。
そんな家庭環境で育ったので、
「物理を専攻しています」
と聞くと、僕は反射的に、
「あ、この人、何かあるな」
と思ってしまう。

完全な風評被害である。
CERNに至っては、巨大な粒子加速器まである。
量子そのものを「量子加速器」で飛ばしている、というより、陽子などの粒子をものすごいエネルギーまで加速して衝突させ、物質の根源に迫る施設だ。
価値はわかる。
ものすごく価値がある。
人類はそういうことをやるべきだとも思う。
だが一般人からすると、巨大加速器を見たとき最初に出てくる感想は、
「これ、何の役に立つん?」
そして、
「クソでかいな」
さらに予算を聞いて、
「クソ高いな」
だと思う。
僕みたいに、役に立つかどうかわからない知識にもフラフラ寄っていって、最終的にクソゴミ知識として脳内に保存する人間ならともかく、普通はそうなる。
だから僕は長いこと、
ティムさんも、うちの兄と同じ系統の変人に違いない。
しかもHTMLを見る限り、言語センスはない。
などと勝手に思っていた。
大変申し訳ございませんでした。
僕が触っていたのは象のしっぽだった
ティム・バーナーズ=リーを、
「HTMLを考えた人」
とだけ理解してはいけない。
それは象のしっぽを触って、
「なるほど。象とは細長くて毛の生えた生物なのだな」
と言うようなものだ。
仮にもティムさんは「Sir」という称号がついている人である。
こくちゃんには「変態」という称号がついている。
もちろんSirがつけば象全体が見えるという意味ではない。
彼が作ったのはHTMLだけではない。
URI。
HTTP。
HTML。
そして最初のWebブラウザ兼エディタ。
最初のWebサーバー。
Webという仕組みそのものの大枠を設計した。
僕らがネット通販をするとき。
ブラウザゲームをするとき。
Googleで検索するとき。
ChatGPTを使うとき。
そして、このnoteを開いているとき。
その遥か下のほうでは、HTTPという考え方の子孫たちが、今もせっせと働いている。
僕は1987年ごろ、
「自分の知識をどうリンクして整理しようかな」
と考えていた。
ティムさんは、
「人類の情報空間をどうリンクしようか」
と考えていた。
似ている。
単位が違う。
僕が近所の用水路の設計を考えている横で、向こうは大陸間運河の話をしていたようなものである。
「水を流す」という点では一緒だ。
だから何だ。
僕の設計がMarkdownっぽかった理由
僕が考えていたハイパーテキスト記法は、シンプルだった。
というより、シンプルにせざるを得なかった。
当時のパソコンは非力だった。
僕自身も、ものすごい経験豊富なソフトウェアエンジニアだったわけではない。
だから字句解析だの構文解析だのに、あまり計算資源も自分の脳みそも使いたくなかった。
だったら、
#
とか、
[ ]
とかでいいじゃん。
そう考えた。
人間にも読みやすい。
解析も比較的簡単。
合理的だと思った。
ところが、ティムさんが見ていたものは違った。
彼は後にこう書いている。
“The dream behind the Web is of a common information space in which we communicate by sharing information.”
「Webの背後にあった夢は、情報を共有することで私たちがコミュニケーションできる、共通の情報空間をつくることだった。」
ここで僕は、かなり負けている。
いや、勝負していたわけではない。
勝手に僕が同じリングに上がった気になっていただけなのだが。
僕が考えていたのは、
僕の情報をどう整理するか。
彼が考えていたのは、
みんなの情報をどうつなぐか。
CERNという巨大な研究組織では、人が入れ替わり、コンピュータも違い、情報システムも違う。そのバラバラな知識を結びつけたいという問題意識が、Webにつながっていった。彼自身が後に説明したWebの「夢」も、その中心にあるのは共通の情報空間だった。
そして2012年、ロンドン五輪の開会式で彼が発した言葉が、これだ。
“This is for everyone.”
「これは、すべての人のためのものだ。」
強い。
対象の大きさがおかしい。
everyone である。
僕が作ろうとしていたものは、
“This is for Kokuchan.”
だった。
対象利用者、一名。
しかも本人。
要件定義がものすごく楽である。
仕様変更を要求してくる顧客も僕。
実装するのも僕。
文句を言うのも僕。
開発会議は脳内で終わる。
一方ティムさんは、
everyone。
全人類。
やばい。
物理を学んだ人間、スケールがおかしい。
『三体』の暗黒森林に出てくる主人公くらい、発想の射程がおかしい。
『三体』を読んでいない人には何も伝わらない。
じゃあ『鬼滅の刃』の炭治郎くらいやばい、と言おうかと思ったが、僕は『鬼滅の刃』を蜘蛛みたいな鬼が出てきたあたりまでしか見ていない。
例えを出す資格がなかった。
とにかく、やばい。
そして “This is for everyone.” は単なるキャッチコピーではない。彼はWebを「universal」「royalty-free」「open」「decentralised」なものとして語り続けている。
そしてAI時代になって、HTMLを少し許した
さて。
ここまで散々、
HTMLはダサい。
<> がうるさい。
本文が見えない。
と言ってきた。
ところが最近、僕は少し考えが変わった。
AI時代になって、
別にHTMLでいいじゃん。
と思うようになったのである。
なぜなら、
自分で全部書かなくていいからだ。
身も蓋もない。
昔の僕は、人間が直接書くことを前提に言語を見ていた。
だから、
短い。
見やすい。
入力しやすい。
解析しやすい。
そういうものを美しいと思った。
今も、その価値はある。
Markdownが読み書きしやすいのは間違いない。
でもAIがコードを書くようになると、別の価値が見えてくる。
冗長であることは、必ずしも悪ではない。
<strong>
ここは重要
</strong>
確かに長い。
だが、
「ここから強調が始まって、ここで終わる」
という情報が、はっきり書かれている。
開始と終了が対応する。
多少くどい。
でも明示的だ。
人間にとっての「めんどくさい」は、機械にとって必ずしも欠点ではない。
逆に、記号をギリギリまで削った言語は、人間が書くには快適でも、一文字違っただけで意味が大きく変わることがある。
AIに大量のコードを書かせ、別のAIに読ませ、人間が要所だけ確認する。
そんな時代には、
ちょっと冗長だけど意味が露骨に書いてある
という設計は、案外強い。
ティムさんたちはSemantic Webについて語る中で、こんな表現もしている。
“Like good government, it must require only that which is essential for everything to work.”
「よい政府と同じように、それは全体が機能するために不可欠なことだけを要求すべきだ。」
いいことを言う。
政府に例えた瞬間、急に話が怖くなるけれど。
政府に対しても、枝葉末節ではなくて、大枠で文句を言わないと、ね。
そして、
“The essential property of the World Wide Web is its universality.”
「World Wide Webの本質的な性質は、その普遍性にある。」
とも述べている。
僕はHTMLを見て、
「このカッコ、ダサくね?」
と言っていた。
ティムさんは、
「これが世界中でつながるためには、何が必要だろう?」
と考えていた。
見る場所が違った。
僕は文法を見ていた。
彼は生態系を見ていた。
僕は一行を見ていた。
彼はネットワークを見ていた。
僕は、
<p>
が気に入らなかった。
彼は、
誰でも参加できる情報空間
を作ろうとしていた。
いやあ。
これは、負ける。
だから勝負してないんだって。
普遍的なものは、支配できない
そして僕が、今いちばん重く感じるのは、この言葉だ。
“You can't propose that something be a universal space and at the same time keep control of it.”
「何かを普遍的な空間にしようと言いながら、同時にそれを自分の支配下に置いておくことはできない。」
Webをオープンにした理由について、バーナーズ=リーが語った言葉である。彼自身、もしWebがプロプライエタリで自分の完全な支配下にあったなら、おそらくここまで普及しなかっただろうと述べている。
これは、ものすごく難しい話だと思う。
情報産業では、情報を共有することで価値が生まれる。
知識を公開する。
APIを公開する。
ソースコードを公開する。
論文を共有する。
データをつなぐ。
人と人がつながる。
開けば開くほど、新しいものが生まれる。
一方で、企業も個人も、自分の利益を守りたい。
データを囲いたい。
顧客を囲いたい。
技術を囲いたい。
プラットフォームから出ていってほしくない。
できれば課金もしてほしい。
ものすごくしてほしい。
この矛盾は、おそらくなくならない。
「みんなに使ってほしい」
と、
「でも俺のものだから俺の言うことを聞いてほしい」
は、非常に相性が悪い。
Webは、その矛盾の上で今も揺れている。
AIも、たぶん同じところへ行く。
知識を共有することで強くなる。
でも知識には権利がある。
モデルを開けば革新が進む。
でも企業には競争がある。
データを広く使えば便利になる。
でも個人にはプライバシーがある。
僕らはこれからも、
共有したい。
でも支配したい。
という二つの欲望を抱えたまま、情報社会を進んでいくのだと思う。
1987年ごろの僕は、ハイパーテキスト言語の記号を考えていた。
# がいい。
[] がいい。
<> はダサい。
そんなことを考えていた。
それから約40年たって、ようやく気づいた。
HTMLのカッコが美しいかどうかなんて、たぶん、本質ではなかったのだ。
Webの偉大さは、タグの形にはなかった。
「これは、すべての人のためのものだ」
と本気で言えるところまで、設計の視野を広げたことにあった。
それでも僕は今なお、
<>
を見ると、
ちょっとだけ、
ダサいな、
と思う。
まあ、そのくらいは許してほしい。
