O valor social de Groovy e Grails

groovylogoArquitetura 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.

mundo_ggAinda 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?

grails_logoClaro 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? :)

11 thoughts on “O valor social de Groovy e Grails

  1. Eu iria além, não é só o JEE que o Groovy e Grails ajudam a digerir para quem não é do mundo java (e até quem é). A camada que ele coloca sobre o Spring, sobre o Maven, sobre o banco de dados (GORM), sobre o servidor de aplicação, facilitam muito para aqueles que não utilizam no seu dia a dia estas tecnologias, mas querem começar a trabalhar com java.

    Abs!

    Responda

    Kico (Henrique Lobo Weissmann) Reply:

    Oi Uilian, tem razão.
    Um comportamento que observo é este de descoberta das tecnologias que há por baixo de uma forma leve, tranquila.

    Responda

  2. Eu sempre associei o sucesso do Java e suas siglas no mainstream com a velha máxima de “fazer o fácil parecer difícil”.
    O Java EE padrão cai como uma luva para as necessidades de marketing pessoal, porque ele realmente consegue fazer o fácil ser difícil.

    Responda

    Kico (Henrique Lobo Weissmann) Reply:

    Neste ponto eu não sei se a culpa é mais do Java ou das pessoas viu Éderson.

    De fato os problemas que o Java EE resolve são complicados, são tarefas complexas. Pega por exemplo um tratamento de transações. É simples para uma tarefa simples em um banco de dados, mas e quando você quer distribuir? Fica complexo, natural que fique esquisito mesmo.

    O problema é que a maior parte dos problemas que as pessoas enfrentam é simples. Há um livro do Rod Johnson chamado “Java EE without EJB” (algo assim) que é um marco da plataforma. Ele trata exatamente disto e é na minha opinião leitura obrigatória pra qualquer javeiro e especialmente springeiros como eu (o Spring aparece neste livro).

    Responda

    Éderson Cássio Reply:

    A culpa, naturalmente, é das pessoas. Mas meu ponto de vista é que o Java EE cai como uma luva para essa nossa necessidade de marketing pessoal.
    Por mais que os problemas sejam complexos, penso eu que poderiam deveriam ter sido resolvidos de maneira mais simples. Se não, não haveria Spring.

    Responda

    Kico (Henrique Lobo Weissmann) Reply:

    Sem dúvida: por isto que te recomendei a leitura do livro do Rod Johnson.

    Responda

  3. O grande avanço do Grails, na minha visão, é justamente como ele facilita. Afinal uma das suas premissas, como framework, é a convenção ao invés da configuração. O seu post mostra claramente como este resultado é alcançado em larga escala, afinal a comunidade é imensa e o crescimento dele não mostra indícios de diminuir.
    Pessoas que necessitam capitalizar uma idéia rapidamente, ou seja, colocar no “papel” aquilo que pensam todas as noites antes de dormir, é para mim o maior alcance do Grails.
    Quantas pessoas vejo na comunidade perguntando sobre desenvolvimento de uma idéia dela, algo novo. Quanta fonte de renda esse framework pode gerar, falo por experiência, pois trabalhei em uma empresa onde inicialmente usamos GG e conseguimos algumas centenas de investimento.
    Esse ‘carinha’ pode fazer muito mais por você, desenvolvedor, do que você imagina.

    Responda

    Kico (Henrique Lobo Weissmann) Reply:

    Excelente observação Eduardo, não havia pensado neste detalhe também.

    De fato: você poder criar sua aplicação rápido te trás algo que existia na época em que o desktop imperava junto com Delphi e Visual Basic, que foram linguagens (especialmente Delphi) que vi gerar MUITA fortuna aqui no Brasil.

    Responda

  4. Inicialmente via o Grails e Spring com o mesmo olhar que tinha para o Java EE: complicado demais, grande demais, parrudo demais. Demais para as necessidades do dia-a-dia como desenvolvedor de sites. Para mim, PHP e .Net resolviam muito bem meus problemas. Precisei estudar o Ruby (e Rails) para um projeto específico, e tive uma descoberta maravilhosa de conceitos, tecnologias etc com ele. Vieram outros frameworks, tanto para PHP quanto pra .Net (e outras linguagens!), seguindo os mesmos princípios (convenção sobre configuração, TDD etc etc etc etc etc, e põe etc nisso!). Brinquei com o Grails outro dia, e confesso que me senti muito confortável com o framework e a linguagem. Provavelmente será a minha porta de entrada no Java.

    Responda

    Kico (Henrique Lobo Weissmann) Reply:

    Oi Alexandre,

    tudo o que envolve Java dado este passado acaba gerando esta impressão mesmo.

    Mas sabe o que estou gostando de ver no caso do Grails?
    Como você vê uma plataforma ULTRA power que é o Java EE se popularizando, novos negócios estão surgindo aonde antes não era viável.

    E como no caso do Delphi e do Clipper, que geraram fortunas exatamente por causa disto eu estou vendo de novo aquele ciclo se repetindo.

    Grails tornou Java EE acessível e, numa boa? Acabou aumentando a viabilidade da coisa como um todo.

    Responda

  5. PowerBuilder!!! uhulllll!!!!! Tem mais gente que conhece Powerbuilder no mundo!
    hahaha!
    Desculpe a felicidade, mas achar alguém citando Powerbuilder, pelo menos no Brasil, é de se comemorar. :D
    Trabalho com Powerbuilder fazem 13 anos.

    Ano passado começamos a estudar GG aqui na empresa para converter alguns módulos do sistema para Web. Não consegui me envolver muito ainda. São apenas 2 pessoas trabalhando no projeto e sem muita experiencia, ai está demorando um pouco para evoluir.
    Não conheço praticamente nada de Java. Vi alguns videos e posts seus e alguns outros, fiz umas brincadeiras com GG para ver.
    Confesso que o GG tem se mostrado meio assustador. Como o Alexandre falou do java EE é a visão que tive do GG inicialmente: “complicado demais, grande demais, parrudo demais” isso fazendo uma comparação bem idiota com o Powerbuilder e com as facilidades que ele tem para se construir uma aplicação comercial desktop. Meu notebook mesmo, senta e chora quando eu abro um netbeans e starto um app grails (Core2Duo de 5 anos com 4Gb ram haha! Sim. preciso trocar de máquina.)

    Tem algumas dificuldades também que provavelmente é devido a falta de experiencia do pessoal do projeto. Gastamos muitas horas tentando resolver com o Grails a conexão com o banco Informix, que é um dos bancos que nossa aplicação roda.
    Gastamos também muitas horas vendo uma forma de trabalhar com nossas tabelas legadas (tudo chave primaria composta :/) e ainda não demos jeito. Largamos isso e estão reescrevendo um módulo do zero, criando novas tabelas e tudo.
    Ai por causa dessas dificuldades a coisa desanima um pouco.

    Das opções que vimos o GG se mostrou uma excelente opção. Não vamos desistir.
    Como já vi uma frase por ai “Mudar é desconfortável. ABRACE o desconforto.”

    Responda

Leave a Reply

Your email address will not be published. Required fields are marked *