Grails no mundo Corporativo?

Um leitor do meu blog me enviou um e-mail perguntando:
"Acha que este framework representa um ponto de virada na programação? Irá ser muito usado em empresas? Pra grandes projetos ... é aconselhavel?"

Estas perguntas são perigosas de serem respondidas, pois afinal são previsões do futuro, ou uma opinião pessoal baseada no sentimento ou no gosto de cada um. É sempre melhor ter fatos para podermos elaborar em cima dos mesmos.

Apesar disso, vou me arriscar e, ao invés de afirmar, vou apenas emitir minha opinião.

Resposta 1: Acho que o Grails conseguiu juntar duas características difícieis de serem unidas: simplicidade para o desenvolvedor, que é um ser humano que gosta de coisas simples (sempre tem as exceções, calro); e flexibilidade, poder e robustez tecnológica. Como o Grails é implementado em Groovy, a linguagem fornece muita simplicidade para o desenvolvedor, aumentando bastante a produtividade de codificação. Além de Groovy, sendo o Grails um framework MVC para web do jeito que foi feito, ele facilita muito a implementação de operações rotineiras no desenvolvimento web: operações CRUD, validação, uso de Ajax, e por aí vai. Então, o nível de abstração subiu bastante em relação a frameworks MVC integrados com soluções de persistência como o Hibernate. Desenvolver em Graisl comparado com SpringMVC + Hibernate, é muito mais simples (com Grails). MUITO MAIS SIMPLES! E com o MESMO poder!!! Pois usa SpringMVC + Hibernate por baixo dos panos.
Ok, ok. E a resposta? Vamos lá.....Acho que sim: acredito que os desenvolvedores irão perceber as vantagens que o Grails oferece em relação a Struts, WebWork, SpringMVC da mesma forma que percebram as vanagens do uso do Struts em relação aos frameworks caseiros. O Struts foi um marco no desenvolvimento web em Java. Acho que o Grails será um marco no desenvolvimento web na plataforma Java. Com certeza!

Resposta 2: As empresas, principalmente as grandes e as médias, vêm investindo muito há anos na capacitação de suas equipes. Ainda hoje, se vê muitos anúncios de oportunidades para desenvolvedores com experiência em Struts. Mas porque Struts? Será que Struts é o que há de melhor hoje em dia no que diz respeito a frameworks MVC para web em java? Uns podem dizer que sim. Para mim, não. E olha que já usei muito o Struts, e ainda uso (infelizmente). Ele não é o melhor atualmente, mas possui uma base de desenvolvedores que o conhecem muito grande. Possui uma comunidade ativa enorme. Possui livros e livros publicados, cursos sendo vendidos, equipes inteiras com seu conhecimento. E aí? Vai tudo pro lixo porque Grails surgiu? Certamente que não. Porém, as empresas que estiverem dispostas a experimentar novas tecnologias ou frameworks estarão dispostas a investir em determinado caminho. Como tal, poderão ter um retorno alto ou não. É um risco que se corre. Tem gente que ganha muito dinheiro na bolsa de valores, mas é arriscado. Aqueles que partirem para o uso do Grails, na minha opinião, terão uma vantagem competitiva, pois se preocuparão menos com detalhes de baixo nível das APIs de Java, e terão mais tempo para pensar na solução de negócios dos seus clientes. Isso pois, a produtividade com Grails é MUITO maior que com os demais frameworks MVC para web em java. Respondendo então: acho que sim, mas isso levará tempo. Aos que forem pioneiros, os resultados dirão.

Resposta 3: grandes projetos? O que são grandes projetos? Se forem projetos que usam persistência, log, web services, tarefas agendadas, geram relatórios, busca textual indexada, etc, etc. A resposta é sim. Se para estes projetos você usa Java com Struts ou WebWork ou SpringMVC, Hibernate ou iBatis, Log4j, Quartz, Acegi, JasperReports, XFire ou Axis, Lucene ou Compass... Se você usa isso tudo, porque não usar Grails? Afinal você pode continuar usando isso tudo, mas de uma maneira MUITO MAIS SIMPLES. Se projetos grandes são projetos com um número de usuários muito grande, e se para estes projetos você usa um sistema web em Java. Porque não usar Grails? Afinal, no final das contas, tudo é bytecode sendo executado pela JVM. Então você pode continuar usando seu servidor de aplicações java que você já usa. Pode continuar fazendo o balanceamento de carga que você já faz. O que muda é o nível de abstração em tempo de desenvolvimento.

Minhas opiniões foram influenciadas por este post.

Um abraço e até a próxima.

2 comentários:

Lucas 1 de novembro de 2007 22:59

Groovy é script, então seu código fica "aberto".

Como fazer uma aplicação não opensource em grails? É possível gerar bytecode?

Felipe Nascimento 2 de novembro de 2007 01:56

Olá Lucas,

Hoje em dia, desde a versão 0.6 do Grails, quando executamos o comando "grails war", o WAR gerado possui apenas os arquivos .class gerados a partir dos arquivos .groovy.
Não esqueça que groovy é script, mas roda na JVM, e portanto tem que se tornar um .class no final das contas.
E hoje o WAR só tem os .class. Então, já está sendo gerado apenas o bytecode para se fazer o deploy.