It would have helped if the author would have given their definition of a DSL at the start.
Embedded in a later paragraph a DSL is defined as having a syntax where "code that must look similar to proper English of the domain."
I tripped over that because, as a schemer, it's easy to discover there's really no fundamental difference between a "DSL" and "a program", in any programming language.
Completely agree; this is a difference of degree, not kind. Quoting myself[0]:
> As soon as you have something as apparently simple as named procedures, you're really writing a DSL, albeit very coarsely, for your business problem.
Embedded in a later paragraph a DSL is defined as having a syntax where "code that must look similar to proper English of the domain."
I tripped over that because, as a schemer, it's easy to discover there's really no fundamental difference between a "DSL" and "a program", in any programming language.