Uma coisa que tenho percebido é que a maioria dos cursos introdutórios não ensinam programação, ensinam frontend. Você aprende muito mais começando com linguagens como C do que com javascript. Não quero dizer que o melhor é programar em C, mas sim que quanto menos abstrações você tiver, mais você irá aprender realmente.

Começar com HTML, CSS e JS pode ser uma vantagem por ser mais rápido de ver as coisas na tela, construir elementos, fazer aparecerem coisas do nada, mas isso ensina apenas superficialmente. Por exemplo, você sabe encontrar uma substring dentro de uma string? Você só sabe se usr alguma função pronta? Se sim, então você não entende realmente o que está sendo feito. Muitos passos são pulados, tipos primitivos, valor e referência, tipos dinâmicos, alocação de memória e etc. Se tudo parece "mágico", é porque você não entende.

Eu escrevi tudo isso apenas para mostrar que muito do hype do javascript é por conta disso, pessoas que começaram a aprender frontend ao invés de programação. Não entenda errado também, não há nada de errado em aprender a programar com linguagens de alto nível, eu mesmo comecei com Python, contudo, essas linguagens te dão a oportunidade de pular etapas e isso faz com que pegue o caminho mais fácil, que não ajuda muito a entender as coisas.

Quem debate linguagem A x linguagem B é alguém que está em início de carreira, geralmente. A melhor stack é a que paga os seus boletos e isso é irrefutável. Se você paga as suas contas com Javascript, então javascript é a melhor linguagem, se é Cobol, então será cobol. Linguagens de programação são ferramentas, quem programa é você. Se você está dependendo da sua ferramenta e acha que só ela é boa, então você não está realmente programando. Nunca vi discuções sobre qual tipo alicate é o melhor, mas já vi discuções sobre qual tipo de alicate é melhor para determinadas ocasiões. Tente cortar um cabo com um alicate de pressão e entenderá o que estou falando.

Concordo totalmente, a melhor linguagem é aquela que atende a sua necessidade, não vejo motibo de ficar criando rivalidade em linguagens. Parece até ser instinto do ser humano fazer divisão com as coisas.

Por exemplo, eu comecei a programar em C, depois parti para Java e eu gostei muito. Comecei com Frontend na faculdade e até entendo, talvez para tirar o medo de "tela preta cheia de códigos malucos", mas vemos que não é bem assim depois de um tempo. Um amigo trabalha com C# e não é fã de Java, eu gostei quase como um "primeiro amor", mas ela, como qualquer linguagem, vai ter suas limitações e tudo mais, por exemplo, herança múltipla, C# tem, Java, não.

E falou muito bem sobre falar da substring e ainda adiciono mais, saber o que acontece na Stack, Heap, pilha, herança... Tem que aprender a base mesmo, igual jogar basquete profissional sem ter o domínio pleno da bola e saber arremessar de forma efetiva.