Domain Specific Languages: Molding Ruby
summary
Argues that Ruby’s concrete advantages—the interpreter, open classes, code-as-data and flexible syntax—make internal DSLs practical, not theoretical; shows Rake’s accidental birth, a Time DSL and a just-in-time inventory DSL and reports the business DSLs expose edge cases so accountants and DBAs can verify executable rules; cites tools like Emacs and testing styles (RSpec vs test unit), and notes a local Ruby list of ~300 with 50–60 regular meetups as evidence of adoption; emphasizes spillover context and fluent interface.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 1:23Ruby’s expressive power
- 8:47General-purpose language limits
- 12:18Software cost and domain focus
- 15:49What is a DSL
- 19:16Internal vs external DSLs in Ruby
- 23:05Ruby’s natural expression
- 31:50Case study: Rake creation
- 37:27Rails testing with DSLs
- 43:05Business language for clients
- 49:43Resources and further reading on DSLs
- 53:09Q&A
- 1:00:09DSL trade-offs
- 1:01:54Learning Ruby meta-programming
- 1:06:06Meta-programming best practices
- 1:08:34DSL ambiguity
related talks
37mRuby ate my DSL!
38mDSLs, Code Generation, and New Domains for Ruby
59mCleanliness Is Next to Domain Specificity
53mDomain Specifc Languages
31mSeeing Metaprogramming and Lambda Function Patterns in Ruby
26mhow a language affects its people
30mRuby Techniques by Example
36ms/regex/DSLs/: What Regex Teaches Us About DSL Design
