Domain Driven Design (DDD) is a way of thinking and communicating about the problems and its solutions.
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. :-).
5 Although funny, I think this answer is somewhat inaccurate. A DSL would use the same ubiquitous language as you get when practicing DDD for the same domain, they are not completely unrelated.. – Roger Alsing Oct 8 '10 at 9:42.
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).
One element of DDD can be seen as the ability to develop Ubiquitous Languages for talking with stakeholder about the domain. For the subset of those UL's that are both unambiguous and potentially executable, you may choose to implement them using an internal or external DSL. Here's a video of me discussing this on the DomainDriven site: domaindrivendesign.org/library/bell_gitl... Best Wishes, Peter.
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: fragmental.tw/2009/03/12/expessive-desig... fragmental.tw/2008/04/20/domain-specific....
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.
Wikipedia has a pretty clear definition for DSL: The term domain-specific language (DSL) has become popular in recent years in software development to indicate a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique. This can be implemented as a set of classes following some consistent pattern, some fancy C++ template magic, or a compiler/parser that interprets free text input to do what you want.
I think they are somehow related (as Christophe put it), but two totally different aspects. I wouldn't even dismiss jop's statement. For very well written information on DSLs refer to Martin Fowler's set of pages on DSLs (work in progress), you may start with the example, or the definition.
Another good read is his QandA. DDD is based on the domain model and usually at least one abstraction level higher than the DSL. Both can exist without the other, and as Christophe already said, they can both be used in the same project.
The differences, one is an approach to building systems using a Domain Specific Language language (DSL) instead of a General Purpose Language and the other is an architectural approach (DDD) to designing and building systems. The similarity is that they both focus on the specific domain.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.