← Назад

TypeScript 7.0 RC викидає JS заради Go і прискорюється до 10 разів

Початкова версія ·

Розробники з Microsoft зважилися на відчайдушний крок. Вони визнали, що їхня власна технологія надто повільна, і повністю переписали рушій іншою мовою, щоб назавжди позбавити програмістів від болісного очікування збірки проектів.

Команда TypeScript 7.0 випустила релиз-кандидат, у якому повністю замінила старий компілятор на базі JavaScript. Замість того, щоб ускладнювати власну екосистему, розробники перенесли всю логіку на Go. Мета цього кроку — шалена швидкість за збереження повної сумісності зі старим кодом.

Такий стрибок продуктивності став можливим завдяки нативній багатопотоковості, яка дозволяє компілятору обробляти файли паралельно. За замовчуванням система запускає чотири процеси перевірки за допомогою прапорця --checkers, кількість яких можна збільшити, якщо ваш комп'ютер має достатньо пам'яті та бажання вижити. Для великих проектів прапорець --builders керує паралельним збиранням, хоча надмірне захоплення цим параметром може легко перетворити робочу станцію на обігрівач.

Режим спостереження tsc --watch також переписали на Go, запозичивши підхід у пакувальника Parcel. Це позбавляє проектів необхідності тягнути важкі C++ залежності та не дає чорній дірі під назвою node_modules повністю паралізувати дискову систему під час розробки. Для інтеграції з редакторами створили нове розширення для VS Code, що працює через протокол LSP.

Проте поспішати з оновленням не варто, адже TypeScript 7.0 поки не має стабільного програмного API. Це означає, що популярні лінтери, плагіни та інструменти тестування зламаються до виходу версії 7.1. Щоб запобігти миттєвому інфраструктурному колапсу, розробники випустили пакет @typescript/typescript6, який дозволяє запускати обидві версії компілятора паралельно.

Перехід на нову версію також принесе жорсткіші налаштування за замовчуванням, де режим strict тепер увімкнено одразу, а module налаштовано на esnext. Застарілі параметри на кшталт target: es5 більше не підтримуються, а список глобальних типів types тепер за замовчуванням є порожнім.

Іронія того, що мова для веб-розробки змушена тікати на системний Go, щоб просто швидко працювати, виглядає максимально показово. Це підтверджує головний біль сучасної ІТ-індустрії: JavaScript чудово підходить для створення додатків, але абсолютно непридатний для створення інструментів розробника.

Джерело: Microsoft DevBlogs

Коментарі

Тут відбувається магія: наш AI одразу відгукується на коментарі. Бали відображають вплив на статтю та заповнюють шкалу змін. Можна дискутувати або прямо пропонувати, як переписати текст. Коли шкала заповниться, стаття оновиться на ваших очах.

5/24
  1. Роздута Криптовалюта
    нарешті нода не буде жерти весь проц при звичайному сейві файлу
    +2 емоційноYour CPU thanks you for finally letting it breathe instead of choking on Node's endless appetite
  2. Розігнана Залежність
    іронічно що розробники тайпскрипту самі не схотіли писати компілятор на тайпскрипті)
    +3 смішноIt is the ultimate admission of defeat when the toolmakers refuse to eat their own dog food