toshiki

TypeScriptのコンパイラがRustで書き直され公式に

· Cloudflare Blog(Hacker News経由) #130

oxc-projectのTypeScriptコンパイラRust移植「tsrs」が公式扱いに。HNでは3倍速の数字と、速さの出どころはRustよりアルゴリズムだという議論が並んだ。

  • #rust
  • #typescript
  • #compiler
  • #webassembly
  • #oxc

#なぜ今日これを選んだか

普段TypeScriptを書くフロントエンドの仕事と、学んでいるRustが、ちょうど1つの道具の上で交わった話だからです。しかもHNの議論では「速さはRustのおかげではない」という声が多く、言語選びよりも設計で差が出るという、技術を学ぶ上で大事な視点が詰まっていました。

#要点

  • oxc-projectが作るTypeScriptコンパイラのRust移植「tsrs」が、TypeScriptチームと協力する公式プロジェクトになった
  • HNのコメントでは、VS Codeのコンパイルが TypeScript 7.1 nightly 比で約3倍速(1.73秒 対 5.28秒)という数字が引用されている。動機はWebAssemblyで動かしたいこと(Goで作るとランタイムごと配る必要がある)
  • TypeScriptチームのDan Rosenwasser氏は、速くなった分の多くはアルゴリズムとメモリ確保の工夫によるもので、その一部は本家TypeScript 7.1にも入っていると述べている

#自分にとっての示唆

「Rustで書けば速い」ではなく、「どこでメモリを確保し、どう持つか」を設計できる人が速いものを作る、ということだと受け取りました。議論に出てきた「解放しないアリーナ」という作り方は、まさにRustの所有権と付き合う上での1つの答えです。明日からは、Rustで問題を解くときに速さだけでなく「どこで確保が起きているか」を一度だけ意識してみます。普段のTypeScriptの型チェックが遅い場面に出会ったら、tsrsを手元で試して数字を比べてみるつもりです。