TypeScript⁠パフォーマンス改善のためにネイティブ実装の取り組みを発表 —⁠—ネイティブ実装にGo言語を使い⁠ビルド時間(tsc)10倍の速度改善

TypeScriptのリードアーキテクトであるMicrosoftの Anders Hejlsberg氏は、TypeScriptのパフォーマンス改善とそれに伴う開発体験の向上のために、TypeScriptコンパイラとそのツールのネイティブ実装に取り組んでいることを発表した。これは従来のJavaScriptを基にしたコードベースにかわるもので、このネイティブ実装の取り組みによってパフォーマンスが10倍程度改善することを示した。

このネイティブ実装はGo言語によって開発が進められている。すでに既存のプロジェクトの一部でもこの恩恵を確認することができることに触れ、実際にtsc実行時の時間比較は以下のとおりの結果になったことを示した。

サイズ(LOC) 現在 ネイティブ 速度改善
VS Code 1,505,000 77.8s 7.5s 10.4x
Playwright 356,000 11.1s 1.1s 10.1x
TypeORM 270,000 17.5s 1.3s 13.5x
date-fns 104,000 6.5s 0.7s 9.5x
tRPC (server + client) 18,000 5.5s 0.6s 9.1x
rxjs (observable) 2,100 1.1s 0.1s 11.0x

このようなビルド時間の短縮のほか、VS Code等のエディタにおいて起動時間、補完リスト、クイック情報、定義参照の速度改善や、AIツールによるコード支援の応答改善も見込めるため、開発者体験も向上すると説明している。

TypeScriptは現行のリリースが5.8で、近いうちに5.9もリリースされる。その後、従来の実装と区別するため、これまでのJavaScriptコードベースは6.xシリーズ(もともとのTypeScriptのコードネームはStrada)として開発し、ネイティブ実装が現在のTypeScriptと十分な互換性を持った時点でTypeScript 7.0 (native)(コードネームはCorsa)としてリリースする計画だ。また長期的な目標として、両バージョンをできる限り近い状態に保つことで、ユーザーが必要に応じて柔軟に移行できる環境を提供したいという。

今後数ヶ月の間に、さらなるパフォーマンス改善、新たなコンパイラAPIやLSPなど、この取り組みに関する詳細を順次公開する予定とのこと。またこのネイティブ実装に関する疑問に答えるためにGitHub上にFAQなども用意されている。

おすすめ記事

記事・ニュース一覧

→記事一覧