| I disagree and would say DSLs should go away if possible. DSLs like SQL are the norm and you can see the problem of them in basically every project. You either use ORMs or you end up hand rolling SQL rows into Structs or Classes. The whole mapping usually looks like crap and contains a bunch of implicit corner cases, which eventually end up being a footgun for someone. Usually the SQL sever runs somewhere else, the ports are wrong, the language version is wrong, or a migration failed and a function is missing yada yada.... The same is usually true for Regexp. There are a billion dialects and every single one of them is basically unreadable, incomplete or just weird. The same is true for microservices with tons of config files for dev, staging, testing and production... Everything has its own version, can be down or mutate some random state somewhere while depending one other servcies. It always breaks at the seams. Increasing the amount of DSLs increases the amount of seams and thus makes software worse. |
Regexes can be abstracted from exactly by making a more readable DSL.
Config files and the stuff accepted therein are small languages as well.
What are the alternatives to making little languages?