Na minha opinião, Grails é uma das melhores coisas que poderiam ocorrer para a comunidade Java. Não tenho dúvidas com relação a isto, e por uma razão muitos simples: Grails é desenvolvimento web na plataforma Java como sempre deveria ter sido: simples, direto e intuitivo. Porém tenho um conselho para você: não espere milagres.
Minha experiência com aqueles que estão iniciando o aprendizado do framework é a de que 90% das pessoas se maravilham com a ferramenta não pelos três atributos que mencionei acima (simples, direto e intuitivo), mas sim devido a um certo deslumbramento com o scaffolding.
Gostaria de deixar claro algo para vocês que acreditam nos “poderes maravilhosos do scaffolding”: scaffold em inglês significa nada mais, nada menos que andaime, ou seja, é apenas um esqueleto em cima do qual você pode construir sua aplicação, e não a aplicação em si.
Acho que a melhor maneira de descrever o tamanho deste equivoco consiste em expor uma analogia. Suponhamos que um dia você contrate uma firma de engenharia para construir a sua casa. Como não entende nada de construção, ao menos inicialmente há alguma confiança na competência dos arquitetos, engenheiros e equipe de construção, correto? Agora, imagine que ao ver o resultado final, você fique maravilhado com a aparência de sua casa.
Em um segundo momento, você irá notar que há vários detalhes na construção que lhe são familiares em outras construções. As mesmas maçanetas, estilos de janelas, portas, cores. Neste segundo momento, você começa a perceber que na realidade, o arquiteto responsável pela obra não sabe o significado da palavra criatividade.
E então chega o terceiro momento: aquele no qual você se muda para esta casa. Passada a primeira semana, os problemas já começam a aparecer. As torneiras não funcionam tão bem, as paredes não parecem ser tão sólidas, e você simplesmente não sente segurança na construção. PUm belo dia você irá pregar um quadro na parede e na terceira martelada um buraco gigante surgirá em sua parede, expondo um andaime por trás da mesma como sua estrutura.
Soa exagerado? Pois vou lhes contar uma coisa: tenho visto diversos sistemas que são inteiramente baseados em scaffolding. O sujeito começa a aprender Grails, satisfaz-se em apenas criar as classes de domínio. Não haveria problema algum se estes sistemas fossem feitos visando o aprendizado. O problema é que muitos estão sendo vendidos. Ponha-se no lugar de quem está comprando estes sistemas.
É aí que o scaffolding começa a mostrar a sua face real: porque para fazer com que sua aplicação tenha algum diferencial, o mínimo que o desenvolvedor precisa saber é Groovy. Precisa compreender que o scaffolding na realidade só serve para adiantar algum trabalho. Trabalho este que, numa boa? Normalmente não passa de 15% (estou chutando o número) do trabalho total.
Pode alguém aprender Grails e depois aprender Groovy? Sim, pode. No entanto, em algum momento esta pessoa vai ter de APRENDER Groovy, e no mínimo saber o que significa MVC. E isto, acreditem, em diversos casos não tenho visto acontecer. Sendo assim, gostaria de acabar aqui com alguns mitos sobre Grails.
Grails não é um gerador de código: ele gera algum código para você, é verdade, mas em uma aplicação real, raras vezes este código chegará a 10, 15% do trabalho. Mesmo que chegue, será um código que, nestes casos, sofrerá diversas customizações, tornando-se ao final do processo algo completamente diferente (ou seja, não chegará a 5% do total)
Groovy não é supérfluo: sim, se você quiser desenvolver algo de valor REAL, conhecimento da linguagem é essencial. Saber descrever alguns atributos em suas classes de domínio e validações não é suficiente.
Grails não tornará fácil o desenvolvimento de aplicações: apesar de remover boa parte da burocracia presente na plataforma Java EE, desenvolver uma aplicação SEMPRE é um processo complicado, que requer atenção, bom projeto, disciplina e competência. Grails não é um framework para quem não sabe programar.
Conhecer a plataforma Java é obrigatório: pelo menos o conhecimento mínimo é necessário. Lembre-se: sua aplicação irá para um container JEE, executado em uma JVM. É possível saber apenas Groovy e não Java (a linguagem)? Claro! Porém Groovy é baseado em Java, e as classes básicas do framework PRECISAM ser conhecidas.
Resumindo: se você realmente acha que Grails irá tornar o desenvolvimento de aplicações algo fácil, não gaste seu tempo com Grails, mas sim aprendendo o que é desenvolvimento de sistemas.
Deixe uma resposta