This week I’m attending QCon, the international software developers conference, and since the day I arrived it has been great. The depth of knowledge is truly amazing and I’m enjoying some excellent conversations. The attendee mix is (based on my estimation) 50% Java developers, 30% .NET developers, and 20% other languages like Ruby or Python. The diverse nature of the conference is interesting in that many of the sessions are platform-neutral, focusing more on patterns and practices and a less on tools.

Domain Specific Language (DSL) Tutorial

The first day for me was an all-day tutorial on domain-specific languages hosted by Martin Fowler, Neal Ford, and Rebecca Parsons from Thoughtworks. The content was deep, and covered everything from XML (the least expressive DSL, despite being one of the most widely used) to custom languages built using Lex/Yacc grammar syntax. Martin’s site has a good amount of the content for his upcoming book on domain specific languages and a lot of that content was covered in the session.

My favorite takeaway was the styles shown for internal DSLs (also called fluent interfaces). An internal DSL is built using the language itself rather than creating a new grammar. There are plenty of great examples of fluent interfaces, including the FluentNHibernate project and StructureMap’s registry DSL. The immediate value of an internal DSL is the understanding gained from reading code written using this style of interface.

Tuesday night is when a lot of the people started showing up since the tutorials were more of a pre-conference. I got to meet up with some friends and have some good chats before calling it an early night before the next three days.

I’ll post more about the rest of the conference soon!