C and most importantly its std lib never really cared about performance, it's 
just a low-level language with low-level features. If we look at how it manages 
strings(strlen, strcat etc. hardly better than immutable strings), memory(cost 
of many mallocs(poorly managed blocks) and how free works) it becomes clear 
that it just wants to minimize memory usage(forcing the programmer to track 
meta information manually) and doesn't care about wasting cpu cycles. Most of 
C's "speed" comes from using arrays for everything and using the stack more 
than in managed languages.

While some high-level languages might have a hard time competing with C because 
of the cost of their abstractions, it's not like C has a lot of advantages with 
real-world code. With simple programs(benchmarks) we can easily reason about 
performance but in production code it quickly becomes too hard to do the right 
thing.

Reply via email to