Hi Gianmarco,
Actually yes, Language Engineering is a topic of interest for some companies or other organizations. It is not widespread but it can serve different needs.
If I think about our projects we mainly work in three areas:
- Providing tools for better using existing languages
- Helping in language migrations
- Developing new languages (typically DSLs)
Providing better tools for existing languages can include providing tools to analyze codebases, editors, or new interpreters or compilers. It could also include creating debuggers and simulators. For example, we built several browser-based editors for existing languages. Or we built a JVM based interpreter for RPG, which permits to invoke Java or Kotlin code from RPG and viceversa.
To help on language migrations we build transpilers. For example, from VB to C++, or from PL/SQL to several targets.
Finally we can build DSLs to build digital therapeutics applications or for business applications used by the public administration.
I also did not expect this to be sustainable when I started working on my own, but I realized there was actually request and then I founded Strumenta, which is still a very small company but I hope it will grow over time. There are also other providers in this space. The largest vendor of DSLs is probably itemis, a German based company. They are doing amazing job especially in the JetBrains MPS space. There are also many companies offering transpilers as products and a few offering consulting around language migrations.
Of course a problem of this community is that many out there have no idea about the possibilities offered by Language Engineering, so they never look for these services. One of my obsessions is finding a way to better communicate what we do.
Regarding the tools of the trade, for us the main ones are ANTLR and JetBrains MPS, as you specified.
ANTLR is a parser generator which is quite powerful. There are many of other parser generators but ANTLR is for us the best alternative in practical every case we encountered.
Regarding the creation of DSLs, there is a category of tools named Language Workbenches. Among them MPS is the most mature for writing languages based on projectional editors. There is also Xtext which is quite strong for writing languages supported by textual editors.
Around these solutions there are libraries and frameworks. For example, we frequently use Kolasu in combination with ANTLR. Kolasu is a library for creating AST. Or we created a tool to document grammars written with ANTLR. In the MPS world there are several libraries provided by itemis which have been game changers in the field.
So this is an introduction to this topic but please feel free to ask any question and I can go deeper on specific points