というわけで、**「2035年あたりに互換の切られた後継言語に移り、2050年あたりにJavaScriptは廃止される」**と妄想しているので、ロードマップや後継言語の仕様を適当に予言🧙♂️していきます。
この手の大きな話題を語るには知識不足すぎるので、仕様策定とかブラウザベンダー間の政治に詳しい有識者の人の突っ込みはもちろんのこと、そうでない人も気軽にコメントしてくださると嬉しいです。
何故滅亡すると思うのか
最初のきっかけはJavaScriptのクラスのprivateプロパティの宣言方法が**「#」**になったことですね。理由については素晴らしい解説記事を見て納得していたんです。ただ、一方で「いやいや、今後拡張していくにあたってデコレータまみれは厳しいでしょう。過去の構文が弊害になってくるとなると、そろそろJSも一度リセットすべき段階かもしれないな……」とも感じました。
プログラミング言語は基本的に後方互換性を大事にしていますが、JavaScriptは輪をかけて大事にしています。よって、このまま年を重ねて機能が増大していくのと連動して、肥大化しすぎと感じる人々の増加と改革の動きが起きるのは必然でしょう。あとはタイミングの問題で、自分のはInternetExplorerの終了から動きが始まると推測しています。
ロードマップ
年 | 出来事 |
---|---|
~2025年 | IE11全廃後を見据えて、後方互換性を切る大胆な改革を模索する動きが水面下で始まる |
2025年~2030年 | 主要ブラウザベンダー間の政治で揉める。Chromeが先行独自実装を本番ブラウザに搭載し始める |
2030年~2035年 | ようやく後継言語の概要が纏まる。主要ブラウザに搭載開始 |
2035年~ | 後継言語の普及開始 |
~2050年 | JavaScriptが主要ブラウザから全廃 |
変更点
言語名の変更
これは間違いない。 「Web Script」あたりであっさり決着しそう。……あ、でも普通すぎて検索性が悪そうだし、権利関係の兼ね合いもあるので、今流行りの造語系になるかも。じゃあ「W3bS」で🙄
JSのみの破壊的変更に留めるか、HTML/CSS/JSを巻き込むレベルの大改革するかで揉める
個人的には五分五分だと思ってるので「揉める」という所までストップ。
昔ならいざ知らず、「今更GUI周りを言語仕様に直結させて肥大化させるのはどうか」というのも凄い分かります。
……が、今なお最大の用途はブラウザ上のGUI構築だし、JSからHTML/CSS操作するのが常態化してて、疎結合すぎ/仕組みも文法もバラバラでしんどいってのもあるので、もうちょっと密になっていいのではないかという感覚もあります。
ただ、この系譜は今の仕様と距離がありすぎて、まったくの別言語&フレームワークで作る流れになるかもという思いもあります。WASM次第。あとこの系譜はJSX的なGUIコンポーネントのためのテンプレートファイル(?)の言語レベルでのサポートも入りそう。
ES2015の時点で存在する主要機能は全て残る。クラスも残る。
ES2015以降のみとなるとかなり思い切ったように思えますが、あくまで使用策定が2025年前後に行われ始めるという前提のため、JSからの移行を意識して過去10年の仕様ぐらいは流石にカバーするだろうという読みです。
型を言語レベルでどこまでやるかで揉める
こちらもどう転ぶんか読み切れないので揉めるという所まででストップ。
互換性切るんだったら……ということで、TypeScriptベースでかなり取り込みは行われるかと思いますが、どこまでやるか、どういう仕様にするかでめちゃくちゃ揉めそう。
次期JSの動きが活発化しそうなターニングポイント
- IE11終了によって実装の足並みが揃う(2025年)
- WASM系の進展
後書き
後継言語になっても既存のユーザーを移行させる必要があるので、極端な変更はできないでしょうね~。一方、切らなさすぎると後継言語の必要性が薄れてしまうので、そこらへんの激しい綱引きが今後10年ぐらいで見られると思っています。