There will never be a true successor to C since C is "high level assembly." The lack of pointer checking, unsafe casts and non-existent bounds checking aren't an oversight but by design! Assembly doesn't have them so neither does C! There's no reason to whine about it.
The real problem is that people are using C for the wrong reasons. C is for the development of operating systems and low-level code, not applications.
Zig is more modern but anything that does even one iota more of hand-holding or has anything that looks like a guardrail fails the test.
If you want to write applications use Pascal, Java, C#, Swift or Go.
Is a digital audio workstation or a "AAA" game, with their timing constraints, unbounded computational loads and general demanding performance requirements closer to "an application" or "operating systems and low level code" ?
New development in C++ would be a dire mistake, but you can't expect everyone to switchover on a moment's notice.
C and C++ are a liability for many reasons since memory corruption is notoriously hard to detect, localize and fix. And multi-threading is even harder, almost a dark science to get right.
The big one for me is that Rust packages tend to pull in dozens or hundreds of transitive dependencies - C/C++ code tends to be monolithic, so it has fewer maintainers who could become compromised.
hn_submit · · focus · HN ↗
The real problem is that people are using C for the wrong reasons. C is for the development of operating systems and low-level code, not applications.
Zig is more modern but anything that does even one iota more of hand-holding or has anything that looks like a guardrail fails the test.
If you want to write applications use Pascal, Java, C#, Swift or Go.
PaulDavisThe1st · · focus · HN ↗
hn_submit · · focus · HN ↗
PaulDavisThe1st · · focus · HN ↗
hn_submit · · focus · HN ↗
C and C++ are a liability for many reasons since memory corruption is notoriously hard to detect, localize and fix. And multi-threading is even harder, almost a dark science to get right.
For those reasons alone Rust is a no-brainer.
creata · · focus · HN ↗
The big one for me is that Rust packages tend to pull in dozens or hundreds of transitive dependencies - C/C++ code tends to be monolithic, so it has fewer maintainers who could become compromised.