Microsoftは、TypeScriptのコンパイラやツールなどをGo言語に移植する計画を明らかにした。この取り組みにより、大規模コードベースの処理速度が10倍高速化するケースもあるという。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2025年3月11日(米国時間)、TypeScriptのパフォーマンスを向上させる取り組みとして、TypeScriptのコンパイラやツールをGo言語に移植する計画を公式ブログで明らかにした。
Microsoftによると、コンパイラやツールをGo言語に移植することで、エディタの起動が劇的に改善される他、大規模コードベースのコンパイル時間が10倍短縮されるケースもあるという。
Microsoftは、TypeScriptコンパイラやツールをGo言語に移植する背景や、これによるパフォーマンスの改善について、次のように解説している。
TypeScriptの最大の特徴は、優れた開発者体験を提供することにある。プロジェクトのコードベースが拡大するにつれて、TypeScriptの価値も高まる。だが、非常に大規模なコードベースの場合、TypeScriptのパフォーマンスが十分に発揮されないケースがあったと、Microsoftは指摘する。
「大規模プロジェクトに取り組む開発者は、プロジェクトの読み込み速度や型チェックの時間が長くなるという課題に対し、コンパイラが処理するコードを最小限に抑えることで、エディタの起動時間を短くするか、ソースコード全体を完全にコンパイルする代わりにエディタの起動時間が遅くなるというトレードオフを迫られていた。開発者が好むのは、変数を安全にリネームしたり、特定の関数の参照を全て見つけたり、コードベースを簡単にナビゲートしたりするといった作業を遅延なくできることだ」(Microsoft)
Microsoftは、TypeScriptコンパイラである「tsc」と、Go言語に移植されたバージョンを用いて、GitHubで公開されているさまざまな人気プロジェクトのコードベースのコンパイル速度を次のように比較している。
プロジェクト | コード行数 | 現在 | 移植後 | 処理速度の差 |
---|---|---|---|---|
Visual Studio Code | 150万5000 | 77.8秒 | 7.5秒 | 10.4倍 |
Playwright | 35万6000 | 11.1秒 | 1.1秒 | 10.1倍 |
TypeORM | 27万 | 17.5秒 | 1.3秒 | 13.5倍 |
date-fns | 10万4000 | 6.5秒 | 0.7秒 | 9.5倍 |
IRPC(サーバ+クライアント) | 1万8000 | 5.5秒 | 0.6秒 | 9.1倍 |
rxjs(observable) | 2100 | 1.1秒 | 0.1秒 | 11.0倍 |
「開発者の時間の大半はエディタで費やされるため、エディタのパフォーマンスは最も重要だ。『Visual Studio』や『Visual Studio Code』のようなエディタは、基盤となる言語サービスが高速であればあるほど、優れたパフォーマンスを発揮する。この移植により、信じられないほど高速なエディタ体験をできるようになるだろう」(Microsoft)
Microsoftによると、今後、TypeScriptは大きく分けて以下の2つのバージョン(仮称)で開発や提供を進める計画だという。
「リリースと同時にTypeScript 7に移行できるプロジェクトもあれば、特定のAPI機能やレガシーな設定、その他の制約によってTypeScript 6を使用しなければならないプロジェクトもあるだろう。TypeScript 7以上が十分に成熟し、採用されるまで、6.xバージョンのコードベースを維持していく。移植は現在も進行中であり、β版がリリースできるようになった時点で詳細を発表する計画だ」と、Microsoftは述べている。
Copyright © ITmedia, Inc. All Rights Reserved.
Coding Edge 記事ランキング