Presentation: "Ruby and the Art of Domain Specific Languages"
Time: Monday 16:00 - 17:00
Location: SAS Nortvegia
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.