DSL’s met Groovy builders
26 January 2009 17:20 Groovy
De laatste tijd heb ik veel met Groovy mogen doen, wat naast Java een van de vele talen is die op de JVM draait. Groovy heeft vele features, zoals closures en meta-programmering van andere dynamische talen als Python en Ruby overgenomen. Tegelijkertijd integreren groovy en java naadloos met elkaar, waardoor java programmeurs zich gelijk thuis voelen met groovy, ze kunnen immers al hun gebruikelijke klasses en api’s ook vanuit groovy gebruiken en aanroepen. Het is begrijpelijk dat deze taal met moderne features gecombineerd met de mogelijkheid de vele libraries van het Java platform te kunnen gebruiken de laatste tijd een hot topic is. Een ander hot topic van 2008 waren DSL’s (Domain Specific Languages). DSL’s zijn kleine subtaaltjes die speciaal ontworpen zijn om een specifiek probleem op te lossen. Zo kan SQL bijvoorbeeld als een DSL beschouwd worden om het probleem op te lossen hoe je interacteert met een relationele database. Ruby on Rails word door sommigen beschouwd als een DSL om het probleem “hoe maak ik een webapplicatie” op te lossen, al heb je het in het algemeen over meer specifieke problemen als je over DSL’s spreekt. In java wordt vaak XML gebruikt om domein specifieke problemen op te lossen, denk aan hibernate mappings, maven build files, etc. In deze post wil ik laten zien hoe je met Groovy Builders DSL’s kunt maken die gerelateerd zijn aan het probleem hoe je hierarchische data-structuren kan opbouwen.
Lees verder
