Executando verificação de segurança...
5

[Dúvida] Versoes do Java e o medo de "errar"

Olá a todos, duas dúvidas que gostaria de debater e pedir ajuda de vocês;
1 - Sou dev a algum tempo com PHP e Nodejs, e nessas duas linguagens sempre temos, como em muitas outras, versões que são lançadas periódicamente e vejo que sao melhorias a qual quem trabalha com php 5 por exemplo, vai ver o php 8 e pode pensar " ah de boa, o que incrementou é isso...".Nada muito a nivel de um breaking change. daí vem meu questionamento, isso vale para o Java? eu saber/aprender o java 8 e depois ir trabalhar com o 12, por exemplo, haverá uma mudança brusca? ou posso considerar a mesma situaçãode um nodejs ou php que vem versões novas mas é algo que nao quebre o nosso fluxo de entendimento da linguagem?

2 - As vezes fico pensando qual caminho seguir Go, Java, Rust, C# etc... e parece mais um medo ou receio de estar pegando uma linguagem que nao vale mais a pena aprender e perder tempo... se alguem ja passou por isso, como clarear mais as ideias e aprender de vez?

Carregando publicação patrocinada...
6

Sobre sua primeira pergunta, em Java é igual à situação que vc descreveu com PHP.

Se vc aprender Java 8 e for trabalhar com Java 12 não vai se sentir perdido.

Alguns exemplos:

  • Do mesmo jeito que o PHP 8 trouxe o match, no Java 12+ temos as switch expressions.
  • No PHP 8 temos Constructor property promotion, no Java 14+ temos os records.

E por aí vai. Também haverão novos métodos adicionados à API bem como métodos que se tornaram obsoletos.

Ou seja, haverão mudanças, mas nada que faça o Java 21 parecer uma linguagem completamente nova para alguém vindo da versão 8.

2
3

Sobre sua segunda pergunta, acredito que não tem resposta pra isso. E não é só vc, todos passamos por isso.

Não esquenta muito a cabeça com essa "competição" entre plataformas. Existem muitas similaridades entre elas. Com o tempo, vc vai perceber que será capaz de migrar de uma pra outra se for necessário.

Uma sugestão: provavelmente vc passará a maior parte do tempo programando em X, então em paralelo dedique um tempinho (de forma dispersa e relaxada) pra entender uma linguagem que seja "estranha" pra vc e atenda requisitos que a linguagem X não consiga ou tenha dificuldade em atender. Por exemplo: Java <-> Go ou PHP <-> Rust.

2
1