RethinkDB

Details
Most query languages are unpleasant, especially for beginners. At RethinkDB we're trying to write one that isn't. We've ended up implementing it as a Domain Specific Language for Ruby, and this talk is about what we've learned along the way. What makes a query
language good? What makes a DSL good? What parts of Ruby make it easy, and what parts make it hard? What should you watch out for if you want to write a DSL of your own?
-
Why we settled on a DSL instead of a string-based query language.
-
Error reporting and making syntax discoverable.
-
Classic DSL problems: variable capture, namespace pollution, having to learn a new syntax.
-
Ruby-specific problems: Can't overload operators based on the righthand side, can't overload some key operators, no `parameters` call on Procs in Ruby 1.8.
-
Things Ruby provides that are really nice: `caller`, block syntax, etc.
Michael Lucy Bio:
Michael Lucy is an engineer at RethinkDB working on the query language.

RethinkDB