X10 и хайп вокруг переезда TypeScript на golang: революция или эволюция?
Несколько дней назад вышел анонс нового компилятора typescript на golang с ускорением в 10 раз по сравнению с компилятором на JS. Это породило волну мнений из разряда "нативный классический JavaScript - всё".
Давайте разбираться, где здесь правда, а где кликбейтный вымысел.
Что важно понимать про новый компилятор:
1) TypeScript всё ещё компилируется в тот же самый JS, здесь ничего не поменялось.
2) Выполняется всё ещё тот же скомпилированный JS и выполняется точно также как и раньше.
3) Никакой оптимизации в отношении компилятора не производилось.
Из интервью с Андерсом Хейлсбергом становится ясно, что компилятор переписывают "по файлам" и "как есть", без дополнительных улучшений. Улучшать производительность компилятора за счет изменения подходов к коду не планируется. Больше того, приоритетом является максимальное сохранение поведения существующей версии.
4) Весь выигрыш по производительности достигается только за счет разницы между скоростью JS и golang.
5) Старый компилятор никуда не девается. Можно будет использовать любой из них.
6) Неофициальные альтернативные компиляторы уже существуют и не первый год. Просто теперь будет и официальный.
Вывод: произошло ли что-то революционное? Нет.
Несмотря на кратное ускорение компиляции, в реальном использовании это лишь улучшение инструментария, а не кардинальное изменение экосистемы.
К тому же из анонса следует, что некоторые фичи, используемые в средних и крупных проектах, не будут реализованы сразу. Среди них - JSX (привет, react). Обоснованно предположить, что фактический переезд многих продуктовых проектов состоится нескоро.
Таким образом, переезд компилятора на golang не означает революцию в том, как выполняется JavaScript. Это скорее эволюция инструментария для разработчиков TypeScript. Вполне естественный процесс.
Значит ли это, что скоро JS потеряет свою актуальность? Также скоро как мир покинет JQuery :)
Legacy было, есть и будет. Разбираться в нём — всё ещё musthave.