web dev//UI//schema-driven UI//DSL
A domain-specific language (DSL) is a language designed for a narrow problem domain rather than for general-purpose programming. SQL is a DSL for relational data, CSS one for styling, Terraform HCL one for infrastructure.
A domain-specific language (DSL) is a language designed for a narrow problem domain rather than for general-purpose programming. SQL is a DSL for relational data, CSS one for styling, Terraform HCL one for infrastructure.
An internal DSL is embedded in a host language (React JSX, Ruby ActiveRecord queries, Drizzle ORM's query builder); an external DSL has its own standalone syntax and parser (SQL, regex, GraphQL).
When a schema-driven UI config becomes expressive enough (conditionals, computed fields, validation expressions), it is a DSL.
The tradeoff is power against complexity. A DSL restricts what can be expressed, and that is the point: constraints make it harder to do the wrong thing.
A DSL that keeps growing features eventually becomes a bad general-purpose language, as Salesforce SOQL and Jira JQL did when they grew conditionals.