世界を動かす技術を、日本語で。

JavaScriptの誕生と死 (2014)

概要

  • Gary Bernhardt による PyCon 2014 でのトーク紹介
  • JavaScript とプログラミング全体の進化を 1995年から2035年 まで追う内容
  • ユーモア と真面目さを織り交ぜたプレゼンテーション
  • JavaScriptの 欠点と利点 を率直に解説
  • 関連する他のリソースや インタラクティブな学習教材 の紹介

Gary BernhardtのPyCon 2014トーク概要

  • Gary BernhardtPyCon 2014 で披露したトーク
  • SF的要素コメディ、そして 完全な真面目さ を融合したプレゼンテーション
  • JavaScript の歴史とプログラミング業界の変遷を 1995年から2035年 まで辿る構成
  • JavaScriptに対して 中立的な立場 を維持しつつ、その 欠点業界への多大な影響 を正直に議論
  • 結論として、JavaScriptが業界にもたらした 最終的なポジティブなインパクト を強調

関連リソース紹介

  • Gary Bernhardtの より真面目なプログラミング論 は、 Destroy All Software のスクリ―ンキャストで視聴可能
  • Execute Program では、 TypeScriptModern JavaScriptSQL正規表現 などの インタラクティブコース を提供
    • 各コースには、 ブラウザ上で動作する数百のインタラクティブなコード例 を収録
    • 実践的な学習体験を重視した教材構成

Hackerたちの意見

バーンハルトの2035年タイムラインの半分は過ぎたけど、JavaScriptはまだ死んでない。でも、WebAssemblyで自分の弔辞を書いてるのは明らかだね。

いろんなクライアントのサイトを毎月レビューしてるけど、どれも何らかのJavaScriptを使ってる。PHPみたいに、絶対に死なないよ。

あなたの家族の何世代も、最後のJS命令が実行される前に長いこと死んでるだろうね。もし世界的な熱核戦争が起きない限り。俺はJSがほとんどの人間よりも生き残ると思うけど。

彼が2020年から2025年の間に世界的な大災害を予言したのは面白いけど、タイプを間違えたね。これぞまさにJavaScriptって感じ。

彼はNaN%正しいところまでかなり近かったね。

数年ごとに、もっと良いJavaScriptを作り出すんだよね。それをJavaScriptにトランスパイルするけど。

大衆の受け入れは、良いデザインよりも常に勝る。

結局、全てアセンブリコードなんだよね。JavaScriptにコンパイルすること自体には何も問題ないし、高級言語でも直接JavaScriptができないことを実装できることがある。使ったことのある言語の保証は、アセンブラで破られることがあるからね。

JSはコンパイル対象になった(実際にそうなったし)、あの頃の動画ではasm.jsだったけど(もう廃止されたよね?)、その後WebAssemblyが登場して… 実際に実装されてネイティブで動いてるのを見ると、彼の予言は的中したようだ。自分は主にTypeScriptを使ってるけど、Electronのおかげでウェブ技術がデスクトップアプリに組み込まれて、ウェブの文法がコンピュータプログラムにも入ってきた。Electronは重いとかあまり良くないって言われるけど、Mac、Windows、Linuxを一度にサポートする最速の方法でもある。こういう洞察は時々驚きだね。ここで話されている「死」というのは、JavaScriptが基盤になる状態、つまり直接使わないけど、どこにでもある状態を意味してる。それが本当に実現したんだ。

JavaScriptは新しいアセンブラ層って言えるね。すべてのコンパイラは、人間が読めるコードを機械語に変換するから。JavaScriptの利点は、GoogleがV8で限界までプッシュして、NodeJSがバックエンドの夢を実現したことで、どこにでもあって、一度書けばどこでも使えること。まるでPDFみたいだね。その多様性が、今でもWebAssemblyよりも優位に立っている理由だと思う。今やJavaScript自体はTypeScriptと同義だよね。これは本当に大きな飛躍だった。Angular(2)はここでの無名のヒーローだった。Angularは、最初からTypeScriptを採用して、同時に使えるJavaScriptバージョンも提供してたけど(正直言ってほとんど使えなかったけどね)、厳しく批判されたんだ。面白いのは、TSをデフォルトオプションにしていない最後の砦がReactだってこと。次第にNextJSのような主要なプロジェクトがTSに依存するようになってきてる。ReactJSも落ちるだろうね。他のプロジェクトからの革新があったのはこれが初めてじゃないし。またAngularが革新をリードして、ReactJSはフォロワーになってる。JavaScriptとPythonは、間違いが少ないと思うよ。

でも、Mac、Windows、Linuxを一度にサポートする最速の方法でもある。Flutterもあるし、デスクトップOSに加えてiOSやAndroidもサポートしてるよ。開発時間もかなり早いと思う。ただ、Electronやネイティブアプリと比べたときのパフォーマンスはどうなのかは分からないけどね。小さなチームとしては、「実際に物を出す」ための最適化が、スピードの最適化よりもずっと良いと思う。

asm.js(もう廃止されたんだっけ?) https://spidermonkey.dev/blog/2026/05/20/saying-goodbye-to-a... 確か、v8は最初から特別なコンパイルパスを持ってなかったよね。

Hacker Newsで議論の続きを見る