From: "M. Edward (Ed) Borasky" Date: 2006-09-04T11:49:07+09:00 Subject: Re: Joel Spolsky on languages for web programming Alex Young wrote: > David Vallner wrote: >> And another point is that quite a few Ruby frameworks do come to >> defining a domain-specific language in Ruby - cf. Og data definition, >> Puppet, rake. There's a (maybe not quite fine) line between a very >> specific framework and a DSL that just gets crossed, and I don't >> believe rubyists are the innocents to throw the first stone. > That's not quite the same - those DSL's build upon a known and well > understood foundation, because they use Ruby's syntax to their own ends. > I'm inferring from the very little information that's out there that > Wasabi has its own parser, and that makes it a very, very different > beast to a DSL in the sense that I've come across the term in Ruby. To use Martin Fowler's terminology, there are external DSLs -- a language created for the domain and implemented with a parser, etc., in some general-purpose language. And there are *internal* DSLs, written as extensions/subsets inside a language like Ruby. Rails and rake are internal DSLs, and Ruby makes internal DSL creation much easier than many other languages. I can't tell from this thread whether Wasabi is external or internal. I hardly think of an external DSL as anything special any more. They've been around as long as I've been programming, which is -- well, let's just say your toaster has more compute power than the machine I learned on. :) Almost every major decades-old Fortran code, for example, is really implementing an external DSL.