15 pontos por regentag 2024-11-06 | 62 comentários | Compartilhar no WhatsApp

“Existem dois tipos de linguagens de programação: aquelas das quais as pessoas reclamam e aquelas que ninguém usa.” — Bjarne Stroustrup.

“As pessoas que criticam e reclamam de Java geralmente são jovens e parecem ter sido expostas muito mais a JavaScript do que a qualquer outra coisa. Em comparação com JS, Java pode parecer um pouco mais pesado e restritivo. Há boilerplate por toda parte, além de um sistema de tipos aplicado rigidamente pelo compilador. Mas, se eu tivesse escolha, escolheria uma base de código Java não ideal em vez de JS. Sem a menor dúvida.”

“Só depois de adquirir experiência real lidando com código espalhado por dezenas ou centenas de arquivos é que você começa a perceber que as chamadas ‘restrições’ do Java, na verdade, são mecanismos de proteção para impedir que você dê um tiro no próprio pé.”

“Descobrir Java e voltar a usar a linguagem foi quase uma revelação. Percebi que amo Java e seu ecossistema. Então resolvi anotar algumas das coisas de que mais gosto no ecossistema Java. Portanto, se alguém falar mal de Java, aqui estão 25 razões para mostrar por que essa pessoa está errada.”

  1. Ecossistema maduro
  2. WRITE ONCE, RUN EVERYWHERE
  3. Compatibilidade com versões anteriores (backward compatibility)
  4. Linguagem fortemente tipada
  5. Ciclo de lançamentos rápido, com melhorias contínuas
  6. Bons IDEs
  7. Suporte a Native Image do GraalVM
  8. Bibliotecas e frameworks open source
  9. Multithreading
  10. Orientação a objetos madura
  11. Gerenciamento de memória e coleta de lixo
  12. Observabilidade e monitoramento
  13. Suporte à programação funcional
  14. Documentação rica
  15. Ferramentas de build e gerenciamento de dependências
  16. Recursos robustos de teste
  17. Comunidade enorme
  18. Anotações
  19. Recursos de segurança
  20. Conjunto rico de APIs
  21. Desempenho
  22. Concorrência estruturada
  23. Threads virtuais
  24. Pattern matching para a instrução switch
  25. Templates de string

62 comentários

 
suckjava 2025-09-24

Todas as vantagens atribuídas ao Java na verdade parecem ser pontos em que outras linguagens são muito melhores do que ele.

 
sungwoo 2024-11-14

Ninguém mencionou o Spring.
Não tenho reclamações sobre a linguagem Java em si,
mas a realidade local de ter que aprender Spring me pareceu um pouco sufocante, então ela acabou não me parecendo tão atraente.

 
regentag 2024-11-14

Java é boa, mas o Spring é... horrível :(

 
nullvana 2024-11-08

Os 25 não têm poder de diferenciação nenhum. Independentemente do respeito, são hienas num banquete de legado.

 
fau1ty 2024-11-07

Embora apresentem até 25 motivos para dizer que ele ainda é popular em 2024,
parece que existem linguagens suficientes para substituí-lo, mesmo que não seja necessariamente Java...

 
lazyhack 2024-11-07

O que é popular é a JVM.

 
sunrabbit 2024-11-07

A maioria dos motivos, quando comparados ao ecossistema das outras linguagens modernas,
não são exatamente pontos tão fortes, e parece que o autor escreveu o texto sem separar Spring e Java.

 
progdesigner 2024-11-07

É natural preferir Java, porque a linguagem conta com um ecossistema de desenvolvimento muito bem estruturado.

Da mesma forma, como você só consegue ter desempenho trabalhando dentro desse ecossistema, acaba querendo trabalhar apenas nele, e quando pedem outro ambiente isso também gera certa resistência.

Mas, daqui para frente, parece que a IA vai programar cada vez melhor nessas linguagens, e a capacidade de adaptação para sobreviver em ambientes diversos, e não só no seu ambiente confortável, será mais necessária do que nunca.

Nesse sentido, a adaptabilidade a várias linguagens agora parece ser não uma opção, mas uma necessidade.

 
love7peace 2024-11-06

Se eu tivesse que criar um web app de entries, provavelmente usaria Java sem pensar. Só o item 1 já basta... Para desenvolvimento simples e rápido, acho que Python é uma boa. JS... sei lá, eu acho tão enrolado que me irrita.

 
newmanjoo 2024-11-06

Se fosse para usar Java, eu usaria Kotlin; e, mais do que Java como linguagem, considero que a família de linguagens .NET acompanha melhor a evolução do Kotlin. Java talvez devesse continuar como linguagem de manutenção para servidores de órgãos públicos que foram construídos em Java no passado; na Coreia, muitos CEOs tendem a insistir em Java porque estão familiarizados com a palavra “Java” por tê-la visto em propagandas. Experimente Kotlin e .NET antes de considerar Java.

 
tsboard 2024-11-06

Pessoal, já que surgiu o assunto de Java... o que vocês acham de Go? Na verdade eu gosto mais de Kotlin do que de Java, mas tive frustrações demais com Gradle e acabei me estabelecendo no Go. Pela pouca experiência que tive usando, fiquei pensando: será que em qualquer lugar onde Java é necessário, Go também não daria conta?

No caso de JS/TS, eu também gosto, mas ainda assim acho meio forçado colocar na mesma linha e comparar com Java. De qualquer forma, continua existindo a limitação de ser single-thread, e embora digam que dá para fazer multiprocessamento com pm2 e coisas do tipo, Java também tem virtual thread muito bem implementada, e sinceramente acho isso melhor. Claro, meu raciocínio foi seguindo por esse caminho e, quando vi goroutines, acabei me fixando no Go... hahaha;;

Acho que o ideal é usar cada linguagem no lugar certo, conforme a necessidade. Mesmo agora, em 2024, eu continuo gostando muito de PHP, e também tenho carinho por JS e Java (Kotlin), ainda que não tanto quanto por Go. Linguagem é ferramenta, então desde que seja usada corretamente para o propósito certo, não é isso que importa? Estou deixando este comentário por pensar assim.

 
shortstories 2024-11-07

Acho que agora realmente chegou a um nível bem utilizável. Eu também trabalho só com Go na empresa.
Na época em que usávamos godep e glide, bastava uma dependência sair do lugar para eu passar o dia inteiro tentando encaixar tudo de novo, pensando se aquilo era mesmo uma linguagem ou algo ali na beirada de ser uma linguagem.. 😂

 
sunrabbit 2024-11-07

Mesmo com as limitações de single-thread, nesta era de orquestração em que você encapsula em contêineres e faz com que cada pod não consuma CPU demais, eu só consigo pensar: essa limitação é realmente tão grande assim?

A não ser que, como antigamente, em vez de subir vários contêineres em um único servidor, esse contêiner em específico acabasse consumindo muita CPU.

Na maioria dos casos de servidores web, como eles não consomem muita CPU e o volume de throughput de I/O é alto, acho que Node também pode ser tratado como uma das opções.

Claro, se for um domínio que exige muito CPU, aí dá para considerar outra linguagem ou até chamar código nativo via napi.

 
savvykang 2024-11-06

Acho que é uma linguagem útil para trabalho assíncrono, porque tem a característica de abstrair bem esse tipo de tarefa com goroutines. O código assíncrono em Rust ou Python me parece um caso de se pensar demais. Acho que tende a ter uma carga cognitiva alta, tanto para escrever quanto para ler.

 
regentag 2024-11-06

Eu só usei Go antes da inclusão de generics, mas acho que é uma ótima linguagem. No começo as ferramentas eram realmente bem fracas, mas evoluíram bastante.

A sintaxe é meio bruta, mas por isso mesmo é fácil de aprender.

 
seunghaekim 2024-11-06

Não briguem....

 
moderator 2024-11-06

A discussão está ficando acalorada.
Se você tiver alguma contestação, por favor escreva apenas esse conteúdo.
Comentários que violavam as regras de uso do site foram removidos.
Além disso, informamos que foram bloqueadas contas que repetidamente realizaram atividades em desacordo com as regras de uso.
Pedimos uma discussão saudável.

 
[Este comentário foi ocultado.]
 
regentag 2024-11-06

O Java 1.8 é realmente uma versão excelente!

 
roxie 2024-11-06

Acho que write once run everywhere já é um slogan que talvez esteja na hora de aposentar... haha

 
regentag 2024-11-06

Mas é Java, né! kkk

 
secret3056 2024-11-06

Programar Java no IDEA é uma alegria, mas se não fosse o IDEA eu teria sido infeliz. (E fui mesmo.)

 
tested 2024-11-06

No mercado doméstico, há também a vantagem nas contratações e o framework de governo eletrônico, a ponto de surgir a expressão de que o país é uma “república do Java”, então há muitos desenvolvedores Java.
Muitas empresas também migram de outras linguagens para Java e, pela minha experiência, alguns? desenvolvedores Java parecem querer trabalhar só com Java.
Dizem que sistemas existentes em outras linguagens são problemáticos e que é preciso migrar para Java. Mas também não querem usar Kotlin.
Parecia haver uma certa resistência a aprender algo novo. Uma sensação de “se dá para fazer tudo em Java, por quê?”

 
[Este comentário foi ocultado.]
 
dyumadel 2024-11-06

Quem trabalha com SI não costuma usar genéricos, não é?

 
mse9000 2024-11-08

Parece que esse é justamente o problema... kkk

 
everyharu 2024-11-06

Nesse ponto, parece que Java é uma religião.
As pessoas que criticam e reclamam de Java geralmente são jovens e parecem ter tido mais contato com JavaScript do que com qualquer outra coisa.
Se invertermos essa frase, também dá para dizer que, justamente por terem usado js, essas pessoas concluíram pela experiência que java não é tão bom assim.
Por que não reconhecem que cada um tem suas vantagens e desvantagens e ficam só dizendo que java é melhor...
É parecido com quem nunca usou document db e, independentemente dessas características, só diz que sql é melhor.

Parece que deixam de lado o fato de que já existia um cenário em que java era muito usado, e que muitos desenvolvedores mais antigos só sabem java e não querem mudar, então não conseguem trocar. Do ponto de vista atual, acho que java quase não tem mais pontos fortes próprios.

 
cosine20 2024-11-06

Pela minha longa experiência, acho que Python e JS têm uma proporção maior de fanáticos.

 
kbumsik 2024-11-06

Acho que isso pode dar a sensação de haver argumentos mais enfáticos porque a pessoa provavelmente está numa posição em que precisa defender JS/Python em vez da linguagem Java.

Pessoalmente, já vi algumas pessoas que nem conseguem considerar qualquer outra linguagem além de Java. Já quem trabalhava com outras linguagens, na maioria dos casos, parecia ter disposição para usar uma linguagem diferente dependendo da situação.

 
cosine20 2024-11-06

Consigo imaginar que isso possa acontecer se a primeira linguagem da pessoa for Java, mas nunca vi um caso assim ao meu redor, então é difícil visualizar bem.

No meu caso também, entrei na universidade e a primeira linguagem que aprendi nas aulas foi C++, e conforme fui avançando nos semestres acabei tendo contato naturalmente com outras linguagens, então não encaro aprender uma linguagem nova como algo tão pesado... na verdade, a sintaxe básica (declaração de variáveis, estruturas de controle, funções etc.) é parecida em quase todas.

Nesses casos, talvez a pessoa tenha aprendido a linguagem de forma estreita demais no começo, e por isso o repertório acabou ficando limitado. E acho que vi isso com mais frequência em pessoas que tiveram Python como primeira linguagem com foco em deep learning ou estatística matemática. Eu também estou falando por experiência própria, então provavelmente os dois lados têm razão.

 
moderato 2024-11-06

Também tive uma experiência parecida, então penso o mesmo.

 
hobbycoder 2024-11-06

Quem gosta de Python não fica dizendo que Python é uma linguagem boa. No caso de JS também não tem gente insistindo que a linguagem em si é boa. Tanto Python quanto JS só têm um ecossistema bom para desenvolver em áreas específicas. Só o pessoal de Java passa essa sensação de insistir que é bom de qualquer jeito...

 
aer0700 2024-11-07

JS é motivo de piada até entre os próprios desenvolvedores de JS. Isso é uma linguagem mesmo... se não fosse o TS T_T

 
roxie 2024-11-06

Se eu fosse defender o Java, diria que, por outro lado, ele acaba virando alvo de piada com frequência por vários motivos. Meio que ocupa a posição daquele tio do bairro que todo mundo conhece...?

 
kandk 2024-11-06

Hoje em dia, quando pesquiso no Google sobre Java,
chove post de blog em coreano com exatamente o mesmo conteúdo ensinado em cursos,
e isso me irrita porque fica difícil encontrar referências realmente decentes.

 
regentag 2024-11-06

A busca do Google piorou bastante...

 
jjpark78 2024-11-06

18, 25, 20, 10, 8, 6, 5, 3, 2, 1 etc. não são exclusividade do Java. Comparação equivocada

 
regentag 2024-11-06

Vendo agora, o Java também tem esses recursos e não há motivo para ser criticado; não parece que a ideia seja usar Java só porque isso só funciona nele.

 
lazydonkey456 2024-11-06

Na verdade, enquanto lia, só conseguia pensar: hum... será que .NET não é melhor?

 
regentag 2024-11-06

Eu também gosto de C#, mas em ambientes que não sejam Windows, fico na dúvida se faz sentido usá-lo.

 
lazydonkey456 2024-11-07

É o mesmo conteúdo do comentário acima. Isso acabou há muito, muito tempo.
A decisão tardia da MS realmente acabou distorcendo assim a percepção das pessoas.

 
rabbitcarrot 2024-11-06

Se você só faz aplicativos para Windows, há muitas vantagens no ecossistema da MS, o que é bom, mas no Linux ou no macOS eu acho que não há nada melhor do que Java. A MS passou a dar suporte tardiamente, mas não há um motivo real para usar isso. O momento não é bom.

 
lazydonkey456 2024-11-07

Não é mais o .NET da época do .NET Framework, então por que limitá-lo a aplicativos de Windows?
Aliás, o motor de jogos baseado em .NET já está rodando nos celulares que vocês têm nas mãos;

 
leetleet 2024-11-06

222

 
bichi 2024-11-06

333

 
gigisusu8888 2024-11-06

Não é uma crítica ao Java, mas o motivo de o Java ser irritante é que, de forma particularmente frequente, só desenvolvedores Java menosprezam desenvolvedores de outras linguagens, ficam comparando tudo e demonstram um estranho orgulho de Java. Eu gosto de Java, mas não entendo por que fazem isso. Cada linguagem tem sua própria filosofia, seus prós e contras e um ecossistema diferente; só isso. Mas aí exibem esse orgulho esquisito de Java de forma repentina e acabam causando antipatia.

 
fooandbar 2024-11-06

Parece que são necessários materiais para apresentar como base do orgulho que desenvolvedores Java têm do Java. Se isso for difícil de apresentar, considero que essa é uma afirmação difícil de aceitar.

 
regentag 2024-11-06

Parece que sempre existe esse tipo de pessoa em qualquer linguagem ou ferramenta. Acho que, na época em que foi lançada, Java era uma linguagem mais descolada que C/C++ e, ao mesmo tempo, passou a ser amplamente usada no mercado corporativo, o que ampliou muito a base de desenvolvedores e talvez a faça se destacar mais.

E hoje em dia, me parece que os desenvolvedores de Rust estão assumindo esse papel.

 
puersum 2024-11-06

Surpreendentemente, o motivo de Java ter se tornado mainstream foi porque gastaram uma fortuna em marketing kkkkk
https://www.youtube.com/watch?v=NVuTBL09Dn4

 
puersum 2024-11-06

Há um vídeo no YouTube sobre como uma linguagem se torna mainstream, e acho que vocês também vão achar interessante!
https://www.youtube.com/watch?v=QyJZzq0v7Z4

 
limc132 2024-11-06

Você deveria ficar irritado com os desenvolvedores Java, mas acaba descontando no Java...

 
gigisusu8888 2024-11-06

Isso é questão da sua compreensão de leitura...

 
limc132 2024-11-06

Alguém já respondeu por mim, então não precisei responder.

 
gigisusu8888 2024-11-06

Não é bem assim, né?

 
secret3056 2024-11-06

o motivo pelo qual Java é irritante

 
gigisusu8888 2024-11-06

Parece que nem sabe o que é letramento?

 
kayws426 2024-11-06

De repente, se você pensou no Eclipse feito em Java e no VSCode feito em JavaScript (TypeScript)... seria uma comparação equivocada? Claro, o Eclipse tem mais funcionalidades.

 
koxel 2024-11-06

É uma comparação equivocada..
Tem que olhar a época em que surgiu.
Quando o Eclipse apareceu, por um bom tempo ele teve um status parecido com o do VSCode hoje.
Eu também acho o Eclipse realmente desconfortável de usar, então não uso,
mas naquela época a única opção minimamente viável era o Eclipse.

 
[Este comentário foi ocultado.]
 
[Este comentário foi ocultado.]
 
kandk 2024-11-06

O ponto forte do JavaScript é que o mecanismo V8 é mantido pelo Google.
Java abandonado..

 
lazydonkey456 2024-11-06

O backend de um app em Electron é JavaScript mesmo, certo... O processo principal e o processo do renderizador rodam separadamente, mas os dois funcionam com código JavaScript.

Da mesma forma, a JVM no fim das contas também não é um runtime implementado de forma nativa?