Infoworld: Programming languages even a business analyst can use
In plain English, domain-specific languages let users define business rules and help ensure applications do what they're supposed to ...
A DSL (domain-specific language) is a language designed for a business or industry domain such as health care, finance, or insurance. It defines processing in terms of the nouns and verbs of your business rather than in terms of a pure computer language.
In most cases, domain-specific languages look like stripped-down versions of English that incorporate business jargon. DSLs are especially powerful when used with a rules engine -- and most rules engines support some kind of DSL system.
Laying the groundwork for DSLs:
DSLs disrupt the conventional software development workflow: A subject matter expert (SME) describes a business concept to a developer, who may not fully understand it, but who then implements it in a language the SME can't read. With DSLs, the developer works with SMEs to define a language specification; the SME then describes the business rules in the new language.
Why aren't DSLs in wider use? One reason: To achieve successful results, you need competent business analysts. This may sound harsh, but I've met maybe five of those in my entire career. Most of the business analysts I've met have been PowerPoint artists who couldn't quite make it as marketing people.
More to the point, defining a DSL requires lot of up-front work and planning. It brings to mind a rarely heeded Spanish proverb that Marc Fleury once admonished me with: "Slow down, I'm in a hurry." Yes, DSLs can result in more maintainable, robust, and cleaner software, but only if you're willing to spend the time thinking them through.
Read the rest of my article over at InfoWorld.
After you're done. Please consider sending me ideas on other topics you'd like me to write about. I'm always looking for ideas.