rodrigo.uchoa:
Vou citar alguns pontos aqui porque JSF sucks:
-
Não permite separação de papeis. Principalmente para realidade de empresas, onde há uma tendência de existir o designer e o programador, JSF não permite que o designer se preocupe somente com HTML/CSS. O mesmo problema que o amigo que abriu esse tópico relatou. Chega em um ponto onde o designer é obrigado a fazer já em JSF, que nenhum designer vai querer, ou então os programadores tem que refazer a tela em JSF depois, o que também é ruim pois acabam surgindo diferenças que nem sempre são aceitáveis.
-
Difícil de manter. Sistemas JSF tendem a ter lógica de apresentação espalhada pelas telas xHTML e pelos Managed Beans (render, reRender, etc). Tende a ser muito pior manter do que se o código fosse centralizado somente em classes java.
-
Difícil (ou seria impossível) de escrever testes unitários. Relacionado ao motivo acima, Existe lógica nas telas que é simplesmente difícil de testar.
-
Complexidade para criar componentes. Estender um componente JSF mesmo, programaticamente, é o caos. Facelets ajuda um pouco, mas não atende todos os casos.
-
JSF é um negócio inerentemente difícil de entender, com todas aquelas milhões de fases e etc. Acaba que a chance de algum programador júnior fazer uma besteira e nunca nem entender como fez, é muito maior.
-
JSF normalmente é “acoplado” ao servidor. Se você um dia for querer migrar uma aplicação JSF do JBoss 5 pro 7 por exemplo, é dor de cabeça na certa.
No geral, é improdutivo e difícil de manter. Essa pelo menos é minha opinião depois de ter passado anos com JSF 1.2, e agora 2.0, e depois de algumas experiências sem ele.
Abs!
Então, sobre a parte de papeis, acho que é só uma questão de “inversão”, pois ja tive trabalho onde o front-end trabalhava no design encima dos componentes renderizados do jsf, e o trabalho final ficou show de bola… acho que é só questão do front-end entender a renderização dos componentes utilizados… o que fez não reclamou do “desafio”.
Sobre a questão de logica nos xhtml, apliquei em um projeto MVP ao invés de MVC, mais trabalhando com conceito de backing bean, assim consegui separar muito bem as logicas, direto nas classes… fiz isso em casos em que realmente havia lógica que seria aplicada no xhtml.
Sobre testes unitário, usando MVP ficou mais sussegado, justamente por ter acesso aos componentes por bind, nos meus backing beans.
Sobre o resto, não lembro de ter tido problemas.
Cheguei a trabalhar muito pouco com o JSF 1.2, peguei pra mexer mais a partir do 2 mesmo.
[]'s