[Atualizado em 20 de dezembro de 2007.]
A Microsoft oferece uma infra-estrutura web única para seus desenvolvedores: .NET Framework. Com seus méritos e críticas, sua onipresença traz uma facilidade: não é necessária (nem possível) escolha no mundo do desenvolvimento web para plataforma Windows — é dotNET ou dotNET.
A plataforma Java EE também oferece um único padrão: JavaServer Faces (JSF). Por sinal, JSF surgiu inspirado na programação web orientada a componentes e eventos e na alta produtividade com desenvolvimento visual integrado de .NET — no caso da Microsoft, baseado no IDE VisualStudio. Mas como todo padrão — e assim como ocorre(u) com EJB — há um longo caminho entre a especificação JSF e a maturidade e solidez da sua adoção em produtos e aplicações de mercado.
O padrão de facto no universo Java MVC por muitos anos (anos 90) foi o software livre Apache Struts.
Entre a incipiência do JSF, a estagnação tecnológica do Struts 1.x e o apelo da web mais interativa com AJAX, surgiram dezenas de novos frameworks web/MVC para Java, todos softwares livres.
Só dentro da Fundação de Software Apache, emergiram Struts 2 (novo nome para o incorporado WebWork), Tapestry, Wicket. Mundo afora ainda temos Spring Web Flow/MVC, Stripes, VRaptor, Neo e até o brasileiríssimo Mentawai. Fora outros menos festejados.
Enquanto isso, em um universo não muito distante dali, surgia a linguagem Ruby e com ela o framework web Ruby on Rails (RoR). Correndo por fora no duelo de gigantes, o RoR vem conquistando adeptos por fatores como simplicidade, produtividade e eficácia. E em 7 de dezembro último chegou à versão 2.0.
Na esteira do Ruby on Rails, surgiram no universo Java contrapartes como Grails (“Groovy on rails”) e Trails.
E assim chegamos ao final de 2007 no desenvolvimento web. Agora, me diga — Para onde vamos em 2008?
Para saber mais:
- Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket (PDF), por Matt Raible, criador de AppFuse e AppFuse Light, ApacheCon US 2007.
- What Web Application framework should you use?, por Timothy M. O’Brien, June 19, 2006-06-19, em O’Reilly OnJava.com blogs.
- Ruby [On Rails] X Java [WEB], por Rodrigo Urubatan, 2007-03-02.
- JavaPolis, JBoss, and JSF, por Shaun Connolly, 2007-12-18. Veja também comentários Whiteboard dos frameworks Web, por Bruno Borges.
- Referências sobre Tecnologias Web Java EE, por Márcio d’Ávila.
Flex + JavaEE
Rodrigo: Realmente, quando consideramos interfaces RIA, Adobe Flex — integrado a Java EE e WebServices — é uma opção de framework web (baseado em Flash).
Eis alguns links sobre Adobe Flex + Java:
http://www.adobe.com/br/products/flex/
http://www.adobe.com/products/flex/
http://www.flexbrasil.org/
http://pt.wikipedia.org/wiki/Adobe_Flex
http://en.wikipedia.org/wiki/Adobe_Flex
http://www.urubatan.com.br/java-flex-aplicacao-bonita-e-rapida-e-backend-confiavel/
http://e-digows.blogspot.com/2007/03/flex-java-e-mysql-troca-de-objetos.html
http://www.onjava.com/pub/a/onjava/2004/12/01/flexjava.html
Na linha de RIA também temos o framework OpenLaszlo (baseado em Flash e, na versão 4, também DHTML) e a tecnologia JavaFX. Veja também
http://blog.mhavila.com.br/2007/07/22/java-ee-6-e-javafx-compiler/
Flex, Laszlo e JavaFX são alternativas bastantes distintas dos frameworks estilo MVC-web “convencionais” citados no artigo.