JSONを「発明」した男は「俺は発見しただけだ」と言った

台本

オープニング

【ジングル】 はい,どうもこんにちは.「雨宿りとWEBの小噺」始まりました.Keethこと桑原です.

この番組では,Webテクノロジーの歴史や裏側にある,ちょっとした小噺をご紹介しております.

今回のお題は「JSONを『発明』した男は『俺は発見しただけだ』と言った」です.

本題

JSONって,僕の中ではもう空気みたいな存在です.APIのレスポンスも,設定ファイルも,とにかくJSON.僕も今の仕事で,仕様書やAPI設計の話でJSONを見ない日はほぼないです.でも,これ誰が作ったか,考えたことあります?僕はなかったです.正直,JSONって「誰かが作った」というより「最初からそこにあったもの」みたいな感覚がありました.改めて考えると変な話で,空気とか水って「誰が発明したか」なんて普通考えないですよね.でもJSONには,ちゃんと名前のある発明者がいるんです.

で,その本人がですね,自分の作ったものについて,ちょっと信じられないことを言ってるんですよ.それが何かは,あとで本人の言葉そのままで紹介します.先に言っちゃうともったいないので,今日はそこに向かって話していきますね.ということで,今日のテーマは「JSONを『発明』した男は『俺は発見しただけだ』と言った」です.

作った人の名前はダグラス・クロックフォードといいます.Douglas Crockford.この方の経歴が,まずJSONのイメージと全然違うんですよ.

1975年,サンフランシスコ州立大学を卒業しているんですけど,専攻は「ラジオ・テレビ学」です.コンピュータサイエンスじゃないんですよ.大学の授業でたまたまFORTRANに触れて,学内の計算機室に通いつめるうちにプログラミングにハマっていった,という経歴です.PHPのラスマスさんもそうでしたけど,今日紹介する人もまた,畑違いから来た人なんですよね.なんかこの番組,そういう人ばっかり紹介してる気がしますけど(笑).

最初のキャリアは,なんとゲーム開発です.Atariの8ビット機を自分で買って,趣味で作ったゲームを,当時あったユーザー投稿のプログラム集に送ったんですね.そうしたらそれがAtariの社員の目に留まって,1982年,そのままAtariにスカウトされます.投稿したら会社に拾われた,という棚ぼたみたいな採用のされ方です.JSONを生み出す人が,最初はゲームクリエイターだった,というのがもう意外ですよね.

次のキャリアがさらにすごくて,1984年,あのルーカスフィルムにテクノロジーディレクターとして入社しています.スター・ウォーズのルーカスフィルム,特殊効果チームがいる,あのルーカスフィルムですよ.そこで「Habitat」というプロジェクトに携わっていました.このHabitat,大勢が同時に入って遊ぶオンラインゲーム,その元祖みたいなもので,世界初規模のグラフィカルなオンライン仮想空間と言われています.後のSecond Lifeにもつながっていく話です.

しかもこのHabitat,僕らが今何気なく使っている「アバター」という言葉,あれの発祥でもあるんですよ.一緒にHabitatを作っていたチップ・モーニングスターさんが,ゲーム内でのユーザーの分身を表す言葉として「アバター」を初めて使ったと言われていて,当時はまだ電話回線でモデム経由でつなぐような時代だったので,「電話線の先から仮想世界に降臨する化身」みたいなニュアンスで名付けたらしいです.今やSNSのプロフィール画像からVRChatまで,あらゆるところで使われている言葉のルーツが,クロックフォードさんが在籍していたこのプロジェクトにあった,というのもすごい話ですよね.この経験が,後々の「人と人がどうつながるか」という設計の問題意識につながっていったようです.

その後,Habitatで一緒だったチップ・モーニングスターさんたちと,1993年にElectric Communitiesという会社を立ち上げます.やろうとしていたのは,世界中の人が同時に入れる3Dの仮想世界です.しかもこのプロジェクトからは「E言語」という独自のプログラミング言語まで生まれています.この名前,あとでもう一度出てくるので,頭の片隅に置いておいてください.調達したVC資金はなんと4000万ドルです.

ただ,これがうまくいかないんですよ.アルファ版のテストでは評判が良かったんですけど,動かすのに当時のハイエンドマシンが必要で,一般の人が使えるレベルのコンピュータではまともに動かなかった.技術としては先進的すぎて,時代のハードウェアが追いついていなかった,ということです.結局1998年にプロジェクトは凍結されます.4000万ドル集めて,Second Lifeの先駆けになるような技術を作って,それでも早すぎた.

そして2001年,ある意味人類の歴史が動いた瞬間が来ます.クロックフォードさんは「State Software」という会社を立ち上げて,CTOに就任していました.ページを切り替えずに,1枚の画面の中身だけが書き換わるサイト,今でいうシングルページアプリケーションですね,ああいうものを作ろうとしていた会社です.ちなみにこの会社,社名は最初「Veil」,ヴェールという仮称だったらしいです.理由は「後でアンベールする,つまり正式公開するから」という,シャレの効いた名前です.

2001年4月,クロックフォードさんとチップ・モーニングスターさんが,ガレージでJSONメッセージをやり取りします.そのメッセージは,HTMLドキュメントに埋め込まれた,セッションオブジェクト宛てのシンプルなテストデータだったそうです.本人いわく,実は2000年の時点で同じことをやっていた開発者が他にもいたそうなんですが,ここが「JSON」という名前の始まりでした.ガレージでJSONの歴史が始まった,というのがなんか良いですよね.AppleもAmazonもガレージ発祥という話がありますけど,JSONもガレージ発祥だったわけです.

で,ここからが今日一番話したかったところです.クロックフォードさんはJSONについて,こう言っています.

「私はJSONを発明したとは主張しない.発見しただけだと主張する.それはもともと自然界に存在していた」

これ,すごい言い方じゃないですか.発明ではなく,発見.まるで新種の生物を見つけた学者みたいな言い方です.

どういうことか,順に説明しますね.JavaScriptには昔から「オブジェクトリテラル」という書き方があります.波かっこを開いて,名前と値をコロンでつないで,カンマで並べていく,あの書き方です.JSONを見たことがある人なら,たぶん今,頭に浮かんだ形そのものだと思います.そうなんです.あれはもともとJSONの文法じゃなくて,JavaScriptの文法なんですよ.

しかも,それをデータのやり取りに使うというアイデア自体,クロックフォードさんが最初じゃありません.1996年,Netscapeのスラヴァ・ガルペリンさんという方が,すでに同じことをやっていた記録があるらしいんです.クロックフォードさんがガレージでJSONを送ったのが2001年ですから,5年も早い.

じゃあガルペリンさんがJSONの発明者なのかというと,そうはならなかった.違いは何かというと,名前をつけたかどうか,仕様として書き出したかどうか,そして「これは便利ですよ」と世界に向かって言い続けたかどうかです.クロックフォードさんがやったことは,ゼロから何かを作ることじゃなくて,すでにJavaScriptの中に隠れていたものを見つけて,名前をつけて,整理して,世に出すことでした.本人も別のところで「私はそれを識別して,名前をつけて,どう役立つかを示しただけだ」と仰っています.

これ,PHPのラスマスさんの「作ろうとしたことは一度もない」という話と,構造がすごく似てると思いませんか.どっちも「壮大な発明」じゃなくて,「すでにあったものに気づいて,形にした」という話です.ただ,ちょっと違う部分もあって,ラスマスさんは完全に偶然の産物として語っていたのに対して,クロックフォードさんは「発見して,名前をつけて,仕様化した」という自分の役割に,わりと自覚的なんですよね.謙遜しているようで,実は「見つけて,整理して,広める」という仕事の価値を,静かに主張している気もします.偉大な仕事の始まり方って,案外こういうパターンが多いのかもしれません.

JSONの設計哲学もまた面白くて,とにかく「小さくする」ことに執念を持っていたそうです.設計原則は3つだけ.最小限であること,テキストベースであること,JavaScriptのサブセット,つまりJavaScriptの一部分だけを切り出した形であること.機能追加の要望は基本的に全部拒否していたらしくて,これはフィーチャークリープ,つまり機能がどんどん肥大化していくことへの強い嫌悪感が根底にあったからだそうです.クロックフォードさん,こんな言い方をしてるんですよ.「XMLはすごいものを作ろうとしすぎた.JSONはそうじゃない」.このシンプルさへの信念,僕は結構好きです.

JSONにコメントが書けないの,地味にみんな一度は不便に思ったことあると思うんですけど,これも実は意図的にやっていることなんですよ.ちなみにパースというのは,プログラムがデータを読み解く処理のことですね.クロックフォードさんはこう説明しています.「JSONからコメントを取り除いたのは,人々がコメントをパース時の指示,つまり実行時の裏コマンドみたいなものとして使い始めているのを見たからだ.それは相互運用性を破壊してしまう」.相互運用性,どこで誰が読んでも同じ意味になる,という性質ですね.そして続けて「コメントがないことで悲しむ人がいるのは知っている,でも悲しむべきではない」とまで言っています.便利さより,どんな環境でも同じように解釈できることを優先した,という一貫した美学がここにも出ていますよね.みんなに多少嫌われても,設計判断は曲げない,というスタンスです.

json.orgというドメインを取得したのが2002年.2006年にはRFC 4627として正式に標準化されています.インターネットの仕様を決めている国際的な団体があって,そこが出す正式な仕様書をRFCと言うんですけど,その4627番として登録された,ということですね.しかも委員会も組織も通さず,個人でドメインを取って仕様を公開するという,かなり異例のやり方で普及していったんです.RFC 4627は,数あるRFCの中でも特に短くてシンプルなことで有名で,実際に読める長さで書かれています.

あと,json.orgのサイト自体もクロックフォードさんらしいところがあって,今もほぼ1ページだけの,びっくりするほど素っ気ない作りなんですよ.そもそもJSONの仕様にはバージョン番号がありません.最初から一度も変わっていないので,つける必要がないんです.20年以上,直すところが1つもなかった仕様って,なかなか無いですよね.デザインも中身もほとんど変わっていない,というのがまたJSONらしいというか,クロックフォードさんらしいというか.

仕様が変わらないぶん,まわりに子孫が増えていきました.設定ファイルでよく見るYAMLとか,ログでよく使うJSON Lines,認証でおなじみのJWT,JSON Web Tokenとか,みんなJSONの発想がベースになっています.クロックフォードさんが2001年にガレージで見つけた小さなテキストフォーマットが,形を変えながらいろんなところに広がっていったわけです.

JSONが普及していく背景には,2000年代半ばの「JSON対XML」という構図もありました.当時,企業システムやAPIの世界では,XMLが完全に主流だったんです.エンタープライズのシステム連携も,銀行のインターフェースも,とにかくXML一択という時代でした.

流れが変わるきっかけが,2004年のGmail,2005年のGoogle Mapsです.どちらもブラウザ上で非同期にサーバーと通信して画面を書き換える,今でいうAJAXという技術を使った先駆けでした.2005年,ジェシー・ジェームズ・ギャレットさんという方が「AJAX」という言葉を作るんですけど,AjaxのXはXMLのXです.でも面白いことに,この言葉を作った本人が「別にXMLじゃなくてJavaScript Object Notation,つまりJSONを使ってもいい」と,最初から言っていたらしいんですよね.

実際,その通りになっていきます.理由は単純で,ブラウザでXMLをパースするのは重くて面倒だったのに対して,JSONはJavaScriptのコードにそのまま近い形なので,ほぼ1行でパースできてしまう.軽くて速い方が勝つ,というシンプルな話です.2008年頃には,主要なWeb APIのほとんどがJSONに移行していたと言われています.クロックフォードさんが2001年にガレージで見つけたものが,わずか7年でXMLという当時の巨人を追い抜いたことになります.

あと,これ僕が個人的に一番好きなJSONのエピソードなんですけど,json.orgで公開されているJSONのライセンス,あの中に一文,こんな条項が入っているんです.「本ソフトウェアは,善のために使われるべきであり,悪のために使われてはならない」.The Software shall be used for Good, not Evil.2002年です.世の中が対テロ戦争の空気に包まれていて,でも自分はソフトウェアを書いているだけで,何もできない.そういう気持ちの中で「自分にも何かできることをしないと」と思って,ライセンスの条文に一行だけ入れた.そういう経緯だったらしいです.

もちろん法的にはほぼ意味を持たない一文なんですけど,これが後々ちょっとした騒動を呼びます.IBMが自社製品でJSON関連のコードを使おうとしたとき,法務部門が「顧客が絶対に悪用しないと言い切れない」と難色を示して,わざわざ別ライセンスを求めてきたことがあったらしいんですよ.それに対してクロックフォードさんが返した言葉が最高で,「IBMと,その顧客と,パートナーと,手下たちに,JSLintを悪のために使うことを許可します」と書いて,それで通ったそうです.なんかもうコントですよね.結果的にこのGood, not Evil条項,曖昧すぎるという理由で,ApacheやMITなど,いくつかの組織からは正式なオープンソースライセンスとして認められていない,というオチまでついています.

その後クロックフォードさんは,Yahoo!でJavaScriptアーキテクトとして働いて,コード品質ツール「JSLint」を開発しています.このJSLint,今でいうESLintの元祖みたいなコード品質チェッカーなんですけど,これがとにかく厳格で,設定でルールを細かくカスタマイズすることをほぼ許さないんですよ.今どきのツールって大体,好みに合わせて設定できますよね.でもJSLintは「これがベストプラクティスだ,従え」というスタンスで,かなり融通が利きません.

当然,開発者からは不満の声が上がります.「もっと柔軟にしてくれ」という批判に対して,クロックフォードさんが返した言葉がまた最高で,「お前の情けない泣き言が,俺の気分を台無しにしてる」というようなことを言い放った,と言われているんですよね.出典がはっきりしない話なので伝説の域かもしれませんが,いや,ユーザーに対してそこまで言うかという話ですよね(笑).結局この不満から,もっと柔軟に設定できるJSHintというツールが派生して作られて,これが今のESLintにもつながっていきます.批判に迎合しない偏屈さと,フィーチャークリープを嫌う美学が,ここでもちゃんと一致しているんですよね.

あと,クロックフォードさんはただ作るだけじゃなくて,広める活動もかなり熱心にやっていて,2007年頃からYahoo!の社内で「Crockford on JavaScript」という連続講義をやっています.これが録画されてネットに公開されたら,当時のJavaScript開発者のあいだでかなり話題になって,教科書代わりに見ていたエンジニアも多かったらしいです.2008年に出版した「JavaScript: The Good Parts」という本も,薄い本なのに業界のバイブル的な存在になりました.

で,ここが大事なところなんですけど,この本で「JavaScriptには良い部分がある」と言ったこと自体を,本人は後に「異端だった」と表現しているんですよ.当時のJavaScriptって,今ほど評価されていなくて,むしろ馬鹿にされる言語でした.その中で「良い部分もあるんだ」と言うこと自体が,勇気のいる主張だったわけです.

で,ここが今日一番の皮肉なんですけど,2022年,クロックフォードさんがこんなことを言い出すんですよ.「今日,JavaScriptに対してできる最善のことは,それを引退させることだ」.

いや,ちょっと待ってください.この人,JSONを世に出すことでJavaScriptの普及を大きく後押しした人ですよ.その本人が,「もうJavaScriptは引退させるべきだ」と言っているんです.インタビューによると,10年かけてJavaScriptの欠点を直そうとして,ES5,2009年に出たJavaScriptの改訂版ですね,そこで多少の成功はあったものの,それ以降は言語をきれいにするより肥大化させる方向に興味が向いてしまって,JavaScriptがむしろ進歩の足かせになっている,という趣旨のことを話しています.

じゃあ何に置き換えればいいのか,という話もしていて,これがまた面白いんですけど,「次の言語は,JavaScriptよりもE言語に近いものであるべきだ」と言っているんですよ.E言語.これ,さっき話した1990年代のElectric Communities,あの失敗したプロジェクトから生まれた言語です.必要な権限を,必要な相手に,必要な分だけ渡す.安全性を最初から設計に組み込んだ言語だそうです.20年以上前の自分たちのプロジェクトに立ち戻って,「あっちの設計思想の方が正しかった」と言っているわけです.失敗したはずのプロジェクトが,巡り巡って今のクロックフォードさんの思想の核に戻ってきている.これ,僕はこの話の中で一番好きなポイントかもしれません.

自分が育てるのを手伝った言語を,今度は自分の手で終わらせようとしている.これもまたJSONの「発明ではなく発見」という話と,ちょっと似た構造だなと思うんですよね.執着せずに,役目を終えたら終えたと認める潔さというか.普通,自分の代表作にここまで距離を置けないと思うんですけど,クロックフォードさんはそれをやってのけている.

ゲームを作りながらAtariに拾われて,ルーカスフィルムで仮想空間の設計に関わって,ガレージでJSONを発見して,個人で世界標準を作って,今度はその普及を助けた言語に引退を勧める.改めて振り返ると,ものすごい振れ幅のキャリアです.

最後にちょっとだけ思ったことを話すと,「発明する」ことと「見つけて名前をつけて広める」ことって,エンジニアの世界だと後者の価値が過小評価されがちだと思うんですよね.クロックフォードさんがやったことは,厳密には新しい技術を生み出したわけじゃなくて,すでに散らばっていたものを整理して,シンプルな形に削って,みんなが使える名前をつけたことです.でもその結果,世界中のあらゆるシステムがJSONでデータをやり取りするようになった.

これってマネジメントの仕事にもかなり近いものがあると思っていて,何もないところから発明することだけが価値じゃなくて,すでにチームの中にある良いやり方に気づいて,言語化して,みんなが使える形にして広める,というのも立派な仕事なんですよね.エンジニア出身のマネージャーって,つい「自分が何か新しいものを生み出さなきゃ」と思いがちだと思うんですけど,クロックフォードさんの話を聞いていると,見つけて,名前をつけて,広める,というだけでも十分すぎるほどの価値になるんだと,あらためて思わされます.

皆さんが今日書くコードの中にも,JSONは絶対に出てきてると思います.そのたびに,ガレージでテストデータを送った2001年の夜のことを,ちょっとだけ思い出してもらえたら嬉しいです.

📎 https://en.wikipedia.org/wiki/Douglas_Crockford 📎 https://www.crockford.com/about.html 📎 https://www.crockford.com/qa3.html 📎 https://nofluffjuststuff.com/blog/douglas_crockford/2008/01/the_discovery_of_json 📎 https://twobithistory.org/2017/09/21/the-rise-and-rise-of-json.html 📎 https://hackernoon.com/the-history-of-json-and-the-people-that-created-it 📎 https://devclass.com/2022/08/04/retire_javascript_says-json-creator-douglas-crockford/ 📎 https://evrone.com/blog/douglas-crockford-interview 📎 https://en.wikipedia.org/wiki/Habitat_(video_game) 📎 http://bokardo.com/archives/on-the-origins-of-avatar/ 📎 https://www.crockford.com/ec/ 📎 https://news.ycombinator.com/item?id=3693108(JSON License “Good, not Evil”) 📎 https://www.toptal.com/web/json-vs-xml-part-1 📎 https://en.wikipedia.org/wiki/JSHint 📎 https://yuiblog.com/blog/2009/12/22/crockford-on-javascript/

エンディング

【エンディングBGM】 さて,そろそろ今回もクロージングです. 今回は「JSONを『発明』した男は『俺は発見しただけだ』と言った」について話しました.

次回も,Webテクノロジーの小噺をお届けします.

この番組が気に入った方は,ぜひチャンネル登録をお願いします. また,あなたからの感想やリクエストもお待ちしております! 𝕏で #WEB小噺 をつけて投稿していただくか,概要欄のお便りフォームからお送りください.

それでは,また次回の雨宿りでお会いしましょう!「雨宿りとWEBの小噺」お相手は Keeth でした.さようなら! 【ジングル】

📣 配信メタ

タイトル

  1. JSONは発明ではなく「発見」だった

(別案:10. 「発明したんじゃない,見つけただけだ」 / 10. JSONを作った男の意外すぎる経歴)

概要欄

第10回は,JSON の生みの親であるダグラス・クロックフォードさんについてお話しました!実はこの方,「私は JSON を発明したとは主張しない.発見しただけだと主張する」と仰っています.ラジオ・テレビ学専攻からゲーム開発,ルーカスフィルムを経て,ガレージで JSON にたどり着くまでの振れ幅がとんでもないことになっていました.是非お聴きください💁

今回の内容

  • 大学の専攻は「ラジオ・テレビ学」.最初のキャリアは Atari のゲーム開発だった
  • ルーカスフィルムで世界初規模のオンライン仮想空間「Habitat」に参加.「アバター」という言葉もここから生まれた
  • 4000 万ドルを調達した会社が,時代のハードウェアに追いつかれないまま凍結した話
  • 2001 年,ガレージで JSON が生まれた.本人いわく「発明したのではない,発見しただけだ」
  • ライセンスに書かれた一文「善のために使われるべきであり,悪のために使われてはならない」と,IBM とのやり取り
  • JSON を世に出した本人が,2022 年に「JavaScript は引退させるべきだ」と言い出した理由

参考リンク

ではでは(=゚ω゚)ノ


📣宣伝📣


📧 コンタクト

X 投稿

告知ポスト

/
📣「雨宿りとWEBの小噺」Season 5-10 更新!
  JSONは発明ではなく「発見」だった
\

いまや当たり前のデータ形式 JSON,その生みの親は「発明したとは主張しない.発見しただけだと主張する」と仰っています.しかも大学での専攻は,ラジオ・テレビ学でした❗️

↓リンクから是非お聴きください💁

#web小噺 #webこばなし

リプライポスト

お好きなプラットフォームをお選びください❗️

🟢 Spotify
{Spotify の短縮 URL}

🔴 YouTube
{YouTube の短縮 URL}

🟣 Apple Podcasts
{Apple Podcasts の短縮 URL}

⚪️ LISTEN
{LISTEN の短縮 URL}

📚 参考情報

2026-08-10 ファクトチェック済み(検証 5 件).

未検証(時間の都合で裏取りせず):Habitat の「世界初」規模,「アバター」の語源,json.org 取得 2002 年/RFC 4627 の 2006 年標準化,仕様にバージョン番号がない件,Ajax 命名と「JSON でもいい」発言,2008 年頃の API 移行状況,Good, not Evil 条項の非 OSS 扱い.

results matching ""

    No results matching ""