4 ms·
Some DSL are success stories (SQL, HTML, CSS, etc). But most DSL I encountered in the wild were terrible: no community, weak tooling and documentation, plenty
by sametmax 8y ago
Some DSL are success stories (SQL, HTML, CSS, etc).
But most DSL I encountered in the wild were terrible: no community, weak tooling and documentation, plenty of design mistakes and limitations.
And there are so many in the shadows of the corporate caves, lurking in systems created by the cowboy of the moment who though that would be the perfect solution to the problem du jour. It then had to be supported forever, leaving bugs, frustrations, and unsatisfied programmers and users in it's wake.
9 times out of 10, a library would have been a better choice.
But even famous and popular open source DSL can be a mistake. For me the most obvious example is Ansible. Because they needed idempotence, and maybe expected other languages to join in, they created a YAML based DSL.
In the end, you get a terrible coding experience, learning the thing is depressing and can only be leverage for this very tool, plus debugging very complicated deployment files is a huge hassle.
The ironic part ? In the end this DSL just call Python modules. It's just bytecode with extra steps.
They should have skipped the middle man and gone with a well crafted Python API + tooling + doc making hard for you to make something non idempotent.
- metters 8y agoWhat do you think about Java/Groovy DSL of Apache Camel? It is well documented but the syntax requires to chain commands with ‘.’ (dots) which leads to awfully formatted code.