The word "domain" appears in this sense on the first page of Aho and Ullman and ANTLR (which I know you've used) describes itself as a tool for building domain-specific languages. Both pre-date Ruby I'm fairly sure.

James Lu, quoting Jonathan Fine, used the term "internal DSL" and although that's new to me, people seem to be interpreting it in the sense that Gradle is a Groovy DSL (note caps), a build tool a lot of software developers will be familiar with. In that case, what you write really is Groovy, but the execution environment has been pre-conditioned with objects and libraries that (almost) make a new language. When you understand what's going on (not sure I always do), it becomes possible to mix Gradle statements and Groovy freely. The most immediate benefit is that all the apparatus of expressions and types/methods is already present. So "internal" is the key word.

The point about punctuation is spot-on, I think: Groovy is relatively free of (makes optional) some punctuation, including the parentheses that make calls easily identifiable in Python. So quite possibly starting from Python is limiting if what you want is an*internal* DSL with a grammar you choose: the object system is fantastic-plastic, but the grammar is not. DSLs embedded in Python are common, of course (f-strings, regexes, SQL), and DSLs can generate Python from fragments with almost no constraints on their own grammar. iPython strikes me as possibly a Python internal DSL, or Django, but what they've done does not take us far from pure Python.

Jeff Allen

On 31/08/2018 05:07, Guido van Rossum wrote:
<snip>
Hm. YAML is indeed a great, readable alternative to JSON or XML. But the term DSL implies (to me) more than just nested key-value pairs. (Though who knows maybe that's all Keras needs, and then it's a poor argument for having a DSL.)

Then again maybe I'm confusing DSL (which appears to be a Rubyism) with "little language": http://wiki.c2.com/?LittleLanguage

--
--Guido van Rossum (python.org/~guido <http://python.org/%7Eguido>)


_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to