Off the top of my head, I'd say that C is used for systems programming due to direct addressing of memory via pointers and it being as low level as you can get without getting into machine specific assembly. Speed is more of a byproduct of being extremely low level since you've got very low overhead.
I'd be curious what you see as the inherent flaws in C, and what would you want to see out of a better systems language?
Well I don't know it very well, that's partly why I'm wondering. But it is not very expressive.
Is it not possible for example to have higher order functions in a low-level language?
The type-system could be made safer(learn from Haskell).
Comments
Off the top of my head, I'd say that C is used for systems programming due to direct addressing of memory via pointers and it being as low level as you can get without getting into machine specific assembly. Speed is more of a byproduct of being extremely low level since you've got very low overhead.
I'd be curious what you see as the inherent flaws in C, and what would you want to see out of a better systems language?
Well I don't know it very well, that's partly why I'm wondering. But it is not very expressive. Is it not possible for example to have higher order functions in a low-level language? The type-system could be made safer(learn from Haskell).
OCaml may be a good candidate; consider the example of Melange which was 1/3 the LOC of equivalent C with the same performance.