"Compiler" encompassing "transpiler" I think is wrong anyway. There's a third term that doesn't seem to get nearly as much pushback, that didn't come up in your link, has yet to be mentioned here, and isn't in the article, but adds context for these two: decompiler.
Compiling is high-level to low-level (source code to runnable, you rarely look at the output).
Decompiling is low-level to high-level (runnable to source code, you do it to get and use the output).
Transpiling is between two languages of roughly the same level (source code to source code, you do it to get and use the output).
Certainly there's some wishy-washy-ness due to how languages relate to each other, but none of these terms really acts like a superset of the others.
By the definitions given they can not, as no function subsumes another.
By whatever you define as "compiler" maybe, but I see no point in this kind of interaction that essentially boils down to subsumtion to an entity you refuse to describe any further.
Is there a merit to this?
Can whatever you call compiler do more? Is it all three of the things mentioned combined?
Who knows - as is stands I only know that you disagree with the definitions given/proposed.
I think they are fine definitions. I think a transpiler, a term rewriter, an assembler, a stand-alone optimizer, and even some pretty printers are subclasses of compilers.
I define a compiler as something that takes an input in a language, does transformations, and produces a transformed output in a language. All of them do that, and they are more specific terms for types of compilers.
Fair. I don’t believe I said they were useless terms for differentiation of types of compilers, though. I just said they can all be thought of as a class as different types of compilers.
Primates, canids, felids, and ungulates are all subsets of mammals and all have further subsets. Mammalia is further a subset of animalia. When we’re discussing categorizations, it’s often helpful to have multiple levels of categories. I’m not sure why you seem to be calling out specificity as a gotcha, when my argument isn’t at all that we don’t need multiple terms. It’s that we should consider these things in terms of similarity and specific differences, not throw away a term as useless as the article and its headline suggest.
Compiling is high-level to low-level (source code to runnable, you rarely look at the output).
Decompiling is low-level to high-level (runnable to source code, you do it to get and use the output).
Transpiling is between two languages of roughly the same level (source code to source code, you do it to get and use the output).
Certainly there's some wishy-washy-ness due to how languages relate to each other, but none of these terms really acts like a superset of the others.