DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Artigo Java Magazine 69 - Um pouco de Groovy

Aprenda como usar a linguagem de scripts que pode ser compilada em bytecodes nativos e que se integra totalmente à plataforma Java







Um pouco de Groovy

Uma linguagem de scripts 100% compatível com Java

Aprenda como usar a linguagem de scripts que pode ser compilada em bytecodes nativos e que se integra totalmente à plataforma Java

De que se trata o artigo:

Apresenta uma introdução a linguagem dinâmica Groovy, que possibilita ter uma produtividade de linguagens dinâmicas como Python e Ruby dentro da máquina virtual Java, sem emendas.

 

Para que serve:

Tornar o desenvolvimento em Java mais rápido e produtivo, além de apresentar novos conceitos, como closures, não disponíveis na linguagem Java, que podem facilitar a vida do desenvolvedor em tarefas corriqueiras.

 

Em que situação o tema é útil:

Para agilizar o desenvolvimento de aplicações Java, otimizando situações onde a mesma é muito verbosa, como manipulação de XML por exemplo. Groovy possibilita, através de mecanismos como closures, uma sintaxe mais limpa e produtividade em alto nível.

 

Um pouco de Groovy:

É possível programar para a plataforma Java sem usar a linguagem Java, e ainda por cima ser extremamente produtivo. Groovy é uma linguagem dinâmica, flexível e que se integra com Java sem emendas, além de fornecer recursos como closures e atribute accessors, não disponíveis na linguagem padrão da JVM. Groovy, ao contrario de outras linguagens dinâmicas, possibilita gerar bytecodes Java e possibilita o uso de toda a infra-estrutura já desenvolvida para suas aplicações.

 

Linguagens dinâmicas estão na moda já há algum tempo. Desde o advento de frameworks de alta produtividade como o Ruby on Rails e o Django, linguagens como Ruby e Python saíram de seus nichos e passaram a fazer parte das rodinhas de conversa de desenvolvedores Java, outrora um tanto quanto seletivos. Esses, então, descobriram um admirável novo mundo, com closures, tipos de dados complexos e facilidades que não existem na sua linguagem preferida. Foi mais ou menos nesse meio que surgiu o embrião do que viria a ser o Groovy.

Como tudo começou

No dia 29 de agosto de 2003 James Strachan publicou em seu blog o primeiro artigo sobre aquilo que viria a ser o Groovy (veja em Links o endereço do post). Ele deixava bem claro as suas intenções na época: “minha idéia inicial é fazer uma pequena linguagem dinâmica, que seja compilada diretamente em classes Java e que tenha toda a produtividade elegante encontrada em Ruby e Python, mas que permita reusar, estender, implementar e testar código Java já existente”.

James procurava uma linguagem dinâmica para desenvolver em plataforma Java, e em seu post ele deixava claro que as opções da época não eram interessantes. Ele não queria apenas uma linguagem dinâmica, mas sim algo que pudesse ser integrado ao que ele já tinha pronto em Java, algo que acelerasse seu desenvolvimento e que não o obrigasse a jogar tudo o que tinha de código Java já pronto e testado (e em produção) no lixo. Enfim, ele queria algo que não existia na época.

Mas como querer é poder, James uniu-se a Bob McWhirter e juntos fundaram o projeto Groovy em 2003. Logo, com um grupo de pessoas que compartilhavam da mesma idéia, iniciaram o desenvolvimento da linguagem. Foi em 2004, com a fundação do GroovyOne e a entrada de outros desenvolvedores (entre eles Guillaume Laforge – hoje o mantenedor do projeto) que a coisa decolou. Foi criada a Groovy Language Specification (GLS) e o kit para testes de compatibilidade (o TCK), além do parser básico da linguagem. O embrião do projeto estava pronto e a partir daí não teria mais como voltar atrás.

Groovy evoluiu desconhecido por algum tempo, e até dezembro de 2007 várias versões foram lançadas sob o número 1.1.x. Em 7 de dezembro de 2007 a versão final da família 1.1 foi lançada, e então nomeada Groovy 1.5 devido às diversas modificações realizadas na mesma. Hoje a linguagem é uma especificação do JCP (JSR 241) e é considerada a segunda linguagem oficial da plataforma.

Ao contrario do que alguns pensam, Groovy não é um concorrente do Java, mas uma ferramenta de apoio, de produtividade, como veremos neste artigo.

O que é e pra que serve o Groovy?

O web site oficial da linguagem possui uma das melhores definições sobre a linguagem, a qual reproduzo a seguir: “Groovy é uma linguagem ágil e dinâmica para a Plataforma Java com recursos que são inspirados em linguagens como Python, Ruby e Smalltalk, tornando-os disponíveis aos programadores Java, usando uma sintaxe mais próxima do Java”. Ou seja, Groovy possui uma sintaxe semelhante ao Java, mas com o poder de linguagens dinamicamente tipadas.

Mas Groovy não é apenas uma linguagem de script. Groovy pode ser compilada, gerando bytecodes Java, ou seja, um arquivo de código fonte Groovy pode virar um arquivo .class (e esse recurso você não encontra por exemplo no JRuby). Isso garante que a única coisa que você precisa para rodar seus códigos Groovy no ambiente de produção é a máquina virtual Java (ou seja, nada mais do que usualmente já precisaria) e o jar com o runtime e API`s do Groovy. É comum dizer que Groovy roda integrado com o Java sem emendas, o que não acontece com seus “concorrentes”, por assim dizer.

Mais do que isso, o Groovy é totalmente integrado ao Java no mais baixo nível. Por exemplo, se você instanciar um objeto do tipo Date em Groovy esse nada mais é do que uma instância de java.util.Date. E tudo funciona de maneira transparente por que, por debaixo dos panos, tudo é bytecode Java.

Aí você me pergunta “ok, então pra que eu preciso disso?”, e a resposta é simples: para facilitar sua vida. Groovy possui uma sintaxe mais simples e enxuta do que o Java, apesar de ainda parecer Java, e possui recursos poderosos que não são encontrados na linguagem Java, como closures. E Groovy possui um grande aliado, o Grails, um framework de produtividade baseado em Spring e Hibernate que permite o desenvolvimento de aplicações Java EE com a mesma agilidade do pessoal do Ruby on Rails (e sem configurar centenas de arquivos XML!).

"


ATENÇÃO! A exibição deste artigo foi interrompida.

Clique aqui e acesse o Leitor Digital DevMedia para ler este artigo completo.




    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Marcelo Castellani

é analista de sistemas sênior na Itautec S/A e atua na área de desenvolvimento desde 1996, passando por linguagens como Visual Basic, C, C++ e Java.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   1
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03