This may be subjective, I don’t know: I have this problem, which I’m kind of equating to the “what language for this project?” question, since I can’t seem to solve it.
I’ve been commisioned to write a book about a certain domain (let’s say a very specific branch of physics) for a very technically savvy community, but who are not programmers. It is a book on this subset of algorithms that they use day in day out.
For this, given my audience, I’ve been toying with the idea of defining a DSL, instead of making them learn language X, and discuss the algorithms in this light, instead of in a given language or in pseudo-code.
The question is, then: what are some indications that what you need is a DSL rather than a library of functions to be called from a well-established, general-purpose language?
Thanks.
EDIT: Suggestions so far in favor of DSL:
- Shield from general-purpose language complexity.
- Make “programmer” more productive in his/her domain.
- Make language concepts highly intuitive for newbies in programming. (Just thought of this now)
non-programmers.
targeting a specific field.
need to get job done.
I would choose a DSL over a general purpose language.