Implicancia/Hate JSF

Boa tarde, eu gostaria de saber os motivos para tanto hate com o JSF, sabemos que a versão 1 foi bem ruim mesmo, mas a versão 2 melhorou bastante.

Só programador Java ainda insiste com essa ideia de “component based”. Lá no inicio dos anos 2000 isso era forte por causa do Web Forms da plataforma .NET, que migrava programadores desktop imediatamente para web, sem exigir grandes conhecimentos de Http, Html, Js e Css. A Sun copiou bem a mesma ideia. Mas faz quase uma década que os próprios programadores .Net deixaram de adotar isso em novos projetos, por ser engessado, possuir ciclo de vida pesado com excesso de abstração e gerar muito lixo no front-end.

O que o @javaflex expôs é uma das razões.
A herança de pesado, complexo, lento, etc da versão 1.x é outra.
A principal é que a maioria dos programadores que vieram a trabalhar com o mesmo jamais foram além para entender o ciclo de vida do JSF (que, sim, é complexo), aprender como funciona realmente.
Grande parte disso é culpa da própria Sun/Oracle, que não entenderam o mercado, não perceberam que se elegessem algo como o Struts 2 ou o próprio Spring MVC (que são action based), teriam sido mais assertivos e estariam mais coesos com o mercado.

Controlar o HTML dos componentes tbm não é muito trivial, nada que conhecimento não resolva, mas é um caminho a parte…

Lentidão de sempre da Sun/Oracle, que perdem mais tempo com especificações e abstrações megalomaniacas do que patrocinar diretamente implementações enxutas.

Quando o WebForms do .NET surgiu, atendia as necessidades de mercado da época, em que se exigia muito pouco, bastava o sistema ser web que já era novidade, melhor ainda com a produtividade de uma solução RAD totalmente em C# sem se preocupar com o temido java script. Quando JSF ficou decente no 2.x já era tarde demais, este tipo se solução já se tornaria engessado para os novos tempos. Além da Sun, a própria comunidade Java levou muito tempo alimentando e defendendo o uso dessa solução a cada xface que surgia. Enquanto isso a MS copiava o Spring MVC e Rails, onde ASP.NET MVC passou a ser largamente usado, hoje junto a Web.Api.

E ainda continua com tal lentidão.
Embora a versão 7 da JEE (referente ao Java 8) tenha uma série de novidades, elas podem ser consideradas velhidades, pois, já existem há muito tempo em outras linguagens, especialmente o C#.
Mas, isso tudo já foi discutido exaustivamente aqui e em diversos fóruns java mundo a fora.

Com certeza, ficou um buraco enorme na linha do tempo da evolução do Java, começando pela própria linguagem.