Domain Specific Languages (DSL) and Domain Driven Design (DDD)

Domain-Driven Design emphasizes the role of the problem domain as you create the fundamental vocabulary, concepts, and object model for the system being designed.

A Domain-Specific Language is a notation for specifying or implementing specific parts of the system, oriented to the needs of the practitioner in that domain (i.e. minimizing the "programmerese" aspects of most programming or specification languages).


I guess both have as its main focus reducing the noise in programming, DDD acts on semantic noise and DSLs in syntactic noise.

These may help understand my opinion:

http://fragmental.tw/2009/03/12/expessive-design-slides/

http://fragmental.tw/2008/04/20/domain-specific-languages-and-video-games/


Domain Driven Design (DDD) is a way of thinking and communicating about the problems and its solutions.

Domain Specific Language (DSL) is a way of writing code.

They're similar because they both start with the word "domain". That's it, I guess. :-)


I would argue that they are somehow related and not only by the word "domain". Once you have a good (domain-driven) design, it will surely help in creating a solid DSL.

"DDD does not specifically require the use of a DSL, though it could be used to help define a DSL." - Wikipedia