>>45What a language is implemented in is completely irrelevant in a discussion of languages because no matter how much the implementation changes, the language stays the same. On Lisp operating systems, C was implemented on top of Lisp. Does that mean Lisp is the better low-level language? If it doesn't, why should it mean anything with the roles reversed? Current operating systems are C operating systems after all. A monoculture doesn't make a system better, it just hides its flaws under a mountain of resources. You could use the same non-argument to ``show'' that PHP is a great language for web development even though it is a major source of errors and there has never been a single fully correct program written in it. Indeed, PHP toiletscrubbers employ the same rhetorical tricks, including the one where ``the best language is the language you know'', which is not a point about languages but about your own lack of knowledge.
I also say it's the compilers purpose to efficiently interface the CPU.
Nobody argues that a language other than assembly should directly expose hardware-specifics. The C compiler has a harder job here because it must recognize patterns in a weak language rather than break down high-level statements.
I think C is a good language exactly because it is not low-level, while it is also not high-level.
What purpose does it serve if it does nothing well?