People want holes, not drills, and especially not drill bits
DSLs are a hard way to sell your language. They haven't worked for Lisp yet. Before you can sell Ruby based on DSLs, you need to tell people why they need DSLs.
My sales background tells me that people want holes, not drills
, and especially not drill bits. For that reason, you have to sell the holes themselves, not the technology for making them.
It's a mistake to 'sell' DSLs, just as it's a mistake to sell metaprogramming. Wherever programmers hang out
, you'll find people arguing the merits of high signal-to-noise techniques like DSLs. It's fun and instructive to have this debate, but it isn't selling
. It's coffee-shop banter about drill bits, and whether diamond tips are worth the price, and are all carpenters equal or are some better than others, and should all drills have safeties so any monkey can make holes, and can you do concurrent drilling with a drill press framework?
Lots of people love the way Ruby on Rails makes certain things declarative and makes their code smaller than whatever else they used to use. They love the holes
, and that's as it should be. DSLs and metaprogramming are implementation details for framework builders, not selling features for framework users
At least, not up front. Later, after they've gotten hooked on drilling holes, they'll be interested in drill technology. :-)