They're all C programmers!
They're all C programmers!
Why to you think all of them created languages to replace C on their daily work?
There are many reasons to use a specific programming languages besides "I like it".
For example I will never use C on personal projects, but will use it without any complaints if that is what my customers ask for.
In what possible sense can it be described as an assembler?
If there was, then it wouldn't be "portable"
I think the joke/humor/analogy is that C compilers are so good and C itself is so low level, that you don't actually gain much (if anything at all) by dropping down to ASM now (compared to 10-20 years ago).
Only when I’m writing very performance-sensitive code do I actually think “here’s a branch, there’s a load, yonder is a divide”. Most of the time it’s “eh, compiler’ll get it”.
For example, you wouldn't want to implement a garbage collector in a garbage collected language; C won't get in your way.
This is also why there are loads of C libraries out there: they can be used with bindings from essentially any other language, which is generally not true for libraries implemented in non-C languages (in particular, C++).
Remember that it also enforces the idea of types, scopes, blocks, functions, the heap and the data stack quite strictly. It might be a very low level language compared to something like Java, but in terms of being unassuming of architectural intent, I can't say that I agree that it is even in the same ballpark as any of the assembly languages I've used.
Also there's no fast way to check arithmetic overflow from portable C, which limits bignum performance.
Due to these limitations better portable assembly languages like C-- have been designed; these days LLVM bitcode is an option as well (which is not actually portable IIRC...).
"By design, C provides constructs that map efficiently to typical machine instructions"[1]
I believe this is what the op was getting at. This is why C is called a "mid level" language.
[1] http://en.wikipedia.org/wiki/C_%28programming_language%29
C is one of the few languages today that still gives you very precise control over how you use memory. That can be a powerful tool, especially given how important effective cache usage is on chips.
Wasn't CFront written in C++?[1] (Of course, the initial version of C with classes was probably written in C.)
Which languages do you think guys at Microsoft, Apple and Google get to choose?
Those developed by their employers or others?