Hacker News new | ask | show | jobs
by gfodor 1455 days ago
At some point we lost the original concept of DSLs. The “domain” here was supposed to be fairly far removed from the realms of software engineering. For example, if you work for a bank, a DSL couched in the needs of financial modeling for the problems of the bank. If you work in automotive, a DSL that is hand crafted for the purpose of running on the car you are building. In particular the idea was very much these would be used by non-programmers. Programmers would work with domain experts to organically evolve one or more, intermixable domain languages, in the interest of more precisely capturing their knowledge than written specs, and allow them to iterate on the software independently from engineers. The domain languages often were intentionally imprecise and ambiguous, with programmers tasked with providing generators and interpreters into a running system. I think the concept still has merit - that we still live in a world where domain experts are largely siloed from being able to actually adjust the behavior of the software systems they’re stakeholders in is sign enough there is still work to be done, even if DSLs aren’t the solution.

The concept kind of came and went, the two projects that really went all in on the idea were JetBrains MPS (still alive) and Intentional Software (now dead.)

Edit: MPS has some case studies on their site that nicely demonstrate the concept here - as you can tell, it’s very different than the way we typically use DSLs :)

Edit2: they have a pretty good video that explains the core concept above here: https://m.youtube.com/watch?v=eEUMAx3g6do