3 ms·
I agree with your general sentiment: there’s a lot of powerful features and de-duplication one gets with a single engine to analyze many languages, a-la IDEA.
by matklad 6y ago
I agree with your general sentiment: there’s a lot of powerful features and de-duplication one gets with a single engine to analyze many languages, a-la IDEA.
At the same time, there’s quite a bit of synergy if you go in the other direction, and provide a unified language specific tooling, especially for languages for which it is meaningful to self-host.
It’s sort-of like an expression problem: no matter how you slice it, there’s NxM cells to fill.
Ideally, one should have both. Incidentally, Rust has both :)
It’s also instructive to compare with LLVM: backhands is where all the languages are the same, frontends is where all the languages are different. It’s pretty hard to invent a “frontend IR”, which doesn’t make all the languages feel the same.