TGViewer
🇺🇦 Math.random(): community of engineers 🇺🇦 Math.random(): community of engineers @mathrandomcommunity · 1.25K subscribers
Post #959 613
Чому Microsoft переписали TypeScript на Go?

Уся швидка частина JS-тулінгу останні роки переїжджала на Rust: Turbopack, Biome, oxc, SWC. А Microsoft переписали TypeScript на Go.


Аргумент Хейлсберга простий: завданням було портувати існуючу кодову базу, а не проектувати нову. Архітектура старого компілятора — циклічні структури даних, спільний мутабельний стан між фазами — природно лягає на Go з його garbage collector. Rust вимагав би переосмислити володіння пам'яттю в кожному вузлі AST. Тобто фактично rewrite з нуля, роки роботи і ризик розійтися в поведінці типів.

Мене це питання зацікавило через власний досвід. Адже я нещодавно пройшов той самий шлях зі своїм jscpd, який живе в екосистемі вже понад десять років і ганяється в CI на кожен PR. Переписав engine з Node.js на Rust: скан 900 MB кодової бази впав з 83 секунд до 3,4. Startup overhead зник повністю, задіяні всі ядра. Коли інструмент запускається на кожен PR, ця різниця вирішує все: чекати щоразу півтори хвилини чи отримати результат миттєво.

Але є принципова відмінність: я саме переписував, а не портував. Міг дозволити собі змінити внутрішню архітектуру, бо контракт у jscpd простий — вхід і звіт на виході. У компілятора контракт — це поведінка системи типів на мільйонах чужих кодових баз, і кожне відхилення це чийсь зламаний білд. Для порту рядок-у-рядок Go справді знімає цілий клас проблем, які Rust змусив би вирішувати.

Виходить два різні шляхи до тієї самої мети: нативний код замість Node.js. І обидва працюють.

А ви б що обрали для порту компілятора -
Go🔥чи Rust👍?
  • 👍 9
  • 🔥 9
  • 👏 3
More from @mathrandomcommunity
  1. Sep 30, 2026Подивись, як AI-судді розбирають код агента👆 Це тестова гра нашої команди в ololo. Навіщо…
  2. Sep 30, 2026video post
  3. Sep 29, 2026Найнебезпечніша фраза від AI-агента: «Готово, тести проходять». Мій агент пише її щодня. З…
  4. Sep 29, 2026video post
  5. Sep 24, 2026Нова модель Jev від TypeSafe AI стала однією з найпомітніших новинок останнього тижня 🆕 Я…
  6. Sep 21, 2026Ваш агент платить за генерацію тексту там, де йому потрібна відповідь «так» або «ні». Таке…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →