As pontes Groovy e Grails

As pontes Groovy e Grails 1

No dia 1/11/2014, em minha apresentação no DevDay, tornei publica uma descoberta que fiz ao longo destes quase 10 anos de Groovy e Grails: estas tecnologias são valiosas por serem pontes. Neste post explico o que chamo de “tecnologia ponte”.

O que é uma ponte?

Só valorizamos as pontes quando não as temos

Só valorizamos as pontes quando não as temos

Pontes são o tipo de coisa que estão tão presentes em nosso dia a dia que sequer as notamos. As uso como uma poderosa metáfora, mas o que é uma ponte?

Estrutura arquitetural que nos permite trafegar de um ponto a outro de modo cômodo, o que seria muito difícil na sua ausência.

Isto é óbvio: mas o que seria uma tecnologia ponte?

Aquela que me permite sair de um estado de formação para outro suavemente.

Minhas primeiras pontes

Na minha progressão profissional houve algumas pontes. Quando comecei havia Internet, mas não era algo acessível, eu mesmo não tinha em casa, então o que me restavam eram livros técnicos que para mim eram caríssimos. A tecnologia mais popular ainda era o desenvolvimento desktop para a plataforma Windows. Ouvindo conversas, a impressão que tinha é que isto só podia ser feito com C++. Imagine meu choque quando topei com o código necessário para se criar uma janela usando isto! Nunca viu como é? Dê uma conferida neste link e depois volte para este post.

Tantos comandos! Como aprender aquela coisa sinistra? Foi quando descobri uma variante da primeira linguagem que conheci: o BASIC. Se chamava Visual Basic, e me permitia criar janelas literalmente desenhando-as com o mouse!

Um milagre da ciência!!!

VB era um milagre da ciência!!!

Era incrível, um milagre da ciência! Quando dava um duplo clique em um botão, surgia um editor de texto no qual digitava o comportamento que eu queria. Fornecia todos os comportamentos possíveis e logo em seguida compilava meu programa em um arquivo EXE. Boom: meu próprio executável e que podia ser usado em qualquer computador (Windows)! Era um estímulo e tanto: de repente me via distribuindo disquetes entre meus colegas do segundo grau todo orgulhoso.

Passado algum tempo, me sentia mais seguro e, com isto, fui me aprofundando na linguagem Visual Basic. Aprendia funções, entendia alguns comportamentos da sintaxe, funcionalidades como tratamento de erros, escrita em arquivos, etc. Visual Basic foi minha ponte inicial para me tornar um bom programador. E tudo isto de uma forma muito suave, não foi do dia pra noite.

delphi

Passado o Visual Basic, veio a segunda ponte: me sentia a vontade para tentar aprender Delphi,  o que fiz e se tornou minha ferramenta de trabalho por muitos anos, em paralelo ao VB. Devorei o Object Pascal, me sentia seguro e poderoso com ele, o que me preparou psicologicamente para aquele que considerava ser O GRANDE SALTO: Java.

Tenho cá minhas dúvidas se aquele Kico adolescente realmente conseguiria chegar ao Java se tivesse parado no C++ que se mostrava tão assustador. E sabem o que é mais legal? Passado algum tempo, brincando com Visual Basic e Delphi acabei aprendendo o C++ também.

Percebem? Com Visual Basic comecei a programar por que meu primeiro passo era com algo que me sentia à vontade: o mouse e desenho. Com o tempo a parte visual foi perdendo a graça e me acostumei com o código, o que me possibilitou aprender rápido o Delphi. E do Delphi, com orientação a objetos básica, me sentia o suficientemente bem para ir ao Java. Duas pontes.

Tecnologias ponte são aquelas que nos permitem aprender coisas que, de outra forma, seriam muito mais difíceis de serem compreendidas. Elas nos permitem iniciar o processo com aquilo que já temos.

Projetando a ponte

Para explicar como Groovy e Grails são pontes irei usar apenas imagens baseadas no esquema abaixo: do lado esquerdo encontram-se aqueles conhecimentos que já possuo e com os quais me sinto seguro. Do lado direito encontram-se aqueles que gostaria de obter e a ponte me fornece o caminho tranquilo que percorro para atingir aquele objetivo.

esquema_ponte

Groovy

ponte_groovy

Das duas é sem sombra de dúvidas a mais rica. Lembram quando falei sobre o valor social de Groovy e Grails? É a porta de entrada de muita gente que não conhece ainda a plataforma Java. Confesso que me tornou um programador Java melhor, pois de repente tive contato com programação funcional, DSLs e, principalmente, adquiri uma visão mais crítica a respeito do próprio Java.

(você sabe que está bom de fato em uma linguagem quando consegue criticá-la com argumentos racionais)

E qual o material desta ponte? A similaridade com a sintaxe do Java. Você começa a escrever programas em Groovy exatamente como faria em Java: com o tempo vai ficando mais confiante com a coisa e, de repente, esta lá, pulando do Olá mundo “Javiano” abaixo:


public class OlaMundo {

public static void main(String args[]) {
System.out.println("Olá mundo!");
}

}

Que evolui rapidamente para


System.out.println("Olá mundo")

E termina em


println "Olá mundo Groovy!"

Grails

ponte_grails

A ponte Grails nos leva ao Java EE: uma das plataformas mais importantes da história da computação. Podemos inclusive dizer que se trata da responsável por democratizar de verdade o desenvolvimento corporativo, ao menos aqui no Brasil.

Talvez você sequer precise conhecer Groovy para trabalhar com Grails (o que não recomendo), mas com o tempo,Grails acaba se tornando sabe o que? Uma ponte para o Groovy, pois muitos conhecem a linguagem a partir do framework. Mais do que isto: com o tempo você começa a usar recursos do Java EE que se mostravam distantes como, por exemplo, JMS, JNDI e tantos outros.

Conheço diversos casos de pessoas que vieram do ambiente desktop para web graças ao Grails. Por que? Simples: ele te permite usar todas as funcionalidades do desenvolvimento web Java EE usando apenas uma fina camada de Groovy. Raríssimas vezes você lidará com objetos do tipo ServletRequest ou ServletResponse.

Atravessando a ponte

O bacana da experiência de atravessar a ponte é que um belo dia você percebe que se tornou um programador melhor passando por um caminho suave, que respeitou e valorizou seu background e no final o enriqueceu ainda mais.

Passado algum tempo, nossa busca passa a ser por novas pontes. Já estou percorrendo algumas novas hoje e me pergunto quais surgirão depois.

PS: os slides da apresentação no DevDay 2014 podem ser vistos neste link. Acredito que agora eles se tornem mais compreensíveis. :)

3 comments on “As pontes Groovy e Grails

  1. Felipe Caparelli

    Excelente leitura! Parabéns Henrique. Tenho certeza que aprender Groovy me possibilitará não apenas criticar o Java, mas me permitir ver as coisas de um outro angulo, além de trazer flexibilidade de fazer coisas de uma maneira mais produtiva e dinâmica.

    Espero que um dia eu possa escrever um artigo contando sobre meu caminho nesta tecnologia, com tanta clareza como a sua.

    Muito Obrigado!

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.