Apache Groovy: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m categoria, alcuni wikilink
Tradotto buona parte dei contenuti dell'articolo inglese. Prego revisionare.
Riga 1:
{{w}}
{{s|informatica}}
'''Groovy''' è un [[Linguaggio_di_programmazione|linguaggio di programmazione]] [[Programmazione ad oggetti|ad oggetti]] per la [[Piattaforma_Java|Piattaforma Java]] come alternativa al [[Java_(linguaggio)|linguaggio Java]]. Può essere visto come [[Linguaggio_di_scripting|linguaggio di scripting]] per la Piattaforma Java, in quanto presenta caratteristiche simili a quelle di [[Python]], [[Ruby]], [[Perl]], e [[Smalltalk]]. A volte ci si riferisce a Groovy con il nome alternativo di JSR 241.
'''Groovy''' è un linguaggio di programmazione ''Object Oriented''. Basato su [[Java]], tenta di costituire una alternativa proprio a quest'ultimo.
 
Grovy usa una sintassi simile a quella di Java basata su parentesi graffe, e viene compilato dinamicamente in [[Bytecode|bytecode]] per la [[Macchina_virtuale_Java|Java Virtual Machine]], ed interagisce in modo trasparente con altro codice Java e con le librerie esistenti. Il compilatore di Groovy può essere usato per generare bytecode Java standard che può quindi essere usato da qualsiasi progetto Java. Groovy può anche venire usato come linguaggio di scripting dinamico.
Groovy in realtà può essere considerato come un linguaggio di scripting per Java dal momento che presenta caratteristiche simili a quelle già presenti in altri linguaggi dello stesso come tipo come [[Python]], [[Ruby]], [[Perl]], e [[Smalltalk]].
 
Dopo varie versioni beta e release candidate numerate come 1.1, il 7 Dicembre 2007 Groovy 1.1 Final è stato rilasciato e rinumerato come Groovy 1.5, per evidenziare i grandi miglioramenti fatti rispetto alla precedente versione.
A volte ci si riferisce a Groovy con il nome alternativo di JSR 241.
 
==Caratteristiche del Linguaggio==
 
* [[Tipizzazione_Dinamica|Tipizzazione dinamica]]
* Sintassi nativa per liste, mappe ed espressioni regolari
* [[Chiusura_(informatica)|Chiusure]]
* Overloading degli operatori
 
==Confronto della Sintassi==
'''Standard Java (Java 5+)'''
<source lang="java">
for (String item : new String [] {"Rod", "Carlos", "Chris"}) {
if (item.length() <= 4) System.out.println(item);
}
</source>
 
'''Groovy'''
<source lang="groovy">
["Rod", "Carlos", "Chris"].findAll{it.size() <= 4}.each{println it}
</source>
<!--
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()
}
}
-->
 
==Supporto per Linguaggi Markup==
 
Una caratteristica di Groovy che vale la pena sottolineare è il suo supporto nativo per vari linguaggi di markup come [[XML]] ed [[HTML]]. Questa caratteristica permette di definire e manipolare molti tipi di dati eterogenei con una sintassi ed una metodologia di programmazione uniformi. Per esempio:
 
'''il seguente codice Groovy ... '''
<source lang="groovy">
 
import groovy.xml.MarkupBuilder
def myXMLDoc = new MarkupBuilder()
myXMLDoc.workbook {
worksheet(caption:"Employees") {
row(fname:"John", lname:"McDoe")
row(fname:"Nancy", lname:"Davolio")
}
worksheet(caption:"Products") {
row(name:"Veeblefeetzer", id:"sku34510")
row(name:"Prune Unit Zappa", id:"sku3a550")
}
}
println myXMLDoc
</source>
 
'''... produce questo XML:'''
<source lang="xml">
 
<workbook>
<worksheet caption='Employees'>
<row fname="John" lname="McDoe" />
<row fname="Nancy" lname="Davolio" />
</worksheet>
<worksheet caption='Products'>
<row name="Veeblefeetzer" id="sku34510" />
<row name="Prune Unit Zappa" id="sku3a550" />
</worksheet>
</workbook>
</source>
 
== Storia ==
James Strachan parlò per la prima volta dello sviluppo di Groovy sul suo [http://radio.weblogs.com/0112098/2003/08/29.html blog] nell'Agosto 2003. Diverse versioni furono rilasciate tra il 2004 ed il 2006. Dopo l'inizio del processo di standardizzazione JCP, la numerazione delle versioni fu cambiata e la versione chiamata "1.0" fu rilasciata nel Martedì 2 Gennaio 2007.
 
== Collegamenti Esterni ==
 
*[http://groovy.codehaus.org/ Sito Ufficiale]
*[http://www.jcp.org/en/jsr/detail?id=241 JSR 241]
*[http://www-128.ibm.com/developerworks/java/library/j-alj08034.html An introduction to Groovy]
*[http://www.techbookreport.com/tutorials/groovy_derby_01.html Groovy and Apache Derby database - tutorial]
*[http://dmoz.org/Computers/Programming/Languages/Java/Extensions/Groovy/ Open Directory: Java: Extensions: Groovy]
 
[[Categoria:Linguaggi di programmazione]]
 
[[cs:Groovy]]
[[de:Groovy]]
[[en:Groovy]]
[[es:Groovy]]
[[fr:Groovy (langage)]]
[[ja:Groovy]]
[[pl:Groovy]]
[[pt:Groovy]]
[[ru:Groovy]]
[[tr:Groovy]]
[[zh:Groovy]]