<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>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.</p>
<p>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.<br>
</p>
<p>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.<br>
</p>
<pre class="moz-signature" cols="72">Jeff Allen
</pre>
<div class="moz-cite-prefix">On 31/08/2018 05:07, Guido van Rossum
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAP7+vJKqhqbnKa-RtibL6y_m48csTuuE2-W=MMmmmqzi968wHg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote"><snip><br>
<div>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.)</div>
<div><br>
</div>
<div>Then again maybe I'm confusing DSL (which appears to be
a Rubyism) with "little language": <a
href="http://wiki.c2.com/?LittleLanguage"
moz-do-not-send="true">http://wiki.c2.com/?LittleLanguage</a><br>
</div>
</div>
<br>
-- <br>
<div class="gmail_signature">--Guido van Rossum (<a
href="http://python.org/%7Eguido" target="_blank"
moz-do-not-send="true">python.org/~guido</a>)</div>
</div>
</div>
<br>
</blockquote>
<br>
</body>
</html>