3 ms·
There is Cyclone, Checked C, Deputy. Such "C-but-weird" languages have an "uncanny valley" problem: • "C, but safer" on its own is not very enticing. With no o
by pornel 6y ago
There is Cyclone, Checked C, Deputy. Such "C-but-weird" languages have an "uncanny valley" problem:
• "C, but safer" on its own is not very enticing. With no other benefits, it's easy not to switch, and instead promise to try harder writing standard C safely, or settle for analysis tools or sandboxes.
• People who use C often have backwards compatibility constraints. Switching to another compiler and a dialect that isn't standard C is a tough sell. You can still find C programmers who think adopting C99 is too radical.
• Programming patterns commonly used in C (rich in pointer juggling, casts, and textual macros) are inherently risky, but if you try to replace them (e.g. with generics, iterators), it stops looking like C anyway.
So "safer C" is unattractive to people who are tied to C implementations or don't want to learn a new language.
But people who do want to learn a new language and use modern tooling, don't want all the unfixable legacy baggage of C.
Rust dodges these problems by not being a "weird C". It's a clean design, with enough features to be attractive on its own, and safety is just a cherry on top.
- jokoon 6y agoSounds like marketing to me. It will convince young, gullible CS students, but not software engineers.
- Nuoji 6y agoCyclone was not fully realized though. And there are languages that try to keep to C and add some minor safety improvements, eg my language C3 (subarrays/slices, contracts, all UB has runtime checks in debug builds and more)