HOME SCALA & F# JAVA .NET WEB GROOVY & GRAILS ANDROID & IOS NOSQL ARCHITECTURE AGILE & SCRUM AGILE DEVELOPER  
Groovy & Grails eXchange 2009: Venkat Subramaniam on Building DSLs: Marriage of High Essence and Groovy Metaprogramming
Building DSLs: Marriage of High Essence and Groovy Metaprogramming


DSLs or Domain Specific Languages focus on a domain or a particular problem. They serve as an effective human-machine interaction tool as they're highly expressive. Their scope is fairly focused and that keeps them simple and small from the user's point of view. However, designing and implementing DSLs is not easy. Typically this involves steep learning curve and difficult parsing techniques. This is where Groovy comes in. You can take advantage of the flexible syntax of Groovy and it's metaprogramming capability to create what are called internal DSLs, that is, DSLs hosted using a higher level language.

In this fast paced highly interactive presentation you will start out learning the characteristics and types of DSLs. Then you will learn about the challenges in designing DSLs and deep dive into Groovy features that can ease the pain of implementing DSLs. Then, using some live coding, Venkat will show you how to create and implement internal DSLs using Groovy. Along the way you'll learn some tricks to facilitate desirable syntax for your DSL.


ABOUT VENKAT SUBRAMANIAM
Dr. Venkat Subramaniam, founder of Agile Developer, Inc. has trained and mentored thousands of software developers in US, Canada, Europe, and Asia. He helps his clients succeed with Agile Development and various software technologies.
More about Venkat Subramaniam
PODCAST BUILDING DSLS: MARRIAGE OF HIGH ESSENCE AND GROOVY METAPROGRAMMING

This session took part at the Groovy & Grails eXchange 2009. You can view the other 19 podcasts here.
JAVASCRIPT & HTML5 PODCASTS
Christophe Coenraets:Cross-Platform Mobile Apps with HTML, JavaScript and PhoneGap, Cross-Platform Mobile Apps
Christophe Coenraets : 24th May 2012
View Podcast: Cross-Platform Mobile Apps with HTML, JavaScript and PhoneGap,
Paul Ardeleanu:Native vs HTML5 - why, when and how to use them, Native vs HTML5
Paul Ardeleanu : 22nd May 2012
View Podcast: Native vs HTML5 - why, when and how to use them,
Luke Daley: Managing JavaScript with Gradle, JavaScript with Gradle
Luke Daley : 22nd May 2012
View Podcast:  Managing JavaScript with Gradle,
Elise   Huard:Ruby’s bin men: a closer look at the garbage collector, Ruby’s bin men: a closer look at the gar
Elise Huard : 14th May 2012
View Podcast: Ruby’s bin men: a closer look at the garbage collector,
Tom Stuart:Dependency Injection, the Dependency Inversion Principle, and You, Dependency Injection
Tom Stuart : 14th May 2012
View Podcast: Dependency Injection, the Dependency Inversion Principle, and You,
Tom McMillen:CouchDB at the Hut Group, CouchDB at the Hut Group
Tom McMillen : 9th May 2012
View Podcast: CouchDB at the Hut Group,
John Zablocki:The Couchbase Server Tutorial, The Couchbase Server Tutorial
John Zablocki : 9th May 2012
View Podcast: The Couchbase Server Tutorial,
Peter Martischka:Etherpad Lite: Make Collaborative Editing the Standard on the Web, Etherpad Lite
Peter Martischka : 8th May 2012
View Podcast: Etherpad Lite: Make Collaborative Editing the Standard on the Web,
Tiago Rodriguez:Continuously integrated JS development with Buster.js and Phantom.js, Buster.js and Phantom.js
Tiago Rodriguez : 8th May 2012
View Podcast: Continuously integrated JS development with Buster.js and Phantom.js,
Gavin  Bell:Is Everything Social?, Is Everything Social?
Gavin Bell : 8th May 2012
View Podcast: Is Everything Social?,
Brian Sletten:Information Resources : Moving Beyond Objects, Moving Beyond Objects
Brian Sletten : 3rd May 2012
View Podcast: Information Resources : Moving Beyond Objects,
Brian Sletten:Information Resources: Moving Beyond Objects (Part 2), Moving Beyond Objects
Brian Sletten : 3rd May 2012
View Podcast: Information Resources: Moving Beyond Objects (Part 2),
Brian Sletten:Testing REST with BDD, REST & BDD
Brian Sletten : 2nd May 2012
View Podcast: Testing REST with BDD,
Dmitry Buzdin:State of the Web, State of the Web
Dmitry Buzdin : 1st May 2012
View Podcast: State of the Web,
Lukas  Oberhuber:Lightning Talks: Simply Business, Simply Business
Lukas Oberhuber : 23rd Apr 2012
View Podcast: Lightning Talks: Simply Business,
OTHER JAVASCRIPT & HTML5 EVENTS
Progressive .NET Tutorials 2012, Progressive .NET Tutorials 2012
CONFERENCE (3 DAYS)
London, Tuesday, May 29th BOOK NOW!
The London Python Group:A Python code review of multilango.com, The London Python Group
FREE EVENT: Python code review
London, Wednesday, June 6th
Dutch Mobile Conference, Dutch Mobile Conference
CONFERENCE (3 DAYS)
Amsterdam , Thursday, June 7th BOOK NOW!
London Ruby User Group:ElasticSearch, London Ruby User Group
FREE EVENT: ElasticSearch
, Monday, June 11th
Gavin  Bell:Gavin Bell's Creating Social Applications,  Gavin Bell's Social Applications
2 DAY COURSE. Featuring Gavin Bell
London, Thursday, June 14th
QCon New York 2012, QCon New York 2012
CONFERENCE (3 DAYS)
New York, Monday, June 18th BOOK NOW!
:Typesafe's Fast Track to Play,  Typesafe's Fast Track to Play
1 DAY COURSE.
London, Friday, June 22nd
Damjan Vujnovic:Damjan Vujnovic's Advanced JavaScript Workshop,  Damjan Vujnovic's Advanced JavaScript Workshop
2 DAY COURSE. Featuring Damjan Vujnovic
London, Monday, June 25th
© Copyright 2003-2011, Skills Matter Ltd
  Web development by You In Control
About Us  Jobs  Find Us  Meeting & Training Rooms  Newsletter  Jobs: Sales Executive  Jobs: Student SkillsCaster  jobs - junior event coordinator  Speed Coding 2011  Open Source Journal  Ticket Raffle  Agile Expert Series  Jobs: Sponsorship Development  jobs: Marketing & Sales Graduate Internship