← Back to context

Comment by alexchamberlain

13 years ago

Some of us rather like C...

Yeah, which is why traditionally a LOT of languages, particularly early in their careers, have compiled down to C. Really aside from JVM targeted languages, it still tends to be the trend.

So it is pretty weird for that to be highlighted as the big distinctive feature.

  • > Yeah, which is why traditionally a LOT of languages, particularly early in their careers, have compiled down to C. Really aside from JVM targeted languages, it still tends to be the trend.

    What about .net/mono targeted languages, javasvcript targeted languages? And custom interpreters jit(frequently but not always written in c)

    • CLR targeted languages are few and far between, as are JavaScript targeted languages, so I didn't consider them a big enough factor to impact the "trend".

      People focused on entirely new languages tend not to target JITs first for the same reason they tend to not target direct machine code first: it just adds complexity to getting a proof of concept out the door. LLVM, the JVM, and yes, the CLR are starting to change this, but aside from the JVM, there are still only a handful of languages going that route.

  • LLVM has C backend, though it is not fully supported. It seems like it would.be helpful for bootstrapping LLVM for a new architecture and for A/B testing of other backends' performance and correctness.

Sure, but that doesn't make it a good intermediate representation for a programming language. I really like CoffeeScript, but compiling to it would be insanity.

That said, there are some good reasons for compiling to C. Not every architecture has a backend for LLVM yet, after all.

  • Some would say "I really like JavaScript, but compiling to it would be insanity." And yet CoffeeScript is there. How is that better than a language which compiles to C?

    • If you read the second part of my comment, you'll see that I agree that there is a legitimate reason to compile to C. It turns out to be identical to the legitimate reason for compiling to JS - some platforms can't be targeted directly, so you make do with the options you have.

      I was not disputing the conclusion that it can make sense to compile to C. I was just saying that "people like C" doesn't support that conclusion.

C is eternal. Have you tried Go?