2013-01-18
Nyheterna i Groovy!
På bilden: Jens Riboe Foto: Frida Börjeson
Efter nyåret släpptes lanseringskandidaten av Groovy 2.1 och går allt
vägen, så har vi den skarpa versionen i slutet av januari. Groovy 2.x
bjuder på många nyheter och förbättrar språket både vad gäller
funktionalitet och prestanda.
Men hallå! Vad är Groovy?
Enkelt uttryckt är det Java++, en bättre variant av Java helt enkelt.
Ungefär som C++ är en bättre variant av C. Det går att blanda Java och
Groovy hur enkelt som helst. Tack vare den familjära syntaxen går
rekord-snabbt för en Java programmerare att börja använda Groovy och det
är mycket enkelt att smyga in lite Groovy här och där i en befintlig
Java applikation.
Språket Groovy genomgår just nu en mycket intressant vidare-utveckling,
som började för lite drygt ett och ett halvt år sedan med version 1.8.
Denna version var knökfull av nya egenskaper och när språkets
utvecklingsteam planerade för version 1.9 insåg de vad de borde ha gjort
redan för version 1.8, nämligen att börja på nästa major version, dvs
2.x. Så 1.9 blev helt sonika omdöpt till 2.0 och på den vägen är det.
AST Annotations
Den mest iögonfallande nyheten i version 1.8 var möjligheten att
generera ny kompilerad kod i samband med att ett Groovy program startar.
Detta kallas för
AST Transformations, där AST betyder Abstract
Syntax Tree. I (mycket) korta drag så när ett Groovy program laddas för
exekvering, så kompileras det först till Java byte-code. Under denna
process så byggs det upp en intern trädrepresentation av programkoden
(AST), som i flera olika steg transformeras.
Med AST-T kan man lägga till egna transformationer, dvs dynamiskt skapa
ny kod, som kommer med i kompileringen. Nu är detta inget man gör i den
dagliga programmeringen, utan man använder färdiga transformationer, som
finns tillgängliga i form av kod-annoteringar. Genom att applicera en
eller flera AST annoteringar, så utökas en Groovy klass med kompilerad
kod. Låt oss kika på några exempel, intressanta för varje Java
programmerare.
@ToString
Hur många gånger har man inte "mekaniskt" skrivit en toString() method i
Java och för varje klass-ändring så måste denna uppdateras eller
genereras på nytt. Det finns alternativ; såsom Jakarta Commons Lang
ToStringBuilder, som dynamiskt (reflektivt) skapar output. Emellertid,
om du använder Groovy i stället, så räcker det med att annotera din
klass med @ToString, så är saken biff....
/Jens Riboe,
RibomationLäs hela inlägget på Informator-Bloggen
Här kan du se Informators utbildningar i Java & Open Source
Missa inte vårt gratis-semiarium GPars - Concurrency for the Modern Age
Informasjon om bedriften: Wetteri Sweden AB
Nyheten presenteres i samarbeid med MyNewsdesk