Microsoft объявила, что компилятор TypeScript
будет переписан на языке программирования Go, что позволит ускорить его работу в 10 раз. Это событие вызвало волну обсуждений среди разработчиков и может кардинально изменить ландшафт разработки на JavaScript
.
Что такое TypeScript и его связь с JavaScript
TypeScript
— это независимый язык программирования, который внешне напоминает JavaScript, но добавляет статическую типизацию и интерфейсы. Тем не менее, для работы TypeScript требуется JavaScript дважды:
- Компиляция TypeScript-кода в JavaScript, который исполняется в браузере.
- Сам компилятор TypeScript написан на JavaScript.
Проблема производительности
Компилятор на JavaScript работает медленно из-за ограничений языка, который является однопоточным. Хотя есть возможность использовать воркеры для параллельных задач, они не имеют общего контекста, что замедляет процесс.
Go, в свою очередь, позволяет легко управлять многопоточностью, что и стало ключевым аргументом в пользу перехода на этот язык. Microsoft утверждает, что компиляция TypeScript станет в 10 раз быстрее, а производительность в среде разработки, например, в Visual Studio Code, значительно возрастет.
Почему выбран Go, а не Rust?
Rust тоже мог бы ускорить компиляцию, но он слишком сложен и требует управления памятью, что делает процесс разработки более трудоемким. Go же прост в использовании, быстр и обладает достаточной производительностью для решения задачи.
Что это значит для JavaScript?
Сегодня почти весь продакшен-код пишется на TypeScript, будь то backend на Node.js или frontend на React. JavaScript фактически стал целевым языком, в который компилируется TypeScript-код.
Переход компилятора на Go означает, что роль JavaScript в процессе разработки будет сведена к минимуму. Более того, браузеры постепенно двигаются в сторону поддержки TypeScript напрямую, что делает необходимость компиляции в JavaScript излишней.
Будущее JavaScript
Хотя JavaScript останется в браузерах для поддержки старых проектов, писать на нем будут всё реже. С появлением поддержки TypeScript в Node.js и браузерах JavaScript потеряет свою ключевую функцию как промежуточный компилируемый язык.
Заключение
Решение Microsoft переписать компилятор TypeScript на Go — это логичный шаг, который существенно ускорит работу разработчиков. Однако это также знаменует начало конца эпохи JavaScript как основного языка для веб-разработки. JavaScript останется в истории, но будущее за TypeScript.