Honestly C is the future. I don't know why people would move from C to any other language. It does the job well enough that there's no reason not to use it.
Think about it. Every modern application depends on a piece of code written in C, not Rust or Zig or any other language (except assembly). It can be used to solve any problem, and works in more places than any other language.
These arguments about "security" and "memory safety" are all pointless anyway in the face of modern code scanning tools. Cross-platform dev can be done trivially with preprocessors. If that's not enough, I don't know what to say. Get better at writing C obviously.
Lifetimes and UB should all be kept in mind at all times. You can explicitly mark lifetimes in your C code if you want using comments. Any index-out-of-bounds bugs, use-after-free, etc are just signs that your team needs more training and better code scanning utils. Write more tests!
Anything more complex than a simple typedef
is just a sign that you're over-engineering your solution. #include
is both simple, and does exactly what you'd expect any reasonable language to do - paste your referenced code inline. It's genius, and doesn't require any complicated explanations on namespaces and classes and subclasses and so on.
So which will be the future? C obviously.
/s