Estou começando a estudar java para web, mas algumas pessoas falam que é uma linguagem pouco otimizada e de baixo desempenho e recomendam outra como Python e PHP, gostaria de saber a opiniões de vocês quanto a isso, pois não quero focar muito em aprender uma linguagem de programação que deprecie cada dia mais.
Au contraire, my friend. Uma aplicação Java Web pode ser muito mais “performática” (não gosto dessa palavra, mas não lembro de outro termo agora) do que muitas outras linguagens por aí. Uma das principais vantagens da JVM é a questão da otimização sob-demanda, que otimiza o código durante sua execução onde é necessário.
Essa história de que Java é lento é bem velha. Realmente, no começo, a JVM era um lixo. Hoje as coisas estão bem diferentes.
O grande “problema” do Java é sua sintaxe é extremamente verbosa. Alguns gostam disso (eu, inclusive) por causa dos benefícios (o compilador pega MUITO erro), mas é notavelmente um atraso em relação à produtividade. Por isso linguagens com essa cara de script ganham fama entre os jovens e “startupeiros”.
O Java vai ficar muito tempo por aqui ainda, não se preocupe. Vou repetir o clichê: aprenda os fundamentos e a linguagem será apenas uma ferramenta facilmente substituível.
Na minha opinião eu recomendo você saber no mínimo o básico para utilização de cada uma, tanto o Java como também Python, PHP, Ruby, Perl e etc, por exemplo, suponhamos que você trabalhe hoje com Java na web, nesse caso dê foco ao Java, mas não esqueça de ir aprendendo as outras linguagens com estudos e pequenos projetos (Uma de cada vez sendo levada juntamente com Java conforme o exemplo que citei), pois existem diversas oportunidades para todas as linguagens no mercado, e desta forma você sempre estará atualizado com as tecnologias disponíveis no mercado.
Obs: Concordo com o @lvbarbosa
Fico mais tranquilo em ler isso, pois estou começando e tenho receio de “perder tempo” em algo que não vá me trazer bons frutos, sabe aquela mania de tentar fazer o melhor e otimizar ao maximo meu aprendizado enquanto estou começando.
Depende do seu cenário. Se for algo independente, dá uma avaliada em Go/golang.
Boa noite Leo,
acho que não existe isso =P Na verdade isso é meio que um mito, que é bem comum, mas é papo de desenvolvedor kkkk
Vou te dar um spoiler: NÃO EXISTE A MELHOR LINGUAGEM PRA NADA.
Cada linguagem vai te dar um benefício em troca de algo. Performance? Eu me preocuparia mais com coisas, como: “A curva de aprendizado é baixa?”, “Tem uma boa comunidade e suporte?”, “Quais problemas posso resolver com ela?”
1 - Curva de aprendizado.
Se você está na faculdade (que não faz diferença, mas se estiver) e estiver aprendendo algoritmos, estrutura de dados, essas coisas, continue e estude o que puder sobre isso - vai fazer falta depois. Se não estiver na faculdade, começa a ler alguma coisa sobre isso. Porque isso? Basicamente, todas as linguagens atuam sobre a mesma forma baseando-se em estruturas simples: String, Int, For loop, While, Condições, e por aí vai. Acontece que cada uma implementa algumas coisas a seu modo, outras nem tanto. Algumas preferem que você use abstrações (frameworks) ou nem tanto. Outras acabam dependendo de linguagens terceiras, como por exemplo o PHP, que no fim das contas casa muito bem com Javascript (Desenvolvimento pra Web), que diferente, do próprio Javascript que tem um ecossistema próprio de desenvolvimento, tanto back quanto frontend, onde te permite fazer aplicações simples a aplicações HTML5, que chamam de Rich Internet Applications.
2 - Tem uma boa comunidade e suporte?
Acho isso o ponto mais importante. A linguagem te introduz bem a comunidade? São receptivos, é fácil de achar material. Acredite, isso muda muito de comunidade para comunidade. Então, até isso acho interessante haver uma certa compatibilidade. Muita gente fala que Ruby é linguagem de hypster (agora dizem isso do Go), mas enfim, meio que cria tribos a cerca de comunidades. Enfim, acho que isso é interessante, porque um dia você vai olhar pra trás e ver que gastou 15 anos usando a mesma linguagem, vendo as mesmas pessoas, falando sobre a mesma coisa. Pense nisso
3 - Quais problemas posso resolver com ela?
Todas as linguagens tem capacidade para resolver 90% dos problemas atuais. Tem algumas que não tem como, mas de alguma forma ainda conseguem portá-la para a web. Exemplo, os bancos, que ainda rodam Cobol, mas tem aplicativos que consomem esse dados. Acho esse quesito importante porque “todas as linguagens são iguais, mas umas mais iguais as outras”. Então, você consegue fazer sim um aplicação performática - cof, cof - usando Java. Consegue criar um código estável e manutenível com PHP - auehuhaeuheauhaeu - ou consegue criar aplicações em JS com poucas libs -
A real é que não existe a melhor linguagem. Tem aquela que você gosta, se sente a vontade para usar. Se estiver indo pelo mercado, vai na https://www.tiobe.com/tiobe-index/, onde tu vai consegue algumas métricas para tirar dúvidas sobre uso e popularidade.
Enfim, isso é um papo longo, mas acho que depois de um certo tempo programando, hoje, eu gostaria de poder conseguir programar com o maior número de linguagens possíveis, pois sei que cada uma tem seu propósito e são boas naquilo. Acho que o mais importante é ter sabedoria e conhecimento o suficiente pra saber o que aplicar e quando aplicar.
Pra finalizar, uma frase bem comum. “Se você só usa um martelo; qualquer parafuso é prego”
Obrigado pelas dicas, me animei agora, ainda mais com essa frase que usou para finalizar o texto. Vou tentar conter minha anciedade de aprender algo que me traga o maximo de beneficio.