Domain Specific Languages (DSLs) are an old technique in software development that's getting a recent resurgence in interest. Most developers run into them regularly - as XML configuration files, regular expressions, query languages or build scripts. However they haven't been given the attention they deserve and there is very little information out there to help developers build them effectively. We find that few people have done much to build their own DSLs and even
fewer have a broad appreciation of the various techniques involved.
With this tutorial we'll give you a broad introduction to ways in which you can build DSLs yourself, using tools that go back to the ancient egyptians (or at least their software equivalents). We'll explain the two main varieties of DSL today: internal and external, providing patterns to help you build them in order to give you enough understanding about which of the two you might want to use on your future projects. We'll also indoctrinate you on the importance of building an underlying Semantic Model, thus explaining why DSLs are less important than you might think. By the end of the tutorial you should have a good picture of where DSLs fit into the software development ecosystem and a map of first steps you'd take in building them yourself.
Our material is based heavily on Martin Fowler's upcoming book on DSLs, which we hope will actually be physically available by the time we speak.
Keywords: DSL, Domain Specific Language, Java, Groovy, Ruby,
Intentional Software, MPS, C#, Languages, Hot topic, Patterns
Target audience: Any developer interested in the current thinking
and state of the art in Domain Specific Languages. This tutorial
encourages thinking beyond frameworks and API's, starting to think about
fluency in computer languages, from both theoretical and practical
See training location on a map
Biography: Chief Scientist Martin Fowler
Martin Fowler is an author, speaker, consultant and general loud-mouth on software development.
He concentrates on designing enterprise software - looking at what makes a good design and what practices are needed to come up with good design. He has pioneered object-oriented technology, refactoring, patterns, agile methodologies, domain modeling, the Unified Modeling Language (UML), and Extreme Programming.
He's the Chief Scientist at ThoughtWorks - an international application development company, and has written five books on software development: Analysis Patterns, UML Distilled (now in its 3rd edition), Refactoring, Planning Extreme Programming (with Kent Beck), and Patterns of Enterprise Application Architecture. I also write articles regularly on my site at Martin Fowler.
Biography: Neal Ford
Neal is Software Architect and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. Before joining ThoughtWorks, Neal was the Chief Technology Officer at The DSW Group, Ltd., a nationally recognized training and development firm. Neal has a degree in Computer Science from Georgia State University specializing in languages and compilers and a minor in mathematics specializing in statistical analysis. He is also the designer and developer of applications, instructional materials, magazine articles, video presentations, and author of 6 books, including the most recent The Productive Programmer.
His language proficiencies include Java, C#/.NET, Ruby, Groovy, functional languages, Scheme, Object Pascal, C++, and C. His primary consulting focus is the design and construction of large-scale enterprise applications. Neal has taught on-site classes nationally and internationally to all phases of the military and to many Fortune 500 companies. He is also an internationally acclaimed speaker, having spoken at over 100 developer conferences worldwide, delivering more than 600 talks.
Software Passion: To revolutionize IT, leaving the profession in better shape than I found it.
Web site: www.nealford.com. He welcomes feedback and can be reached at firstname.lastname@example.org.