Domain-Specific Languages

One of my take-aways from "Software Design for Flexibility" is that in the debate between implementing a domain-specific language or a library, a DSL is the correct choice.

Software Design for Flexibility

Given that, I've found some cool DSLs lately (sorry if this post turns into a bookmark collection). I've been a fan of the logic programming paradigm for some time, so I tried to search for languages like that. But for some categories it didn't really work out.

Logic Programming Paradigm

Dialog

Fleng, which can compile FGHC

openradtool, generates client & server code for database Web apps

Tau Prolog

Miscellaneous Paradigms

Previous document processing recommendations

Lowdown, a lightweight markdown processor (which can generate gemtext)

Pandoc, a comprehensive document processor

ypp, successor to Panda markdown preprocessor

PlantUML, for software design diagrams

Pikchr, for general diagrams

Typst, a likely LaTeX successor

J Programming Language

Chapel Programming Language

Conclusion

It seems that a purely general-purpose language like Ada/C++/Rust is rarely the correct choice. This echoes an old work experience of mine, where we implemented a private branch telephone exchange (PBX) on top of an interpreter for a subset of C. Would have been much easier to just use Erlang for that project.

Back to my gemlog