グーグルから「JavaScriptは根本的な問題を抱えている」とのメモがリークか
グーグル社内で昨年の11月に関係者に送信されたとされるメモが公開されています。ただしグーグルは真偽について何もコメントしていません。
メモには、「JavaScriptは単なる言語の進化では修正できない根本的な問題を抱えている」とあります。同社は来月「Dart」と呼ばれる新言語を発表する予定で、このメモはその背景を説明したものではないかと推測されています。
JavaScriptは根本的な問題を抱えている
内部メモはメールで送信されており、タイトルは「 "Future of Javascript" doc from our internal "JavaScript Summit"」。2010年11月16日付けです。非常に長いので、サマリー部分を紹介しましょう。
Javascript has fundamental flaws that cannot be fixed merely by evolving the language. We'll adopt a two-pronged strategy for the future of Javascript:
JavaScriptは単なる言語の進化では修正できない根本的な問題を抱えている。そこで私たちはJavaScriptの将来について2つの戦略を適応するつもりだ。
- Harmony (low risk/low reward): continue working in conjunction with TC39 (the EcmaScript standards body) to evolve Javascript
Harmony(低リスク/低リターン):JavaScriptを進化させるため、TC39(EcmaScript標準化団体)とともに継続して作業にあたる。(訳注:Harmonyとは将来のJavaScript/EcmaScriptのバージョンに対するコード名)
- Dash (high risk/high reward): Develop a new language (called Dash) that aims to maintain the dynamic nature of Javascript but have a better performance profile and be amenable to tooling for large projects.
Dash(高リスク/高リターン):新しい言語(Dashと呼ぶ)を開発する。これはJavaScriptの動的性質を保ったまま、よりよいパフォーマンスと大規模プロジェクトのツールとして適応するものを目指す。
グーグルにとって、JavaScriptが性能の面で十分でなく、大規模開発にも向いていないことを問題として認識していることが示されています。
新しい言語を作るか、JavaScriptの進化に賭けるか
10月10日にデンマークで開催されるイベント「GOTO Aarhus」のオープニングキーノートでは、グーグルが「Dart, a new programming language for structured web programming」(Dart、構造的Webプログラミングのための新しいプログラミング言語)という講演を行うことが明らかになっています。
先のメモで「Dash」と呼ばれた新言語が、このDartなのではないかという推測が指摘されています。「Dash」と「Dart」については、ブログWebOS Goodiesのエントリ「Google の新言語「Dart」は新しい JavaScript か?」が詳しく論じています。
一方で、グーグルのメモやDartなどについて、JavaScriptの生みの親であり、モジラに所属するBrendan Eich氏は、自身のブログにポストした記事「CapitolJS, RiverTrail」で、EcmaScript 6への進化や、先日インテルが発表したJavaScriptに対する並列性の拡張である「RiverTrail」などを示して、「Always bet on JS!」とJavaScriptへの進化に全幅の自信を示しつつ、JavaScriptとは異なる言語で技術的解決策を模索するグーグルを牽制しています。
関連記事
その後Googleはプログラミング言語「Dart」を発表。しかし2015年3月、GoogleはChromeへのDartVMの統合を断念し、当初のDartの目標到達は事実上断念されました。
- グーグル、新言語「Dart」を発表。JavaScriptのようなWebプログラミングを想定
- Googleの新言語「Dart」、ECMAが標準化を開始
- ChromeへのDartVM統合を断念、Dart開発チームが発表。今後はJavaScriptへのコンパイルにフォーカス
2018年3月、Dart 2とFlutterライブラリが発表されます。その後、Dart 2とFlutterは順調にバージョンアップを重ねていきます。
- Googleが「Dart 2」発表、Dartを再起動。iOS/Android用ライブラリ「Flutter」と共にWebとモバイルのクライアント開発にフォーカス
- Dart用UIツールキット「Flutter」がバージョン1.0に到達。iOS/Androidネイティブアプリを単一コードで開発。Flutter Live '18
- Googleが「Dart 2」安定版とAngularDart 5をリリース。Webとモバイルのクライアント開発にフォーカス
Flutterはマルチデバイス対応へと進化していき、2021年3月、Flutter 2が公開されました。
- Flutter、ベータを卒業してリリースプレビューへ。Dart言語によるiOS/Android対応アプリフレームワーク
- FlutterアプリをWindows/Mac/Linuxのデスクトップで実行可能にする「Flutter Desktop Embedding」発表。Flutter Live '18
- Google、「Flutter for Web」発表。FlutterからWebアプリを生成。Flutterはマルチプラットフォーム対応のフレームワークに。Google I/O 2019
- Google、「Flutter 1.9」リリース、Webアプリ生成機能を統合。Flutterは単一コードでネイティブアプリとWebアプリを開発できるフレームワークに
- Dart言語のフレームワーク「Flutter 2」公開。単一コードでiOS/Android/Web/Win/Mac/Linuxのネイティブアプリ実現。WebAssemblyによるレンダリングエンジン搭載