<<< Previous speaker Next speaker >>>

Rich Kilmer, RubyConf Founder

 Rich  Kilmer, RubyConf Founder

Rich Kilmer is the founder of Virginia-based software company InfoEther, Inc where he is leading the development of a desktop-based Ruby + Flash consumer application. His technical background includes peer-to-peer software, wireless web, workflow, and pen computing.

Rich is an active member of the Ruby development community and his open-source efforts include the FreeRIDE Ruby IDE, RubyGems package manager, Ruby Java Debugging Library and the Jabber4R Jabber library. Rich also hosts the RubyForge.org project site for the Ruby community and serves as a board member of Ruby Central.

Rich Kilmer's Weblog.

Presentation: "Ruby and the Art of Domain Specific Languages"

Track:   What makes Ruby Roll?

Time: Friday 16:00 - 17:00

Location: Elizabeth Windsor


This talk will begin with an introduction to the concept of Domain Specific Languages (DSLs) and progress through how to capture your domain with Ruby syntax with several examples taken from real world systems and libraries. A DSL can be described as a limited computer language designed for a specific class of problem. This talk will focus on leveraging the flexible syntax of Ruby to capture domain information and behaviors in as clear a way as possible. DSLs can be a powerful tool to bridge the gap between developers and domain experts. Domain experts can easily read DSLs to determine the proper capturing of the domain information and behavior, something typically not available if a non-programmer was to look at traditional source code. Leveraging DSLs in many different areas of your applications and frameworks can yield both elegant and powerful systems.

The domain may be a technical one such as component configuration or a non-technical one such as a business process. One of Ruby on Rails successes is founded upon its use of DSLs to capture technical domains in the model, view and control of database-driven web application development. Canvassing several examples of DSLs in Ruby, the speaker will show the key types of decision points one has to make in crafting successful DSLs. Topics will include when to leverage Ruby's dynamic "magic" to appear as pure to domain terms as possible or when to expose non-domain terms to ensure flexible usage of the DSL for varying purposes. Some aspects of implementations will be discussed but the main focus of the talk will be on the example syntaxes and will be beneficial to both developers and non- developers.

Password protected Download slides