Ну, да, но я вот почти каждый день пишу JS, и то что происходит, иногда реально makes fun. Но это странный такой fun. JS стал местами выглядеть например вот так (это радует):

Но иногда-то вот так (а это не радует):
Оба примера потребуют транспайлера для запуска, и оба примера – сами транспайлеры.
Расширение синтаксиса и новые фичи сначала появляются как proposals и полифиллы-транспайлеры из “нового” синтаксиса в обычный ES5/6, а затем – иногда – утверждаются в следующий стандарт.
Вообще, JS-транспайлеры в web-related workflow давно норма, минификаторы кода на сайтах – как раз транспайлеры из JS в JS, ога.
Там полно замечательных разработок – я, например, активно использую AST builder и codegen для разбора и генерации JS, взятые как раз из минификатора кода. Который, замечу, изначально был написан на Lisp, а потом откомпилирован в JS, ога.
Среди JS-транспайлеров есть, конечно, звезда – babel.js. Если коротко, babel транслирует код, написанный практически на любом кандидате в будущие стандарты JS, в “классический” Javascript. К Бэйбелу бывают плагины (первый скриншот – как раз такой плагин) и всякие другие вкусности.
Ещё есть Microsoft-овский Typescript. Это такой JS c типизацией, классами в самом гнусном смысле и подобными прелестями – и транспайлер к нему. Некоторым нравится.
Ну и CoffeeScript (кажется, отходящий к праотцам – наконец-то), JSX, SJS и прочая, и прочая. Их можно сочетать в одном проекте минимумом усилий и они все прекрасно друг с другом уживаются, но…
Не fun
У всех этих прелестей есть и обратная сторона. JS стал с эзотерической точки зрения очень похож на C++. Огромный очень пёстрый и неровный стандарт, необозримое время, необходимое для действительно глубокого погружения в частности, абсолютное доминирование в своей области индустрии и много других таких вот нечётких аналогий.
Это всё очень круто – но это как-то перестаёт быть fun. Вернее, это какой-то неправильный fun.
Скажем, 3 года назад повсеместным стандартом возврата из асинхронного вызова были callback-и, а теперь это чуть не моветон, везде Promis’ы (которые круто дороже и не всегда нужны). Забавно – в 2014 я использовал promisify, чтобы превращать коллбэки в промисы, в 2016 мне стал нужен callbackify, чтобы превращать промисы обратно в коллбэки о_О
Доверие
JS комьюнити изначально основано на глубоком доверии – сам язык такой. Увы, взрывной рост комьюнити не привёл к появлению развитых инструментов, это доверие обеспечивающих. В результате недавно побурлил npmgate, и это только начало.
Если, по одному выражению, в C++ сложно выстрелить в ногу, но если получится, отрывает всю ногу – то в JS сейчас положение таково, что оторвать ногу может многим тысячам фанов сразу. И сделать это очень легко – даже стрелять не надо, достаточно обидеться.
Более того, оторвать ногу может так, что это будет долго незаметно.
Exotic bugs
В JS полно способов создавать весьма экзотические объекты. Например, все известные мне (в тч системный) методы определения, является ли объект array-ем, могут давать неожиданные результаты. Прекрасный баг вот на тему. Вообще в JS определить какой природы объект передан в функцию далеко не всегда тривиальная задача.
На это накладываются слои intermediate рантайм-представлений кода и рантайм же компиляция / bailout туда-сюда.
Я затрудняюсь даже представить, какие уязвимости можно найти на стыке этих чудес.
Консерватизм
Я как-то купил за 5(10?) фунтов книжку по JS-тестированию, и если б знал, насколько хороша книжка – дал бы кратно больше. Книжка эта меня просветлила совсем не в плане методик тестирования – я из неё увидел, насколько важен в JS консерватизм.
То-есть, если не использовать в JS нововведения младше двух-трёх лет, не наворачивать транспайлеров для красоты, использовать только хорошо проверенные мэйнстримовые хаки, приёмы и соглашения – глубокие ошибки могут быть только логические.
Я после прочтения этой книжки стал избегать ESnext, тайпскрипта, JSX и тп надстроек, ну и вычесал и в некотором смысле законсервировал набор библиотек. В результате то, что делается, работает всегда, сразу и на всём.
А хайп и яркие рыбки у поверхности – это то, что и в самом деле makes fun и вовсе не только для людей, далёких от JS. Вот ещё бы этот хайп в стандарт не так бойко попадал – и было б совсем славно.