Texto escrito em 2013
Arquitetura vai além do "mero" design da solução. Apenas código não leva ao sucesso: sem uma equipe motivada não há como ter sucesso por melhores que sejam nossos algoritmos e visão arquitetural. Neste post vou falar sobre Groovy, Grails e uma importantíssima parcela das pessoas que estas tecnologias tocam.
O real valor de Groovy e Grails pra mim
Em alguns posts aqui neste blog já mencionei como é fácil descobrir um hypista. Uma pergunta "por que devo usar X?" que gera outra "por que minha equipe acostumada e treinada em Y deve usar X?" que gera um vácuo ou simples embromar. A época de hype de Groovy e Grails ("GG" daqui pra frente) terminou. Não é mais uma novidade que as pessoas experimentam mas sim uma realidade.
Conversando com diversos programadores observo que há a impressão de que a população de desenvolvedores vive em um mundo parecido com aquele pintado por conferências como QCon SP, Java One e todas estas empresas que nos vendem treinamentos: um mundo dominado por duas plataformas que são o Java e .net. Há outras também como por exemplo Ruby (e o Rails), Python, Node.js e todas aquelas que vemos pipocando em blogs, revistas e palestras.
Ainda há e continuará a existir por um bom tempo uma multidão muito maior de programadores que desenvolvem apenas para a plataforma desktop ou com uso pesado de stored procedures em algum SGBD, ou mesmo linguagens voltadas para negócio como Progress, Power Builder e muitas outras. Muito desenvolvimento ainda é feito em Visual Basic (pré .net), Delphi 7 (e anterior), Pascal, Access 97 (sim, 97), Rexx, VBA, CGI, COBOL, Fortran, Clipper, FoxPro (a lista é sem fim). Parece uma realidade distante mas quando desviamos nossa atenção das conferências em direção aos inúmeros departamentos de TI espalhados pela cidade vemos uma realidade que até então se mostrava oculta. Nada oculta: a mídia normalmente nos impede de ver isto visto que o foco da escrita normalmente é na novidade. E não seja arrogante, é muito comum (extremamente) estes sistemas apresentarem qualidade ordens de magnitude superior ao que você e eu estamos acostumado (vejo coisas lindas por aí).
Dado o meu passado profissional e o fato de ser um consultor GG esta sempre foi minha realidade. E sabem o que é mais bacana? Boa parte desta gama de desenvolvedores quer usar uma das plataformas mais poderosas da história que é o Java EE mas se assusta no primeiro contato. Qual o maior valor de Groovy e Grails então?
O maior valor é o fato de levar o Java EE para uma imensa população de desenvolvedores até então ignorados por esta.
Com Grails você cria uma aplicação Java EE em um primeiro momento sem precisar conhecer toda aquela massa de siglas como EJB, JNDI, CMT, JMS, JPA e tantas outras (que, numa boa? nem todas são sempre diretamente usadas e muitas você pode passar a vida sem tocar). Não que estas tecnologias sejam ruins mas sim porque quando você vêm desta "outra realidade" o primeiro contato é assustador (senti isto na pele então posso dizer com autoridade) e muitos desistem antes de começar.
(e por mais que o Java EE tenha evoluido nos últimos anos, o contato inicial AINDA é problemático)
E sabe o que perdemos com quem desiste? UM PUTA CAPITAL INTELECTUAL. Profissionais com imensa experiência que recuam diante da falsa impressão de que estão lidando com uma plataforma hermética, o que nós, acostumados com ela, sabemos não ser verdade. Gente que eu adoraria ver na minha equipe não está presente devido a este recuo.
Há também a impressão de que criar qualquer interface web com Java é um trabalho monstruoso. De fato é dependendo do que você estiver usando mas quando você topa com o scaffolding do Grails, por exemplo, esta barreira começa a se romper. E não raro o profissional começa no scaffolding sem conhecimento ALGUM de HTML e, passado algum tempo, conforme vai se acostumando com a web deixa o "andaime" de lado e passa a dominar o HTML 5 (e eu vejo isto O TEMPO INTEIRO). E sabe aquela massa de siglas que mencionei acima? Vejo o mesmo comportamento se repetindo.
E há também a questão da linguagem. Quando você vêm do Visual Basic, Clipper ou alguma linguagem de quarta geração Java te assusta: e muito. A sintaxe do Groovy é mais familiar. Detalhes que parecem tolos a muitos javeiros como o uso de ponto e vírgula, parênteses e colchetes são um incômodo para quem está se acostumando com o novo ambiente de desenvolvimento. E ei: convenhamos, Groovy é bem menos verboso que Java. Aliás, já escrevi sobre isto pouco tempo atrás.
Por que o pessoal quer Java EE?
O pessoal da Oracle vai te dar inúmeras razões corporativas pelas quais a plataforma Java EE é uma boa opção. Neste post vou fazer diferente e citar as que escuto de alguns clientes que estão fazendo a transição para a plataforma usando Grails como ponte:
- É uma plataforma aberta.
- O preço de licença é baixo.
- Multi plataforma. ("roda no Linux")
- Possuí recursos avançados que não são tão acessíveis nas plataformas de origem, como por exemplo facilidade na configuração de cluster, uma boa API de acesso a banco de dados (JDBC) que acessa quase 100% dos SGBDs relacionais, facilidade no gerenciamento de transações, dentre outras.
- Possuí a maior biblioteca de código escrito por terceiros na história, sendo que a maior parte deste é aberto.
Então Groovy e Grails é caridade?
Claro que não, muito pelo contrário, é um excelente negócio. A partir do momento em que você trás para a plataforma Java EE uma massa intelectual até então ignorada você gera valor com isto sob a forma de novas soluções e uma melhor plataforma para se trabalhar.
Só pra lembrar, mais gente brincando é mais idéia pipocando, mais conhecimento difundido, mais negócios surgindo e menos brasileiro buscando material fora do país e produzindo aqui dentro.
O valor de Groovy e Grails para desenvolvedores Java já disse qual é em 2008: ele salvou o Java EE do tédio e depois da sua introdução não vimos mais nenhum framework que seguisse o "caminho antigo". Acredito no valor histórico que o Grails teve (e tem) naquela época: ele hoje talvez o Java não fosse tão relevante.
Pra finalizar, uma história
Muitos anos atrás eu ajudei por um bom tempo um programador que morava em uma cidade remota a desenvolver um sistema por e-mail. Foi uma longa troca de e-mails na qual pude conhecer melhor uma realidade bem mais árdua na qual o simples acesso à Internet não é simples, muito menos a livros, revistas, etc.
De repente a troca de e-mails parou, este programador sumiu e ficamos alguns anos sem nos comunicar até alguns meses atrás. Recebi uma mensagem de agradecimento por que seu sistema funcionou e hoje ele contava com 40 funcionários. Provávelmente foi o momento mais rico da minha carreira.
O que me pergunto é o seguinte: se numa troca de e-mails você ajudando alguém a programar em Delphi 5 é possível gerar 40 empregos imagine o que Groovy/Grails usando canais como Grails Brasil, este blog e tantas outras fontes não pode gerar? Sim meus amigos: ISTO é gerar valor e ISTO é enriquecer o seu país ao invés de ficar babando ovo de estrangeiro como a maior parte de nós costuma fazer.
Aliás, este é o valor essencial da tecnologia: levar ao homem o poder de fazer aquilo que até então não conseguia. E isto é lindo.
PS 1: eu sei que há outras tecnologias que atingem este objetivo, mas meu foco é e por um bom tempo vai ser Groovy e Grails.
PS 2: uma tecnologia que domino e que também tem o mesmo efeito porém com menos intensidade é o Spring, curiosamente mantido pela mesma entidade. Coincidência? :)
Top comments (0)