only in using one of them. DSLs, however, are
most of the time completely different from the
mainstream languages in which applications are
written. A general-purpose programming language
(GPL), suitable to write a large application, is
generally not suited to domain specific modeling,
precisely because it is too general. Using a GPL
for domain-specific modeling would require too
much expertise from the end-users and wouldn’t
be expressive enough for the very specific domain
the application is supposed to focus on.
As a consequence, it is often taken for granted
that when a DSL is part of a larger application, it
has to be completely different from the applica-
tion’s GPL. But what if this assumption was wrong
in the first place ?
In addition to that, the use of several languages
in parallel, within the same application, may be
regarded as a disadvantage (Ghosh, 2011):
Unless carefully controlled, this polyglot
programming can lead to a language cacophony
and result in bloated design.
Indeed, every time a standalone DSL needs
to be extended, the whole language production
chain may need to be modified in ways that were
not anticipated.