The Birth & Death of JavaScript — Destroy All Software Talks
あの、Watのスピーカーとして有名なGary Bernhardtが、JavaScriptの誕生と終焉についてスピーチしている。
このスピーチは、2040年に行われているという設定である。JavaScriptが10日でやっつけ設計されたというところから始まり、JavaScriptが開発された地は、すでに放射能汚染されているという、2040年からみた歴史的事実を交えつつ、話は続く。
JavaScriptはあまりにも一般化してしまったため、皆JavaScriptで書くようになった。ただし、JavaScriptは遅いので、JavaScriptをネイティブコードにコンパイルしやすいようにする制限的な記法が流行した(整数型でいいところには、0をビット列論理和することにより、整数型であることのアノテーションとするなど)。
そして、他の言語からJavaScriptを生成することが流行した。もはや、C言語からすらJavaScriptを生成できる。
次第に、JavaScriptは移植性の高い共通のアセンブリの地位を確立させていく。
そして、核戦争が起きた。オーストラリアの辺境にでも住んでいる変人でもなければ、10年ほどプログラミングなど出来ない状況に陥る。
そして、ようやくプログラミング可能なほど状況が落ち着いたとき、人々はプログラミングできない間でも、潜在意識の中で、思案を続けていた。
そもそも、CコードがJavaScriptにコンパイルできるのである。OSはなんで書かれているか? Cである。OSをJavaScriptにコンパイルすればいいではないか。
OSは、ハードウェアの特権モードの支援を受けて、ユーザースペースのプロセスを、お互いに干渉できないような隔離を保証する。この特権モードの切り替えは、非常に高くつく。しかし、Webブラウザーはタブでソフトウェア的に隔離を実装しているではないか。
なんと2040年では、JavaScriptは、極めて移植性の高い共通のアセンブリ言語として君臨している。もう移植性のない点でバラバラのハードウェアについて考える必要はないのだ。JavaScriptで動作する分、2割ほど遅くなるが、ハードウェアの特権モードを多用しない分、2割ほど速くなる。掛け算がどのように働くかということをかんがえれば、0.8 * 1.2 = 0.96であり、ネイティブで実行するよりも多少遅くはなるのだが、これは許容範囲である。
そして、JavaScriptは死んだ。JavaScriptは使われているが、もはや誰もJavaScriptを直接書くことはない。
そういった内容の、架空のジョークスピーチだ。とても面白い。
ドワンゴ広告
この記事はJavaScriptと関係があるので、ドワンゴ勤務中に書いた。超チューニング祭に役立つ記事ではなさそうだ。
ドワンゴは本物のC++プログラマーを募集しています。
CC BY-ND 4.0: Creative Commons — Attribution-NoDerivatives 4.0 International — CC BY-ND 4.0
いいですね。
ReplyDelete同じことをLispで思ったことありますよ。
LLVMの流行によってすべての言語は原初のLispへ返っていく的な。
まぁ、JSもLisp一族だという話もありますし、あながち自分も外してないんでしょうか。
なんででも書けるんだったら得意な言語で書きますよね。
しかし、JSがニーモニックになってしまうとは、相当ファンクショナリーですね。
JSマシーンなんかもでてるんでしょうか。
あぁそうだ。
ReplyDelete自分はJSに初期化時に型を明示する機能が入って欲しいです。ちょうどアクションスクリプトのような。
ああいうのがあればC#ライクなプログラミングが可能だと思います。
でも、一回流れたんでしたっけ?