Рубріки: Новини

TypeScript на Go пришвидшує компіляцію, але не виконання коду

Дмитро Сімагін

Експерт розкритикував твердження Microsoft, що переведення компілятора TypeScript з JavaScript на Go дає 10-кратний приріст продуктивності. У своєму дописі на Architecture Weekly розробник Оскар Дудич пояснює, що насправді йдеться про швидкість компіляції, а не виконання коду. Тобто, ваші програми не працюватимуть швидше — пришвидшиться лише їхнє збирання. 

Компілятор не чекає на відповідь від бази даних і не займається мережевими запитами. Він завантажує процесор, розбираючи типи гілок, аналізуючи код і генеруючи вихідний файл. Node.js з його однопоточною моделлю та event loop погано підходить для таких завдань. Він чудово працює у веб-серверах, де важлива швидкість відгуку та робота з I/O, але не великі обчислення. З ростом навантаження на компілятор TypeScript, його стара архітектура почала гальмувати.

Тому Go тут виявився підходящим вибором:

  • у нього є легкі потоки (goroutines);
  • паралельне виконання вбудоване лише на рівні мови;
  • немає потреби в операціях з worker threads, як у Node.js;
  • простіше працювати з пам’яттю та складними структурами.

Чому тоді просто не використовувати worker threads у Node.js? Це можливо, і вони справді дають паралельність. Але варто врахувати, що переписувати старий код з урахуванням багатопоточності не дуже ефективно. Обмін даними між потоками Node.js йде через серіалізацію, кожен потік створює свій V8-інстанс, що досить дорого для ресурсів.

Команда Microsoft вирішила не удосконалювати старе, а розпочати все з чистого аркуша. І, як довели перші тести, навіть однопотоковий Go-компілятор виявився швидшим, ніж старий на Node.js.

Що стосується браузерів і плагінів, то в браузерах Go не працює нативно. Тому доведеться або компілювати його в WebAssembly, або зберегти JS-версію для різних playground. Так чи інакше, технологія, яка добре працювала у 2012 році, перестає відповідати вимогам сьогодення. Заперечувати цінність змін не варто, особливо якщо йде мова про роботу з великими кодовими базами, де кожен відсоток прискорення важливий.

Останні статті

ChatGPT інтегровано з програмами Adobe. Тепер можна безкоштовно редагувати фотографії та PDF-файли прямо в чаті

Adobe інтегрувала ChatGPT у програми Photoshop, Acrobat і Adobe Express. Користувачі тепер можуть створювати дизайни…

10.12.2025

Функцію d_genocide видалили з Linux через «невідповідність принципам інклюзивності»

В оновленні коду майбутньої версії Linux 6.19 видалено функцію під назвою d_genocide(). Вона була пов'язана…

10.12.2025

JetBrains закриває середовище розробки Fleet

Компанія JetBrains закриває Fleet — полегшене IDE нового покоління, яке розвивали паралельно з IntelliJ IDEA.…

10.12.2025

Підтримка Rust в ядрі Linux переведена з експериментальної в основну

Учасники конференції Maintainers Summit визнали успішним експеримент з додавання в ядро ​​Linux можливості розробки компонентів…

10.12.2025

Mistral випускає нову модель Devstral 2 та інтерфейс командного рядка Mistral Vibe CLI

Французький стартап Mistral представив нове покоління своєї LLM-моделі, яка доступна в двох варіантах: Devstral 2…

10.12.2025

Китайські моделі з відкритим кодом захопили 30% світового ринку LLM

Китайські LLM-моделі з відкритим кодом стрімко завойовують світовий ринок штучного інтелекту, зайнявши майже третину глобального…

09.12.2025