A minha percepção é que era moderna do Javascript, isto é, após jQuery, foi a primeira linguagem de programação profissional de muita gente devido ao boom e, por tanto, sem bagagem ou noção alguma de padrões de projetos, ou ecossistema que uma linguagem de programação requer.
Quando todo mundo passou a usar,
- os gerenciadores de pacotes estavam muito crus e basicos devido a gama enorme de ambientes que o JS estava sendo usado (desktop, mobile, web, embacados...) por isso tantos
- horrível de programar e encontrar erros, e por isso surgiu o TypeScript.
- não existiam tantos pacotes para instalar, e os que existiam ou não eram conhecidos, ou as pessoas simplesmente não queriam aprender a usar-los, ou não queriam contribuir ou aceitar contribuição, por isso tantos pacotes semelhantes, e todos os semelhantes incompletos, sempre faltando uma funcionalidade
- muitos packages de pequenos devs mantidos no tempo livre
No boom das aplicações web, quando Laravel conquistou os devs de PHP, o PHP já era solido como linguagem. Antes do Laravel, já existia comunidade, frameworks estável e MUITO bem estruturado. Quando Laravel surgiu passou a usar muitos pacotes do framework Symfony, pois não precisa reinventar a roda, e a comunidade do Laravel passou a contribuir com a Symfony. Do ponto de vista de engenharia, o Laravel basicamente reuniu os melhores pacotes, usando padrões de projetos otimizou a integração com um trabalho de engenharia maravilhoso, tornou customizavel de maneira simples, configurável, ótima curva de aprendizado com uma documentação completa e de fácil compreensão.
E quando falo de PHP, desconsidero qualquer coisa que não é orientado a objetos, por exemplo, o wordpress.