DSLは利用者が設計するものだ

Jay Fields' Thoughts: Designing a Domain Specific Language

Jay FieldsはThoughtWorksプログラマーで専門はDSLだ。

どんなDSLに設計するか。DSLの利用者(≠DSL設計者)にどんな言語にしたいかを尋ねることがミソ。利用者にとって利用しやすい言語は利用者自身が考える。こういう方式はBusiness Natural Languageという形となって成功した。プログラマーにとって利用しやすいだけではダメだ。

利用者の問題領域は利用者自身が知っている。だから、DSLは利用者が設計する。プログラマーはそれを実行可能な形に変換するまでだ。

そんな彼が今までのDSL設計の経験の集大成としてexpectationsという新たなRubyのtesting frameworkを作成した。

http://expectations.rubyforge.org/files/README.html

Expectations do
  # State based expectation where a value equals another value
  expect 2 do
    1 + 1
  end
end

おおー、かっけええぇぇぇぇ!これからつこてみよかな。