Во всём. Язык плохой (https://www.google.com/search?q=javascript+criticism), стандартной кросс-платформенной библиотеки уровня ОС у него нет (типа stdlib джавы, stdlib раста, stdlib питона и так далее), никаких преимуществ вроде эффективности потребления ресурсов по сравнению с другими скриптовыми языками у него нет (при этом другие языки выигрывают просто потому, что они другие - тупо лучше спроектированы).Это косая, корявая поделка выросшая из динамического разворачивания менюшек на веб-страницах. Популярный он ровно по одной причине - едет верхом на популярности самого веба. А то, что на вебе именно он - чисто исторически сложилось. Никто там лучший язык не выбирал, просто фиганули что было без задней мысли, типа для менюшек сойдёт, а потом было поздно.
Работает? Да, работает. В его развитие вбухали столько денег, что подумать страшно. Но выглядит это как если бы взяли калеку с дефектами развития мозга и кинули все ресурсы планеты что бы быстренько из него сделать президента галактики - он всё равно тупой и убогий, но бабки тащат кое-как, потому что деваться некуда.
Будущего у него нет. Будущее веба - это wasm. А в него будут компилировать из нормальных языков. Собственно asm.js, а потом и wasm (и в том числе typescript) придумали и разработали именно потому, что люди понимают что с этим говном будущего нет, надо что-то другое делать, другое придумывать и развивать.
Но для зарабатывания денег - отличный вариант. На фронтэнд-разработчиков огромный спрос. Технология только сама очень убогая, но бабки как я уже сказал тащат. Это как работать в Сбертехе - можно получить очень много денег, но говна по дороге придётся съесть изрядно.
PS. И так называемая экосистема тоже плохая. То есть она богатая, но она богатая как индийская река заразой. К сожалению (хотя это закономерно), в жаваскриптовой среде довольно низкий уровень software engineering. Простейший пример: ты собираешь некий проект через npm, а он пытается на винде вызывать несуществующие программы, которые явно под линукс заточены. В жавовской экосистеме к примеру такое вообще немыслимо - там весь код будет написан на жаве и автоматически кросс-платформенно. Да и сам npm довольно убого спроектинован - взять к примеру помойку под названием "node_modules" где даже разбиения по версиям нет.