Java

Falar mal do Java me deixa um pouco mal. Não porque ele não é uma merda, mas porque eu usei Java por bastante tempo. Eu aprendi programação com meus 12 anos mexendo em Java, querendo fazer mods pra minecraft, então sinto como se eu tivesse cuspindo no prato que eu comi. Mas não deixa de ser uma merda, e não só isso, ele ensina merda, o que me impressiona ainda mais pelo fato dessa porra ainda está sendo usada pra ensinar alunos em faculdade. Vamos começar.

Performance.

Vamos começar a falar sobre performance, porque essa porra é uma merda, e é o lado mais fácil de atacar. A performance do Java é uma merda, mas não pelo motivo que você deve estar pensando. A performance "esperada" que o Java era pra ser maior do que o PHP, mas a performance segue mais ou menos a mesma coisa. Isso não vem por causa da JVM, e sim por causa do padrão de código que é incentivado. É comum você encontrar códigos que seguem mais ou menos essa desgraça:

Merda merda = new Pessoa()
		.comer(new ComidaMilho())
		.comer(new ComidaNormal())
		.cagar();

E isso não é nada agradável para a performance, porque agora a JVM tem que ficar gerenciando todas essas alocações lixos que vocês fizeram. Só porque você tem Garbage Collector não significa que você pode fazer isso, seu porra. Toma cuidado pra não ser coletado também, lixo. E você pensa que isso é só usuário fazendo merda, mas não, você pode encontrar esses códigos na própria API! Justamente porque esse tipo de merda são incentivados!

Frankenstein

Java é um dos que eu gosto de chamar de "linguagem frankenstein" ou "linguagem projeto-de-chad". Tenta atirar pra tudo quanto é canto pra chamar a atenção, pra ser bom, pra atingir qualquer porra de objetivo que o autor tinha na cabeça, e erra todas elas. Orientação a objetos por si só é um lixo, como diria o Rob Pike, "são os algarismos romanos da computação", e ainda assim o Java consegue piorar, tentando misturar todos outros estilos e paradigmas. Tentaram fazer um puxadinho pra programação funcional no Java 8 e cagaram ainda mais, e isso também leva a programadores fazerem merda, principalmente os mais iniciantes. Se vocês acham que o design do Java não é uma merda, eu sugiro vocês tentarem fazer qualquer tipo de projeto usando um editor de texto como o Notepad++ ou VIM.

Complexidade

A JVM por si só é um programa bem complexo e pesado, o que me faz já ter nojo. Ele apenas serve pra dificultar acesso a recursos de hardware, e não me vem dizer que isso é pra segurança, como já falaram pra mim.