JSF possui performance baixa?

Eu pesquisei a respeito mas não achei respostas satisfatórias, uns dizem que realmente há problema de performance e outros dizem que não, alguém que use e tenha mais experiência com a tecnologia talvez possa responder melhor.

Achei até uma frase do James Gosling dizendo “I hate JSF with a passion”.
Sei que na evolução do JSF do 1.2 para o 2.0 a performance aumentou bastante.

Pra maioria das soluções do mercado, é viável usar JSF?

Pra criar uma aplicação onde milhões de acessos simultâneos fossem feitos, JSF seria uma boa escolha?

A performance do JSF supera o GWT?

Frameworks Action Based são mais rápidos que frameworks Component Based?

Qual seria o framework (Controller/View ou outros) que atinge uma performance mais alta?

cara tem tanta coisa envolvida nas questões que vc citou, que da até preguiça de responder.
Então vou responder apenas ao título: não, jsf não possui performance baixa, depende muito de como e pra que vc utiliza o fw.

imagine o seguinte: uma ferrari é mais veloz que um fusca? depende.

se for numa pista reta a ferrari ganha, mas se for num asfalto esburacado ou terra pura, aí seu fusca resolve seu problema enquanto que a poderosa ferrari nem com 500 anos chega onde vc quer…

pq dei o exemplo? pra vc entender que não existe bala de prata!
cada fw teu seu foco!

gwt tem seu mercado assim como jsf tem o seu, cada um atende determinado problema.

Pesquisa no fórum que tem muita discussão sobre isso, com mais fundamentos e argumentos. Assunto polêmico. Segue IMHO:

JSF é mais lento que escrever seu próprio HTML, CSS e JS? Sim.
JSF é mais lento que GWT? Sim.
Você consegue fazer besteira e deixar seu HTML, CSS e JS ou GWT com desempenho ruins e mais lentos que JSF? Sim.
Você consegue usar as melhores práticas e ter seu sistema JSF com bom desempenho? Sim.

Vários fatores devem ser levados em conta ao escolher um framework. Performance é só um deles e vc precisa saber medir e não ir no olhômetro.
A maioria das aplicações que já vi com JSF não usavam as melhores práticas e o sistema ficava lento. Vc consegue resultados totalmente satisfatórios fazendo certo.

O que já vi errado com JSF? Só citando alguns. Usar escopo de sessão pra aplicação inteira. Não entender o ciclo de vida e ir no banco várias vezes por causa de um get no managed bean que realizava a consulta. Somando isso ao baixo conhecimento de JPA/Hibernate aí fica bonito mesmo. Não saber usar Ajax. Fazer paginação apenas virtual.
Alguns desses erros são cometidos com outros frameworks, mas não sei pq com JSF é mais comum. Pelo menos é o que tenho visto. Acho que é pq o desenvolvedor começou agora fez um CRUD com JSF e Primefaces, ficou lindão e ele (e seu gerente) acha que está preparado. Só que não.

Onde aprendo melhores práticas com JSF? Blog do UAIHebert e seu livro de boas práticas que é muito bom.

Opa Rafael, blz aqui é o Cícero.
Bem sempre ouvimos que o JSF é lento, até pela natureza stateful do JSF, deve haver um override no tráfego de rede, mas fato que cada nova atualização terá uma melhora na performance.
E na maioria das vezes usamos vários framework para nosso desenvolvimento.
Acredito que o JSF seja viável sim, caso contrário não teria tanta gente usando.
Certamente tenha algum framework com melhor performance, mas se tratando de performance, teremos a melhora em algum aspecto e piora em outro.
Os framework action based tem uma curva de apredizado mais tênue.
É não menos importante temos que focar nas melhoras práticas de cada framework, para não subutilizá-los.

[quote=cmonteiro]Opa Rafael, blz aqui é o Cícero.
Bem sempre ouvimos que o JSF é lento, até pela natureza stateful do JSF, deve haver um override no tráfego de rede, mas fato que cada nova atualização terá uma melhora na performance.
E na maioria das vezes usamos vários framework para nosso desenvolvimento.
Acredito que o JSF seja viável sim, caso contrário não teria tanta gente usando.
Certamente tenha algum framework com melhor performance, mas se tratando de performance, teremos a melhora em algum aspecto e piora em outro.
Os framework action based tem uma curva de apredizado mais tênue.
É não menos importante temos que focar nas melhoras práticas de cada framework, para não subutilizá-los.

[/quote]

Haha, fala aí Cícero, legal que você está frequentando agora o GUJ!

Sim, fiz essa pergunta porque afinal é uma especificação da Oracle, é extremamente produtivo, é ensinado em diversas escolas de Java conceituadas, e é apoiada por grandes programadores experientes. Produtividade e praticidade é o futuro das linguagens.