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

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo Java Magazine 32 - Groovy: Java Através de Scripts

Artigo Publicado pela Java Magazine 32.

Esse artigo faz parte da revista Java Magazine edição 32. Clique aqui para ler todos os artigos desta edição

jm32.jpg

Groovy: Java Através de Scripts

Desenvolvimento Ultra-rápido e Versátil sobre a JVM

Detalhes sobre o Groovy, a nova linguagem dinâmica para a plataforma Java, e uma introdução às tecnologias e conceitos relacionados

Osvaldo Pinali Doederlein

Em diversos artigos da Java Magazine, enfatizamos a distinção entre a Plataforma Java e a Linguagem Java. Java, a Linguagem é essencialmente uma sintaxe particular na qual podemos escrever programas que executam em Java, a Plataforma (mais precisamente, plataformas: Java SE, Java ME e Java EE). Dezenas de linguagens que rodam sobre a VM Java são listadas pelo site "Languages for the JVM" (veja links). Mas na prática a Plataforma Java sempre foi muito dominada pela Linguagem Java.

Isso é uma evidência da qualidade da linguagem. Por outro lado, também é efeito do posicionamento histórico da Sun e do Java Community Process, que sempre deram suporte oficial apenas à linguagem Java. E como a comunidade Java tem um forte senso de aderência a padrões, isso sempre dificultou a vida de outras linguagens.

A falta de suporte oficial a linguagens diferentes tem impacto em áreas como o oferta de ferramentas, e na integração entre linguagens. Por exemplo, embora exista uma implementação de Python para a plataforma Java (Jython), não podíamos escrever uma aplicação web contendo scriptlets Python em páginas JSP, nem contar com o auxílio dos principais IDEs do mercado para facilitar esta opção de desenvolvimento.

Mas essa história está mudando. A JSR-223 ("Scripting para a Plataforma Java") define um mecanismo para suporte a linguagens de scripting (veja o quadro "Linguagens de scripting e linguagens dinâmicas"), com previsões específicas para integração em aplicações Java EE (pacotes war e ear) e uso em JSPs. Essa JSR especifica a API javax.script, que permite a um programa qualquer que rode na plataforma Java, acionar um "engine" capaz de interpretar scripts em qualquer linguagem. O futuro Java SE 6.0 (Mustang) já inclui a javax.script API e um plug-in para a linguagem JavaScript, embutindo o Mozilla Rhino (veja links).

Ultimamente tem-se falado muito em linguagens dinâmicas, e é interessante observar que esta tendência deve muito ao Java. Embora a linguagem Java seja estaticamente tipada, ela compartilha várias características de linguagens dinâmicas: código seguro, portabilidade, paradigma orientado a objetos, máquinas virtuais com gerenciamento de memória automático (garbage collection) e compilação just-in-time. Não há ainda uma JSR específica para suporte a linguagens dinâmicas, mas isso não vai tardar – o quadro "Uma JVM mais Dinâmica" mostra detalhes.

Boa parte dos recursos popularizados por Java já existia, mas o Java foi a primeira linguagem de grande sucesso a reunir todas essas idéias. Sem o Java hoje ainda estaríamos presos a compiladores C/C++, caçando overflows de buffer e tendo trabalho para portar código de um sistema operacional para outro ligeiramente diferente. De fato, sem o Java não haveria muito espaço para novidades como o Ruby on Rails e, do outro lado do muro, na ausência de Java a Microsoft dificilmente teria evoluído para uma arquitetura como a sua .Net.

O papel do Groovy

O Groovy é uma nova linguagem que pertence a ambas as categorias: é uma linguagem de scripting e uma linguagem dinâmica.

A primeira pergunta que se faz em relação ao Groovy é: para que outra linguagem dessas, se já temos Ruby, Python, JavaScript e tantas outras? A reposta é que o Groovy destaca-se por ser projetada especificamente para a plataforma Java e sua sintaxe é baseada, tanto quanto possível, na da linguagem Java. Além disso, o Groovy também é projetado para explorar as características da JVM (como os tipos de dados fundamentais suportados pelo bytecode Java) e as APIs do Java SE. São fatores facilitam muito o aprendizado dessa linguagem para quem já conhece Java, simplificam o porte de código entre ambas as linguagens e a integração entre módulos escritos em Java e Groovy.

Por exemplo, o Groovy utiliza as interfaces de collections do Java SE (APIs de java.util). Uma lista do Groovy é uma java.util.List, permitindo o uso dos mesmos métodos (get(), size() etc.), incluindo também extensões do Groovy como each(). Um método Java que espera um parâmetro do tipo List pode ser invocado de um programa Groovy, recebendo como parâmetro uma lista do Groovy, e esta invocação irá funcionar sem necessidade de nenhuma conversão de dados ineficiente.

Essa compatibilidade também permitiu ao Groovy tornar-se uma alternativa para os desenvolvedores que apreciam a linguagem Java, mas que gostariam de ter apenas algumas alterações na sua sintaxe, que por algum motivo têm pouca ou nenhuma chance de serem aprovadas numa versão futura da Java Language Specification. Por exemplo, a facilidade de declarar variáveis omitindo seu tipo é algo que podemos garantir que jamais seria aprovada. Além de ser uma sugestão ser radicalmente contrária a princípios fundamentais de design da linguagem, é impossível implementá-la sem nenhuma quebra de compatibilidade com o gigantesco volume de código Java já existente. Mas o Groovy – que não possui tal legado – pode implementar a tipagem dinâmica e também várias outras amenidades que veremos aqui."



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


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    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
Osvaldo Pinali Doederlein

é Mestre em Engenharia de Software Orientado a Objetos e Arquiteto de Tecnologia da Visionnaire Informática, trabalhando em projetos de software e prospecção tecnológica.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[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