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.
PROGRESSIVE JAVA PODCASTS
Toby O'Rourke:Introducing Neo4j into a Relational Database Organisation, Introducing Neo4j
Toby O'Rourke : 23rd May 2012
View Podcast: Introducing Neo4j into a Relational Database Organisation,
Luke Daley: Managing JavaScript with Gradle, JavaScript with Gradle
Luke Daley : 22nd May 2012
View Podcast:  Managing JavaScript with Gradle,
John Stevenson:(perfect? clojure environment), Perfect Clojure
John Stevenson : 16th May 2012
View Podcast: (perfect? clojure environment),
Chris Harris:Building a MongoDB application with Grails , MongoDB with Grails
Chris Harris : 16th May 2012
View Podcast: Building a MongoDB application with Grails ,
Sean Reilly:Non-rails Groovy development, Non-rails Groovy development
Sean Reilly : 16th May 2012
View Podcast: Non-rails Groovy development,
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,
Nicki Watt:Neo4j Tales from the Trenches: A recommendation Engine Case Study, Neo4j Tales from the Trenches
Nicki Watt : 9th May 2012
View Podcast: Neo4j Tales from the Trenches: A recommendation Engine Case Study,
Gavin  Bell:Is Everything Social?, Is Everything Social?
Gavin Bell : 8th May 2012
View Podcast: Is Everything Social?,
Ian Robinson:A Programmatic Introduction to Neo4j, Neo4j Intro
Ian Robinson : 3rd May 2012
View Podcast: A Programmatic Introduction to Neo4j,
Jan Machacek:Polyglot applications in Java and Spring, Polyglot apps in Java and Spring
Jan Machacek : 3rd May 2012
View Podcast: Polyglot applications in Java and Spring,
Various Speakers:Parkbench Panel Discussion with Pizza & drinks, Parkbench
Various Speakers : 3rd May 2012
View Podcast: Parkbench Panel Discussion with Pizza & drinks,
Brian Sletten:Information Resources : Moving Beyond Objects, Moving Beyond Objects
Brian Sletten : 3rd May 2012
View Podcast: Information Resources : Moving Beyond Objects,
David Morgantini:Exploring enterprise Java outside of Java EE, Exploring enterprise Java
David Morgantini : 3rd May 2012
View Podcast: Exploring enterprise Java outside of Java EE,
Anirvan  Chakraborty:Connecting to Neo4j using Spring Data, Connecting to Neo4j using Spring Data
Anirvan Chakraborty : 3rd May 2012
View Podcast: Connecting to Neo4j using Spring Data,
OTHER PROGRESSIVE JAVA EVENTS
:SpringSource's Core Spring: Developing with the Spring Framework,  SpringSource's Spring Application Development
4 DAY COURSE.
London, Tuesday, May 29th
Uncle Bob (Robert C. Martin):Uncle Bob's Advanced Test Driven Development in NYC,  Uncle Bob's Advanced Test Driven Development in NY
3 DAY COURSE. Featuring Uncle Bob (Robert C. Martin)
New York, Tuesday, May 29th
London Java Community:Gradle - Build Automation Evolved, London Java Community
FREE EVENT: Gradle
London, Tuesday, June 12th
London Scala Users' Group:Experiences from a Real-World Scala Project, London Scala Users' Group
FREE EVENT: Real-World Scala Project
London, Wednesday, June 13th
GeekOut 2012, GeekOut 2012
CONFERENCE (2 DAYS)
Tallinn, Thursday, June 14th BOOK NOW!
Jon Jagger:Jon Jagger & Kevlin Henney's Agile Development for Developers,  Jon & Kevlin's Agile Development Course
3 DAY COURSE. Featuring Jon Jagger
London, Monday, June 18th
Simon Brown:Simon Brown's Enterprise Software Developer,  Simon Brown's Enterprise Software Developer
3 DAY COURSE. Featuring Simon Brown
London, Monday, June 18th
Trond Bjerkestrand:Typesafe's Fast Track to Scala,  Typesafe's Fast Track to Scala
2 DAY COURSE. Featuring Trond Bjerkestrand
London, Monday, June 18th
© 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