Корпорация Microsoft объявила о масштабном обновлении экосистемы TypeScript. Компилятор языка (программа, которая преобразует код с языка программирования в машинный код) полностью переписывают с JavaScript на Go в рамках проекта под названием «Corsa». Это должно увеличить производительность, уменьшить потребление памяти и ускорить работу инструментов разработчика.
TypeScript — это язык программирования от Microsoft, расширение JavaScript. Он добавляет статическую типизацию, то есть программист может явно указывать типы переменных, параметров функций и возвращаемых значений. Это помогает обнаруживать ошибки еще на этапе компиляции, прежде чем код будет запущен. TypeScript компилируется в JavaScript, который работает в среде выполнения (runtime-окружении) — браузере или Node.js.
Go — это язык программирования от Google. Он отличается высокой производительностью, простым синтаксисом и поддержкой многопоточности (goroutines).
Новая нативная версия компилятора TypeScript на Go будет компилироваться в бинарный файл, который может работать напрямую в операционной системе, без необходимости в отдельном runtime-окружении. Это обеспечит значительный прирост производительности.
Почему Microsoft выбрала Go? Во-первых — близость к TypeScript по семантике и структуре кода. Это упрощает перенос существующих шаблонов и снижает трудоемкость сопровождения. Go лучше управляет выделением памяти. Это уменьшает нагрузку на систему. Встроенные механизмы goroutines позволяют эффективно использовать многопоточность и ускоряют компиляцию. Стоит отметить, что Go популярен также и среди киберпреступников: он позволяет разрабатывать производительные и кроссплатформенные программы.
Microsoft сообщает, что новая версия компилятора в 10 раз быстрее предыдущей. Например, кодовая база популярного текстового редактора для разработчиков VS Code (1,5 млн строк) теперь компилируется за 7,5 с вместо 77,8 c. Компилятор потребляет вдвое меньше оперативной памяти. Загрузка крупных проектов в VS Code занимает всего 1,2 с вместо 9,6 c. Существенно ускоряется и компиляция библиотеки TypeORM — с 17,5 c секунд до 1,3 c.
Предварительная версия Go-компилятора TypeScript появится в середине 2025 года. Полноценный релиз ожидается к концу года. Уже сейчас можно протестировать ранний прототип, после скачивания кода из репозитория Microsoft/type-script-go на GitHub. Более подробный обзор обновления можно найти по ссылке.