BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース マイクロソフトがネイティブTypeScriptコンパイラ移植を発表、10倍パフォーマンス向上

マイクロソフトがネイティブTypeScriptコンパイラ移植を発表、10倍パフォーマンス向上

原文リンク(2025-05-27)

マイクロソフトのTypeScriptチームはTypeScriptコンパイラ(tsc)の実験的ネイティブ移植版、ビルド時間を10倍に短縮し、エディタのコールドスタート時間を大幅に削減し、メモリ使用量を大きく改善することを目的としたtsc-goを発表した。この取り組みはNode.jsランタイムのオーバーヘッドなしにGoで書かれたコンパイラを動かすことを探求するものだ。

TypeScriptプロジェクトのリードアーキテクト Anders Hejlsberg氏は、この移植の動機について次のように説明している:

TypeScriptの核心的な価値提案は優れた開発者エクスペリエンスです。コードベースが成長するにつれ、(中略)多くの場合、TypeScriptは最大級のコードベースに対応できませんでした。大規模プロジェクトで作業する開発者は、(中略)適切なエディタ起動時間とソースコード全体の可視性のどちらかを選ばなければなりませんでした。(中略)AI駆動の新しいエクスペリエンスは、より厳しいレイテンシ制約のもとで利用できる大きなセマンティック情報ウィンドウからベネフィットを得ます。コードベース全体の健全性を検証するために、高速なコマンドラインビルドも必要です。

Node.js上で動作する標準tscコンパイラは、大規模プロジェクトや頻繁に小規模ビルドを行う場合、特に初回実行時の起動時間が目立つ。新しい実験的なTypeScriptコンパイラはGoで書かれており、Node.js起動オーバーヘッドなしで動作するようネイティブコードにコンパイルされる。

ブログ発表ではVS Codeの1 MLOCコードベースの型チェック時間が77秒から7.5秒に短縮され、10倍の改善が見られたと述べている。同様の比率はPlaywrightコードベース(356,000 LOC)でも観察され、時間が11秒から1秒に短縮された。マイクロソフトは、RxJS(2,100 LOC)のような小規模コードベースでもこの比率を維持しており、型チェック時間が1.1秒から0.1秒に短縮されたと報告している。なお、インクリメンタルビルドに関する改善数値はブログには記載されていない。

TypeScriptチームはVisual Studioコードベースのエディタシナリオでプロジェクトロード時間が8倍改善されたことを報告しており、他のコードベースでも同様の比率が維持されると期待している。コードエディタを開いてから完全にロードされたコードベースで入力できるまでの時間が大幅に短縮され、開発者エクスペリエンスが大きく向上する見込みだ。

ネイティブ移植版(コードネーム:Corsa)は依然として実験的で、インクリメンタルビルドを含む多くの機能がまだ実装されていないと見なされている(参照.これまでに機能しているもの)。ブログ発表によるとネイティブコードベースが現行TypeScriptと十分同等になった時点で、TypeScript 7.0としてリリースされ、以前のバージョンからの慎重な移行パスが用意される予定だ:

TypeScript 7+が十分な成熟度と採用率に達するまで、私たちは6.x系のJSコードベースも引き続きメンテナンスします。

RedditHacker Newsなどのプラットフォームでの開発者の反応では、RustではなくGoを選択した理由について質問が寄せられた。TypeScriptの開発リードRyan Cavanaugh氏は、開発者が確認できる詳細な回答を提供している。抜粋を引用する:

最終的に私たちには2つの選択肢 - Rustで完全にゼロから書き直し、何年もかかって誰も実際に使えない非互換のTypeScriptを作るか、あるいはGoに移植して1年ほどでいくつか使えるものを作り、意味論的に非常に互換性が高く、パフォーマンス面でも非常に競争力のあるものを得るか、がありました。

ブログ投稿に加えて開発者はHejlsberg氏がTypeScript移植の取り組みについて詳述したYouTube動画も開発者に推奨されている。開発者はTypeScriptのネイティブ移植開発用のGitHubリポジトリも参照できる。プレビュー版ビルドはnpmで@typescript/native-previewとして利用可能だ。VS Code拡張機能のプレビューもVS Codeマーケットプレイスで提供されている

プロジェクトはApache License 2.0の下で公開されており、貢献や提案を歓迎している。詳細についてはContributor License Agreementsを確認のこと。プロジェクトはMicrosoft Open Source Code of Conductに従っている。詳細はCode of Conduct FAQを参照のこと。

作者について

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT