本の虫

著者:江添亮
ブログ: http://cpplover.blogspot.jp/
メール: boostcpp@gmail.com
Twitter: https://twitter.com/EzoeRyou
GitHub: https://github.com/EzoeRyou

アマゾンの江添のほしい物リストを著者に送るとブログ記事のネタになる

筆者にブログのネタになる品物を直接送りたい場合の宛先:
郵便番号:165-0027
住所:東京都中野区野方5-30-13 ヴィラアテネ401
宛名:江添亮

JavaScriptの誕生と終焉

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