Well, it's always a tradeof, isn't it? Manual memory management gives you greater freedom and performance, with added risks. That being said, performance is what you want when it comes to low level layers that other layers have to rely on - e.g. You don't want your net stack be dragged down by a slow TCP/IP implementation.
When all the rust libraries are in my package manager and when rust is as simple to write as C let me know, until then it's laughable that you think it's a replacement.
To replace C rustc needs to be a drop in replacement for gcc, not a whole platform on it's own as it is now with cargo.
> Good C is not simple to write, that's the whole point.
Seriously. It's like we're all riding unicycles on tightropes to get around, and someone invents sidewalks and bridges, and everyone is like, "well if you just learned to ride your unicycle properly and worked tirelessly on your balance, you wouldn't have this problem of 'falling to your death' or 'recklessly endangering other people'".
The reality distortion field around systems programming is strong.
But men, those sidewalks and bridges are expensive ! And all my drivers know the shortcuts on ropes and will have to learn the whole map again if we use the road. Plus our unicycle have wheels shapes for ropes, not side roads, it would take us a lot of time and resource to do that. The whole industry is stuck in that case, and the market has a huge inertia you know.
You just can't use sidewalks and bridges right now instead of ropes. It's just not pragmatic.
> That being said, performance is what you want when it comes to low level layers that other layers have to rely on - e.g. You don't want your net stack be dragged down by a slow TCP/IP implementation.
What you don't want, is a whole economy disrupted by a poor technical decision. Abstract technical goals like "performance" are not valuable goals in themselves.