Arc Forumnew | comments | leaders | submitlogin
2 points by conanite 5800 days ago | link | parent

Totally. "Embrace Change" was the mantra of the first book on XP. And to paraphrase "maximizing the amount of work not done" (thanks, CatDancer, for the link) we could say "maximizing the number of lines not written".

The usual techniques for enabling change involve exhaustive tests as well as not implementing stuff that might be unrequired. And DSLs. Hence Ruby gets a lot of attention because it's so easy to build a quick DSL in it. But as you've mentioned elsewhere, a layer of lisp macros in a program is effectively the DSL for that system.

Possibly the advantage of lisp in the context of DSLs is that the use of macros is thoroughly studied, and in a mature lisp the usual editing, debugging and optimization tools are available, whereas a home-made DSL might create as many problems as it solves ( ad-hoc, informally specified, bug-ridden, etc ).