A busca pelo graal da produtividade - Parte 3 - View
Autor: Pedro Cavaléro | Publicado: 2011-04-12T08:53:00-03:00

Na parte 2 comentei que uma das melhores formas de produtividade no server-side é usando o Spring Roo. Porém ainda precisamos saber o que avaliar como produtividade para o View-side.
Meu trabalho como gerente técnico, líder de projeto e arquiteto sempre me coloca em momentos de escolha. A rotatividade das pessoas da equipe (uma característica das forças armadas) sempre leva a termos desenvolvedores iniciantes (antes de junior) junto a desenvolvedores senior. Alguns já possuem alguma bagagem como designer web, outros mal sabem como &nbsp;o browser trabalha, mas tem algum conhecimento da linguagem Java. Essa disparidade de conhecimento é uma barreira a ser vencida, o que nos fez pensar em como o conhecimento de desenvolvimento web com Java é dividido. Então classifiquei os frameworks web segundo os pré-requisitos necessários para aprendê-lo no menor tempo possível:
1) Caso o desenvolvedor tenha acabado de fazer um curso de java básico e nunca fez um site estático na vida: Para esses casos, o caminho mais rápido são os frameworks que não exigem conhecimento de HTML, CSS ou de ciclo de vida servlets. Podemos citar nessa categoria o Apache Wicket, o Click, o GWT e o Vaadin, sendo que os dois últimos são mais novos e abusam do uso de ajax. Desses últimos, o GWT precisa de uma base maior, pois como ele se baseia em transformar o &nbsp;código Java em Javascript, ele traz as preocupações que qualquer framework Javascript traz. Os outros três tratam o client-side e o server-side de maneira bem transparente, diminuindo as preocupações do desenvolvedor, trazendo o código para um formato bem parecido com o código Swing, bem conhecido dos iniciantes em Java.
2) Caso o desenvolvedor tenha uma bagagem de design web e ainda pouco conhecimento de Java: Frameworks que permitam uma melhor divisão de tarefas, entre código Java e desenho de telas em html são os mais indicados, pois assim podemos utilizar os conhecimentos em design do iniciante enquanto ele adquire o conhecimento Java necessário. Frameworks como: VRaptor, Spring MVC por facilitarem a criação de views utilizando JSP puro, JSTL ou algum framework Javascript (como JQuery, ExtJS, Dojo etc) aumentam a produtividade da equipe enquanto ganham experiência no desenvolvimento. Isso sem falar em RIAs como Flex que, não sendo dependente do Java, pode ser aprendido separadamente, permitindo ao inexperiente se especializar nele para as views e apenas depois começar a aprender o Java (server-side).
3) Frameworks Struts-like (como Struts, Struts 2, JSF, JSF 2) precisam de um maior conhecimento tanto de Java, como de design web, o que os coloca em uma posição difícil para equipes com pessoal muito iniciante. Apesar de ser possível a divisão de tarefas, as integrações tornam-se mais difíceis e precisam de um pessoal com mais conhecimento, o que diminui bastante a produtividade no começo. Mas pode ser um preço bem pago depois, já que um JSF 2 é bem produtivo, possui ótimas bibliotecas de componentes (PrimeFaces, RichFaces) e possui a vantagem de ser um padrão do Java.
Cada uma das abordagens, com o passar do tempo, mostra-se bastante produtiva. Muitos duelos são travados na disputa de qual framework é o mais produtivo, porém sabemos que somos mais produtivos na tecnologias que conhecemos, apesar de mais verbosa ou algo assim. O difícil é escolher o mais adequado ao seu time, afinal, os prazos são sempre curtos!
Abraços!