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

Java é uma linguagem realmente díficil ?

Atualmente estou iniciando em estudos relacionados ao Java, porém há sempre diversos coméntarios dispersos em forúns e comunidades do discord sobre a complecidade e até falando mal em relação a linguagem. Gostaria do relato dos senhores.

22

Grande parte das informações que você verá na internet são fake news. A internet é maravilhosa, mas deu voz para quem não entende dos assuntos a serem tratados. Os espaços foram abertos e aconteceu como no Campo dos Sonhos. O Kevin Costner construiu e eles vieram. Boa parte das informações que encontrará na rede de computadores será falsa porque a pessoa aprendeu com informações falsas. E vai virando um telefone sem fio.

Mesmo lugares mais confiáveis, como a Wikipedia (em inglês, a pt é conhecida por ser bem menos confiável) tem erros e tem que tomar cuidado. Livros possuem erros. Um curso em uma universidade conceituada pode ensinar algo errado para alguém. Todos estão sujeitos a erros, inclusive eu, claro. Mas nada se compara aos "fóruns* de internet.

Eu imagino que comunidades Discord devem ser parecidas com outras comunidades do tipo e são piores ainda, porque é um grupo limitado de pessoas e boa parte é ruim naquilo que está falando. Há pouca criticidade no que é discutido. Em algumas das tais "comunidades" eu vejo que é incentivado o "quanto pior, melhor". Aqui mesmo vira e mexe vem alguém pregando isso. Em alguns casos ninguém contesta, nem mesmo eu. Cansa. Na maioria dos lugares não tem uma só pessoa para contestar.

Entenda, o grosso da informação que as pessoas vão emitir está errada em algum nível. Se eu me meter a falar de gastronomia terá muito erro, provavelmente qualquer outro assunto, exceto um. Sobre computação, em algumas partes, eu terei menos erros.

Java é uma linguagem complexa. Poderia ser mais, e poderia ser menos, mas é complexa. Ela foi criada para fazer sistemas chamados enterprise. Se você comparar com linguagens de script é claro que ela é muito mais complexa. Se comparar com linguagens chamadas de sistemas ela pode ser mais simples (depende do que compara).

Ela não é tão difícil de aprender, mas não é das mais fáceis. Ela não é um absurdo para dominar, mas saber de tudo demora bastante. Ela não é das mais difíceis de usar, mas não é das mais fáceis.

As pessoas falam mal de algo que não gostam. Muitas vezes do que não usam. Algumas raras pessoas fazem críticas pontuais, equilibradas, com argumentos, com contraponto. Dá trabalho fazer isso. E desagrada muita gente porque tem "muito para ler".

Ela é um pouco complexa porque ela é poderosa. O ruim seria a complexidade sem poder. O graal das linguagens seria simplicidade com poder. Em algum nível algumas conseguem, mas perdem em alguma outra coisa que não fica tão bom assim. Ela também tem bem mais robustez que outras linguagens, isso cobra um preço de complexidade.

Java serve para alguns cenários muito bem. Não tanto para outras.

Boa parte das pessoas que falam isso são fanboys de outras linguagens ou haters. Elas não estudaram o assunto, muitas vezes só reproduzem o que ouviram dizer.

Eu faço piadas com Java, faço críticas, mas reconheço seus méritos. Com tudo é assim. Os melhores programadores Java entendem isso, então muita gente acata o que eu digo, outros viram meus haters. Tem linguagens que são piores. Quando faço críticas ao PHP, que uso bastante antes de alguns terem nascido e até hoje, é raro alguém aceitar. As críticas são tão sustentadas quanto Java. Tem linguagens que são aceitas quase unanimemente. Isso diz muito sobre os usuários de cada linguagem.

Eu prefiro C# sobre Java por várias razões que não cabem aqui. C# é mais complexa e mais simples de usar. Por exemplo é menos verbosa, uma crítica que se faz ao Java, embora tenha melhorado um pouco ultimamente.

Não dá para comparar Java com C ou Python. É como comparar bolo com ração para gado.

As linguagens de script estão querendo cada vez mais se tornarem enterprise. Os grandes projetos se beneficiam mais desse tipo de linguagem. Pode ver JS, PHP, Python e outras como estão fazendo esse caminho. Então é melhor usar uma linguagem que foi pensada assim desde o dia 0, como Java ou C#. Nenhum problema, pelo contrário, quando a pessoa usa linguagem de script para fazer scripts, por isso sempre tenho uma na manga.

Java é chatinha para facilitar a vida em projetos que vão durar.

Faz sentido para você?

Espero ter ajudado.


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).

2
2

Perfeito! Já era fã das suas respostas lá no Quora, que bom que veio para cá também.

No fim, ser fanboy de linguagem de programação é apenas perda de tempo se não souber quais os pontos fortes e fracos de cada linguagem e quando usar cada uma, não aprendeu nada.

No fim do dia me dá mais prazer programar em Python, pela beleza e simplicidade do código, e me dá mais segurança programar em Java com suas mil especificações 😁

9

Sou desenvolvedor Java há alguns anos, te digo que Java não é tão difícil assim, mas não é tão "Plug and Play" quanto Python ou Javascript por exemplo.

Acho Python muito mais fácil e trás diversas facilidades que Java demorou muito pra implementar.

Essa fama do Java ser complicado acredito que seja por causa do número de especificações que existem, regrinhas que você tem que seguir, pela documentação que acho mais obscura que as documentações de outras linguagens e pelo fato de você ter que escrever muito mais pra poder fazer a mesma coisa.

Ao mesmo tempo acho o Java mais production ready. Pra muitas coisas mais complexas, justamente por existirem mil especificações e regras, o Java facilita a vida tanto quanto, ou até mais, que linguagens mais "fáceis". O Spring framework tá aí pra provar isso.

TL,DR

Java dá mais trabalho pra fazer o básico, mas dá menos trabalho pra fazer o complexo.

5

Acho que o principal role do Java é a quantidade de boilerplate mesmo que incomoda muita gente, porem pra aprender POO eu achei que o boilerplate ajudou.
PS* acho que devem até ter removido um pouco do boilerplate em uma atualização faz algum tempo atras.

3

Acho que muita gente diz que o Java é difícil por ter mais verbosidade/regras que outras linguagens. Porém eu vejo o contrário, acho que no dia a dia isso o torna mais fácil, pois essas regras e verbosidades evitam que você cometa alguns erros.

Exemplo: O Java não te deixa atribuir diferentes tipos de váriaveis numa única variável, caso tente fazer a IDE logo te avisa. Em algumas outras linguagens isso é possível, e isso pode gerar erros que só irá descobrir durante a execução.

3
2

Não é, dificil mesmo é C++. Por ter máquina virtual, não tem necessidade de gerenciamento de memória. E tem várias bibliotecas, que facilitam muito a vida de quem programa.

Porém existem linguagens mais fáceis, sim. Mas existem linguagens bem mais complexas, JAVA é uma solução para ser o intermediário entre elas.

2

o java nao é difícil.
java é uma plataforma enorme e praticamente tudo pode ser feito em java.
essa é a diferença. você so deve pensar em java se quiser seguir uma carreira de "javeiro". não dá pra pensar em aprender java por esporte. a questão é que o universo java te possibilita ter uma carreira de sucesso e como toda carreira tem os seus desafios e obstáculos.
o grande problema é que a ansiedade, a curva de aprendizado provocam um passivo ao aprendiz.
a carreira "javeiro" precisa ser guiada com mestria. geralmente, você precisa fazer um curso superior em áreas como algumas engenharias, computacionais ou ciências de dados para abrir os seis horizontes. além disso, anos de dedicação vão lhe gabaritar para entrar neste universo.
depois desta imersão, vice começa a desfrutar de habilidades super espetaculares, salários que podem chegar a 30 mil mês.
lembrando que java é considerado uma linguagem para o back end, então se prepare para não aparecer durante a jornada.
boa sorte

2

Fala Heberth, beleza? Uns tempos atrás eu tinha um certo medo de aprender Java por conta do terrorismo que a galera fazia sobre a complexidade da linguagem. Agora no segundo semestre desse ano, em uma das matérias que estou cursando na faculdade, estou aprendendo orientação a objetos com Java.

Vou te falar que me surpreendi positivamente. Já havia aprendido POO com Python e na época havia entendido os conceitos, mas a aplicabilidade só foi algo que caiu a ficha com Java. Java é mais verboso que Python por exemplo, mas por conta disso, acredito que torna o código mais legível.

É bem satisfatório ler um código e entender o que está acontecendo. E em Java de certa forma me deu essa segurança. Entender atributos e métodos, construtor de classe, classes abstratas, modificadores de acesso, herança, polimorfismo, encapsulamento, overload de métodos, sobreescrita de métodos...posso te dizer, Java é uma delicinha :D

1
1
1

Todas as linguagens orientadas a objeto são mais difíceis que linguagens de scripts estruturadas, porém trazem a vantagem da "reutilização de código".
Java é tão versátil e poderoso que você poder usar a virtual machine GraalVM e gerar bytecode Java na linguagem que você bem entender.

GraalVM

1

Comecei a estudar JAva faz alguns meses, achei um pouco complexa? Sim, porem da para perceber o potencial dessa coisa linda e acredito que vou me dar bem logo logo se eu persirtir.

0

Vou ser sucinto sobre o aspecto da verbosidade, para talvez sanar esta questão em mais alguém, que pode ver como falha por uns, mas na verdade, sendo o resultado de ser explicito !

Java parece complicado por se escrever muito. E se escreve mais, pois Java quer ser bem explicito sobre o que ocorre.

Diferente de Python, JavaScript ou Ruby, que sao bem implicitos.

Explicando pelo tão famoso printar na tela:

Em Java:

System.out.println("Olá Mundo");

Texto "Olá Mundo" é consumido por println, que printa no console e pula a linha. Este, vindo do chamado campo estático out, da classe System.

Mas podemos simplicar isso, implicitando System:

import static java.lang.System.*;

E lá depois no print:
out.println("Olá Mundo");

Ou seja, em Java se escreve mais, não por ser um erro da linguagem. Não. Se escreve mais, pois Java busca ser transparente e muito explicito do que esta ocorrendo.

Nem pior ou melhor, apenas uma caracteristica.

***Acrescentado as correções informadas pelo colega @kht.

2

import System não funciona, nem sequer compila, veja.

Pra poder fazer out.println, vc precisaria de um import estático:

import static java.lang.System.out;

Ou então:

import static java.lang.System.*;

E só pra complementar, System e out não são bibliotecas. O primeiro é uma classe, e o segundo é um campo estático desta classe.