New to the community, so late to this chat.
I’ll just add that DSLs don’t have to be executable. They can simply describe data and information. They may also be processed, but that doesn’t necessarily mean computation. And while they may have a smaller surface area, they don’t have more meaning to those not familiar with the nomenclature or jargon of a particular domain.
We think of them in terms of programming, but consider musical notation. You are limited to notes A-G, duration, modifiers, and connectors. The clef and time signature also apply. Within those constraints you can communicate “in pictures” in a very dense, but coarse, manner. Compare that to specifying things as a list of absolute frequencies, positions, and durations as numbers. The notation hides details, limits what you can express, but most importantly adds meaning through different “dimensions”.
1 Like
I agree this is true in principle, however most of the examples I can think of are executable (or at least drive some calculations.
I would like to see more examples or non-executable DSLs. I think they would be particularly helpful as arguments that programming and using a DSL can be very different
- Grammars themselves, which define languages: *BNF, McKeeman, etc.
- Data definition languages: JSON, YAML, EDN, parts of SQL
- Document formats: RTF, XML, HTML, CSV, Markdown
- Config file formats: INI, TOML
- Misc: SemVer, Calculus, HDL, Dewey Decimal System, Ballet, editorial markup
We can certainly argue that anything done with a computer necessarily involves processing. But so do things processed by our brains, some specifically drive calculations or computations. What matters is the efficiency gained from ruling things out; things that aren’t important.
One of the challenges is that there is, IME, no single example, or even a few, that we can apply universally. To help people understand the concept, we need to tailor the message to them. What domains do they know? It’s like describing movies or books in terms of others. “It’s like Star Wars meets True Grit.”, or “It’s Lord of the Rings, but they’re all robots.” Not always similes, but if you’re talking to someone who doesn’t know what Star Wars or LotR are, it means nothing.
Let add some examples related to the OPC UA specification:
Consider sharing your point to the discussion What is Information Model vs Semantic-data