x10 до продуктивності TypeScript: Microsoft розробляє нативний компілятор
Сьогодні Microsoft оголосили, що розробляє нативну версію компілятора TypeScript на Go. Під час тестування ця версія показала
Очікується, що до середини 2025 року з’явиться попередня версія нативного tsc, здатного виконувати перевірку типів у командному рядку, а повнофункціональне рішення для збірки проєктів і мовної служби буде готове до кінця року.
Go-код із нового робочого репозиторію доступний для збірки та запуску під тією ж ліцензією, що й існуюча кодова база TypeScript. У файлі README містяться інструкції щодо збірки та запуску tsc і мовного сервера, а також огляд уже реалізованих можливостей. Розробники планують регулярно публікувати оновлення з новими функціями для тестування.
Наскільки швидше
Нативна реалізація вже підтримує завантаження багатьох популярних проєктів на TypeScript, включно з самим компілятором TypeScript, і забезпечує значне прискорення роботи. Наведені нижче показники відображають час виконання tsc на кількох відомих репозиторіях GitHub різного розміру:
Кодова база |
Розмір (LOC) |
Поточний час |
Нативний час |
Прискорення |
1,505,000 |
77.8s |
7.5s |
10.4x | |
356,000 |
11.1s |
1.1s |
10.1x | |
270,000 |
17.5s |
1.3s |
13.5x | |
104,000 |
6.5s |
0.7s |
9.5x | |
tRPC (server + client) |
18,000 |
5.5s |
0.6s |
9.1x |
rxjs (observable) |
2,100 |
1.1s |
0.1s |
11.0x |
Хоча нативна реалізація TypeScript ще не є повністю завершеною, вже зараз вона демонструє суттєве покращення продуктивності під час перевірки коду. Очікується, що більшість проєктів відчують значне прискорення роботи компілятора, що позитивно вплине на весь процес розробки.
Покращення швидкості роботи редактора
Оскільки розробники проводять більшість часу в редакторах, їх продуктивність тут має вирішальне значення. Новий TypeScript забезпечить швидке завантаження великих проєктів і миттєву реакцію на дії користувача. Сучасні редактори, такі як Visual Studio та Visual Studio Code, вже демонструють високу продуктивність, але значною мірою вона залежить від мовних сервісів. Завдяки нативному порту ці сервіси працюватимуть значно швидше.
Наприклад, кодова база Visual Studio Code завантажується в редакторі за 9,6 секунди, тоді як із нативною мовною службою цей час скорочується до 1,2 секунди — у 8 разів швидше. Це означає, що розробники зможуть одразу працювати після відкриття редактора.
Використання пам’яті також зменшилося приблизно вдвічі, а швидкість операцій мовної служби (автодоповнення, пошук визначень, навігація) значно зросла. Також планується перехід на Language Server Protocol (LSP) для кращої інтеграції з іншими мовами програмування.
Що далі чекає на TypeScript
Нещодавно вийшла версія TypeScript 5.8, а незабаром з’явиться TypeScript 5.9. Кодова база на JavaScript продовжить розвиватися в серії 6.x, а версія TypeScript 6.0 підготує ґрунт для майбутнього переходу на нативну реалізацію.
Як тільки нативна версія досягне достатньої функціональності, її випустять під номером TypeScript 7.0. Щоб уникнути плутанини, розробники вирішили чітко розмежувати версії: TypeScript 6 (JS) залишиться у традиційному вигляді, а TypeScript 7 (native) буде повністю нативним. У внутрішній документації можуть також зустрічатися кодові назви: «Strada» (оригінальне ім’я TypeScript) та «Corsa» (назва нового порту).
Чи потрібно переходити на нову версію одразу? Це залежить від проєкту. Деякі зможуть перейти на TypeScript 7 без проблем, інші ж можуть залежати від застарілих API чи конфігурацій, які поки не підтримуються в нативному TypeScript. Тому розробники продовжать підтримувати серію 6.x, поки TypeScript 7 не стане повністю стабільним.
20 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів