Groovy
Origem: Wikipédia, a enciclopédia livre.
Groovy é uma linguagem de programação orientada a objetos desenvolvida para a plataforma Java como alternativa à linguagem de programação Java. Groovy possui características de Python, Ruby e Smalltalk.
Groovy utiliza uma sintaxe similar à de Java, é compilada dinamicamente para bytecode Java, e integra-se transparentemente com outros códigos e bibliotecas Java.
Groovy está atualmente em processo de padronização através do Java Community Process ( JSR 241 ).
Groovy possui algumas características não presentes no Java padrão:
- Tipagem estática e tipagem dinâmica
- Sintaxe nativa para listas, arrays associativos, vetores, e expressões regulares
- Fechamentos
- Sobrecarga de operadores
Índice |
[editar] Exemplos
class Foo { def doSomething() { def data = ["name": "James", "location": "London"] for (e in data) { println("entry ${e.key} is ${e.value}") } } def closureExample(collection) { collection.each { println("value ${it}") } } static void main(args) { def values = [1, 2, 3, "abc"] def foo = new Foo() foo.closureExample(values) foo.doSomething() } }
[editar] Comparação entre código Java e equivalente código Groovy
[editar] Java
class Filter { public static void main(String[] args) { List<String> list = Arrays.asList("Rod", "Carlos", "Chris"); List<String> shorts = new ArrayList<String>(); for (String item : list) { if (item.length() <= 4) { shorts.add(item); } } for (String item : shorts) { System.out.println(item); } } }
[editar] Groovy
list = ["Rod", "Carlos", "Chris"] shorts = list.findAll { it.size() <= 4 } shorts.each { println it }
[editar] Referências
- Dierk Koenig, Guillaume Laforge e Andrew Glover. Groovy in Action . Manning, 2006. ISBN 1-932394-84-2. (em inglês)
- Kenneth Barclay e John Savage. Groovy Programming: An Introduction for Java Developers. ISBN 0-123725-07-0 (em inglês)
[editar] Veja também
- Grails - framework para desenvolvimento de aplicações web inspirado no Ruby on Rails
- Groovlets - para implementar Servlets de modo fácil utilizando scripts Groovy
- Boo - uma linguagem com objetivos similares mas voltada para o Common Language Runtime
- JRuby - uma implementação em Java do interpretador Ruby
- Jython - uma implementação da linguagem Python que gera bytecode para máquinas Java
[editar] Ligações externas
- ((pt)) Wiki
- ((en)) Página oficial