Hello Groovy!

Thalles Cezar
Oct 8, 2019 · 3 min read

A experiência sob um olhar javeiro.

Há pouco mais de um mês, fui alocado em um novo programa aqui na Concrete. É o momento de aprender coisas novas, descobrir metodologias/tecnologias e conhecer pessoas, certo? CERTO!

Mas quando a informação da stack utilizada pelo cliente chegou, eu fiquei me perguntando: “Groovy? Por que usar Groovy?”.

Como todo mundo tá aqui pra aprender, comecei o projeto e busquei conhecer melhor a linguagem. Chegou a hora de compartilhar o que aprendi e gostei (ou não) dessa linguagem.

Antes de tudo, o que é o Groovy?

Segundo o site oficial, Groovy é uma linguagem dinâmica, poderosa e opcionalmente tipada. É desenvolvida para a plataforma Java e tem como objetivo auxiliar a produtividade do desenvolvedor através de uma sintaxe familiar e fácil de aprender.

Foi criado em meados do ano de 2003 por James Strachan. Sua versão 1.0 foi lançada em 2007 e hoje encontra-se na versão 2.5.8 e é mantido pela Apache Software Foundation.


Bom, feitas as devidas apresentações, vamos às minhas primeiras impressões:

A sintaxe do Groovy é realmente fácil de aprender, ainda mais para desenvolvedores Java – essa foi a principal característica positiva identificada. A sua flexibilidade permitiu que meu código fosse escrito com um padrão Java de código, que depois passei para o Groovy e voltei para o Java, e assim sucessivamente. As sintaxes são tão parecidas que, em muitos momentos, me esquecia para qual linguagem estava desenvolvendo a classe.

Exemplo de classe Groovy

E então, temos os testes unitários com o framework Spock. Apesar de também funcionar para o desenvolvimento Java, o Spock me foi apresentado durante o trabalho com Groovy. Diferentemente da sintaxe, para o seu uso precisei entender melhor como funciona o framework e por isso o código não fluiu de maneira tão simples. Uma vez que entendi a forma de desenvolver o framework, ele se mostrou muito eficiente e rápido. O principal benefício é output dos testes — uma vez que o teste falha, detalhes são exibidos, facilitando encontrar e entender o que está acontecendo de errado.

Exemplo de falha em um teste do Spock ( https://blog.codepipes.com/testing/spock-vs-junit.html)

No projeto atual estamos utilizando o Groovy com o SpringBoot (que dispensa apresentações). Do mesmo jeito que sua sintaxe flui super bem para quem já desenvolve Java, o Spring Boot parece que nasceu para ser programado com Groovy. Mais uma vez, eu esquecia que estava utilizando uma linguagem diferente e ficava impressionado com a facilidade de se utilizar o framework.

Visando aumentar o desempenho do desenvolvedor, o Groovy possui vários benefícios sintáticos em relação ao Java.

· O referenciamento null-safe

· “public” como modificador de acesso padrão

· Getters e Setters criados automaticamente

· Interpolação de Strings

Além de outras várias coisinhas que aumentam sua expressividade no código, isto é, você escreve menos e faz mais coisas.


Até então listei os pontos positivos nessa experiência de um pouco mais de um mês de trabalho, mas nem tudo são flores.

Algumas características me incomodaram:

Não me entendam mal. O Groovy tem suporte para paradigma funcional utilizando as Closures — elas até funcionam bem. No entanto, a linguagem não dá suporte para o uso de Lambdas, algo que foi introduzido no Java na sua versão 8, se não me falha a memória.

Dessa forma, senti uma certa estranheza ao ter que sempre utilizar os Closures.

Pelo que andei lendo, o Groovy, quando utilizando de sua tipagem dinâmica, tem um desempenho abaixo do Java. Acredito que esse seja o preço da liberdade oferecida que tanto elogiei anteriormente, mas é um fator importante para levar em conta quando escolhê-lo como a linguagem de um projeto.


É isso!

Espero a minha experiência em forma de artigo desperte em vocês um pouco mais de curiosidade para conhecer o Groovy.

Abraços e até a próxima! ;)

Concrete

Nós desenvolvemos produtos digitais com inovação, agilidade…

Thalles Cezar

Written by

Concrete

Concrete

Nós desenvolvemos produtos digitais com inovação, agilidade e excelentes práticas, para que o mercado brasileiro e latino-americano acompanhe a velocidade do mercado digital mundial.

More From Medium

More on Artigos from Concrete

More on Artigos from Concrete

Era uma vez… uma Daily!

Apr 2 · 7 min read

20

More on Artigos from Concrete

More on Artigos from Concrete

Prodcast #6 — Entretenimento

Apr 1 · 1 min read

17

More on Artigos from Concrete

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade