Rapaz que tópico, fui pesquisar sobre VRaptor achei um comparando VRaptor com JSF e acabei chegando nesse. Tirando a parte do RoR que não tem nada haver com o tópico achei a discussão boa e foi legal ver 2 anos depois as novas opiniões. Achei tão legal que queria ver as opiniões hoje, passando quase 4 anos, com JSF 2 e JEE 6 no mercado, com a compra do Java pela Oracle, Java 7, e surgimento de novos framework o que ainda acham sobre o JSF, é o futuro nas empresas?
Vou dar minha humilde opinião. Tenho 34 anos e 17 anos de experiência na área, comecei com Cobol, depois fui para VB, passei por PowerBuilder e acabei parando no Java. Porque parei no Java, na minha opinião Java é diferente de tudo o que já tinha visto pelo simples fato de Java não ser uma linguagem como Cobol, VB, Clipper, Delphi, PowerBuilder, etc… e sim uma Plataforma. O que não existe em Java? Citaram 2 coisa aqui named routes e ActiveRecords? Acredito que possa ter surgido alguma coisa nova que não existe no Java e pouquíssimos projetos dependem disso, mas tenho certeza que em breve será incluído. Trabalho apenas 6 anos com Java, antes de começar fiz uma especialização de 18 meses voltada somente ao Java, desde HTML/CSS, passando por Servlet, JSP, JSTL e terminando no JSF. Felizmente os projetos que trabalhei e ainda trabalho são JSF, teve alguma exceções e cheguei a mexer em um com Struts, Servlet puro e agora estou tendo que usar o VRaptor. Se eu pudesse escolher usaria JSF em todos. Pelo simples fato de ser a tecnologia que mais me sinto produtivo. Por já está acostumado.
Li alguém dizendo que Cobol parou no tempo e isso é mentira basta ver em http://en.wikipedia.org/wiki/COBOL. Se o Cobol ainda não parou no tempo imagine o Java.
Estou fechando minha mente para as novas tecnologias que surgem aos montes todos os anos? Não, ainda tem muita coisa em Java para aprender e muita coisa a aprimorar. Observo que a maioria dos comentários contra JSF são dito por quem não usa, não gosta ou defende outra tecnologia. Muitas vezes as pessoas não sabem, acham que sabe ou tiveram uma experiencia mau sucedida e já taca pedra na tecnologia. Problemas tem em todas, soluções também. Não existe bala de prata, mas Java tem bala para todo tipo de calibre. Pode até ser que tecnologia B faz determinada coisa com N/2 linha de código que Java, mas e o custo de ter que aprender essa nova tecnologia só para economizar N/2 linha de código não é muito alto? Desenvolvedor poliglota é a melhor coisa para o dono da empresa que acha que um funcionário pode dominar mais de uma tecnologia e para isso ele não precisa contratar outro. Esse é o sonho dos OutSourcing, o cara sai de um projeto com tecnologia A e no outro mês já está em outro com tecnologia B. E quanto a qualidade desse código gerado? O Papa fala não sei quantas linguás, mas em quantas ele consegue escrever um livro?
Para mim JSF continuará nas empresas pelo simples argumento da Longevidade. Afinal ela é a especificação da comunidade. Ela surgiu e continuará se aprimorando diante do sucesso de tecnologias paralelas. Basta observar a evolução do JSF 1 para o 2. Pegaram o que o Struts, Spring, Seam, etc… tinha de bom e incorporaram. Assim tb com JEE. Na minha opinião todos deveriam usar, opinar, sugerir e ajudar a especificação evoluir. A maioria dos post contra JSF são de gente tentando convencer as pessoas a usarem seu framework, ou seguir a onda da nova tecnologia, qualquer que seja ela, sempre vai surgir um que vai aprender e tentar convencer a aprendermos também por que ninguém quer ficar só.
Esse grupo é de JAVA e acho que todos deveriam defender e disseminar o uso dele e não vim aqui e dizer que Rails, Scala, etc… é melhor. Ainda bem q algumas precisam da JVM.
Falaram aqui que JSF gera lixo no HTML, mas isso é uma implementação da JSF, nada impede de vc criar uma que gere HTML Semântico. Realmente o intuito original do JSF era dar poder a IDE de criar interface parecida com .NET, do tipo arraste e solte. Até existe algumas boas e o próprio NetBeans evolui muito, mas a maioria de quem usa e gosta de JSF, faz na mão mesmo sem comprometer a produtividade. Vamos usar EJB2, logico que não, mas como alguém fez o favor de mencionar o problema não era no EJB2 e sim na atitude errada de querer usar o EntityBean para tudo e isso ainda hoje acontece muito em outro conceitos, as pessoas usam a tecnologia de forma errada, sem conhecimento e depois dizem q ela não presta (Isso eu tive a oportunidade de ver na pratica e na época questionei com o time que isso era errado mas ao invés de ouvir e aprender se resumiram a dizer “É a especificação que manda”).
Eu como sou mais novo, não sou moderador, fodão e nem tenho blog fico mais na escuta, mas não pude deixar de dar meus 0,2344 de contribuição. Também posso esta errado, mas estou nadando junto com a comunidade e ela tá evoluindo e com a ajuda dos fodões vai evoluir mais rápido.