Antes de mais nada entenda que sou uma pessoa muito realista, isso não agrada a todos.
Já ouviu falar que linguagens são só ferramentas? De uma certa é verdade. E o mais importante disso é que se elas não são tão importantes assim, e que o que importa mesmo é habilidade de programar, de achar soluções, em geral com a ferramenta mais adequada para a tarefa, é entender a computação, a engenharia de software, os fundamentos da programação, até para poder fazer escolhas sobre a melhor linguagem. Eu sei que todo mundo quer ver resultado logo e começar aprendendo a linguagem sem preocupações com outros assuntos tende ser mais proveitoso para a maioria. Mas se a pessoa seguir assim haverá um custo depois.
Outro ponto que quero falar antes de entrar no assunto principal é que as linguagens podem fazer qualquer coisa seguindo a teoria de que elas são Turing Complete. Ao mesmo tempo que algumas são melhores do que outras para certas coisas, muitas vezes pelo seu ecossistema e cultura, mas do que a linguagem em si. É verdade que quase todos os problemas podem ser resolvidos com quase todas as linguagens principais (e são dezenas). Mas também é verdade que o resultado nem sempre será bom. E também é verdade que nem sempre faz tanta diferença assim. Por isso muita escolha ruim acaba não sendo percebida, porque é ruim, mas um leigo ou um programador inexperiente não percebe. E para muitos isso é suficiente.
Tem linguagens que acabam facilitando ou dificultando a entrega de mais eficiência. tem linguagens que foram voltadas mais para um nicho, com bibliotecas melhores para aquilo. Tem linguagens que você acha mais bibliotecas para algumas tarefas, e tem algumas que você acha mais tutoriais e ajuda em certas áreas.
Tem linguagem que você entrega o código fonte, outra tem isso mais protegido. Assim como podem permitir desenvolver mais rápido do outras. Mas as que costumam permitir desenvolver mais rápido pode ser mais difícil dar manutenção depois. Algumas são melhores para sistemas pequenos e outras para sistemas grandes. Algumas procuram entregar mais robustez por padrão, outras deixam isso para o programador trabalhar.
Para quem não tem os fundamentos de forma razoavelmente sólida, isso é tudo mais ou menos igual. Ou é mais difícil enxergar onde é tão diferente assim, quais as consequências dessa escolha. Mesmo com bons fundamentos precisa de experiência, qualitativa para tomar melhores decisões de escolha.
Em muitos casos a pessoa vai escolher por gosto, e quase sempre será a linguagem que ela pegou gosto em primeiro lugar. E isso pode ser um problema porque ela faz isso em um momento que ainda não é capaz de fazer boa escolha.
E é pior, porque se sempre teve alguma advocacia para as pessoas escolherem a linguagem que cada um acha melhor, todo mundo quer puxar a sardinha para seu lado, com as redes sociais isso se tornou muito forte, e as bolhas vão sendo criadas. Então quem conseguir passar a mensagem melhor vai conseguir dissuadir você a ir para o lado de uma certa linguagem. Ninguém está fazendo uma escolha pensando no seu sucesso, "todo mundo" quer você para aumentar as fileiras da linguagem que ela gosta.
Em alguns casos um livro faz isso.
Sabe quando alguém quer que você goste das mesmas músicas que ela gosta?
Escolher linguagem de programação não é o mesmo que escolher música preferida.
Não sei se sua pesquisa tem fundamento, ou se importa. Vou falar abaixo de linguagem que praticamente não tem vaga anunciada e é o que vive me aparecendo. O mercado não é como as pessoas enxergam ele. E se tiver muitas vagas e muitos concorrentes indo atrás delas? E se eles forem mais experientes que você? E se eles aceitarem um valor mais baixo para conseguir a vaga?
Java não é ultrapassada. Ou é, mas todas são em alguma medida. Raras as muito novas, em geral menos populares. Não quero defendê-la aqui, só tirar uma premissa falsa. Um motivo errado para escolhê-la ou não. Eu não a escolheria, mas muito menos escolheria JS.
Aqui tem muita gente fã de JS, então espere um viés para esse lado.
Java não roda em navegadores, né? Tem algum projeto para isso, mas não sei como está e não sei se o resultado será bom, se já não foi tanto com outras...
Mas será que ser full stack é tão bom assim? Tem que pensar nisso também. Ou ser, mas precisa ser só com uma linguagem? Não pode ser a melhor para cada tarefa? Ou vai só de martelo porque dá para fazer de conta que todos os problemas são pregos?
Já parou pra pensar que muitas pessoas que te reponderão estão mais perdido que você? E você não sabe disso. Principalmente se ela passar confiança.
Minhas linguagens
Sabe como escolhi as linguagens que eu trabalho mais? Um é o mercado, é o que aparece coisas para mim. Isso é importante. E eu não ligo que uma delas "ninguém" usa, ela é boa para o que eu mais trabalho, eu gosto, e paga as contas de forma honesta. E outras duas é o que funciona melhor para alguns casos que posso escolher, uma para fazer sites simples, e outros para qualquer aplicação que eu me orgulho mais.
Mas como cheguei nessas duas? A outra foi das primeiras que tive contato, me tornei especialista e com pouca concorrência me dou bem com ela. Por que não escolhi outras?
Uma delas é fácil porque ela já vem com um framework embutido na linguagem que facilita muito fazer sites simples, não tem concorrentes nesse sentido. Tem gente que usa para outras coisas, colocam outro framework em cima do que já existe, eu não consigo entender isso, mas não importa, eu uso do jeito que parece mais adequado. E ela é muito popular nessa área, o que ajuda também.
Eu gosto muito de linguagens, estudo muito o assunto, e escolhi a outra porque foi a que me entregou o melhor dos mundos. Eficiência, robustez, produtividade, capacidade de entregar qualquer tipo de software, embora nem todos tão bem (não é boa para sistemas operacionais, ainda não é uma maravilha rodando em um browser, mas está melhorando), sintaxe e semântica agradável para fazer grandes softwares, mas também vai bem em menores, me dá bastante controle sobre o ambiente, é praticamente um C++ com mais robustez e produtividade, e bibliotecas e ferramentas aos montes pra tudo o que pensar, além de ser bem popular.
Eu escolhi uma entre todas as possíveis. Sim, eu estudei todas, eu poderia ter escolhido qualquer uma, não escolhi entre 3 ou 4 que aparecerem na minha frente. Não tenho compromisso com qualquer uma. Se aparecer outra melhor eu posso trocar (não farei por uma questão pessoal, mas há pouco tempo eu faria), mas precisa ser boa mesmo, melhor em todos os sentidos, porque trocar nunca é tão simples, a não ser no começo de carreira. Até pode ser se tudo o que a pessoa faz é descartável.
Sim, eu não quis dizer quais são as linguagens que uso para não influenciar mesmo e não por novas na sua frente.
E eu troquei de linguagens algumas vezes, o mercado muda, aparecem opções melhores. Minha primeira linguagem foi BASIC, o mais simples possível para rodar em um computador de 2KB de memória.
Se fosse o que eu trabalho eu escolheria C com maior orgulho, essa linguagem cinquantona "ultrapassada" que não tem vagas anunciadas por aí. Eu me prepararia melhor para ela e mandaria bala.
Conclusão
Resumo da história, só você pode estudar bem e escolher o caminho melhor. Se ouvir outras pessoas, uma delas estaria tomando a decisão por você se ela conseguir te dar a melhor mensagem. Pensa bem se isso é bom para você. Ninguém vai resolver seu "dilema". Você vai escolher a linguagem do primeiro que falar algo que te agrade? O que é bom para você?
Lembre-se que a escolha gerará uma consequência boa ou ruim, e só você a sofrerá. Tenho certeza que todo mundo aqui quer o seu bem, mas todo mundo vai dizer algo que ninguém sabe se é bom para você ou não. Nem você sabe.
Tá cheio de gente se dando bem com Java, ou com JavaScript, ou Python, ou outras que você não mencionou. Muitas vezes até se a pessoa não for muito boa nelas. Se você for razoável entregando resultado se dará bem em qualquer uma delas. Em alguma coisa mais do que outra, mas quem pode dizer o que acontecerá?
Gosto ajuda a pessoa a se dar bem. Na linguagem que eu escolhi sem olhar nada de mercado ou questão política eu fui pelo gosto. Eu gosto de linguagem que entrega o melhor possível, não gosto apenas do "suficiente".
Se a sua decisão não for bem fundamentada, não importa muito qual é a escolha, não será a melhor possível e não será uma tão ruim que te causará grande problema. A falta de fundamentação já é um problema.
Só posso desejar boa sorte e que consiga fazer o trabalho árduo para alcançar seus objetivos, e que não ache que tem atalho, porque a sorte terá que ser grande.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).
Só avisando que agora o sistema pune quem não recebe likes no que escreve, portanto se ficar em 1 aqui não estranhe se eu apagá-lo. Lamento, mas é necessário para não ser prejudicado. Se não teve, é porque ninguém gostou, então não fará diferença mesmo. Se acha que é interessante, considere dar like aqui.