4 ms·
The authors of Rust and Zig fail to understand why C is ubiquitous: “worse is better.” You can’t replace C with a better C because that is counter to why C is u
by CyberRabbi 6y ago
The authors of Rust and Zig fail to understand why C is ubiquitous: “worse is better.” You can’t replace C with a better C because that is counter to why C is ubiquitous in the first place.
To be fair most engineers (including many brilliant ones) fail at grasping the intuition of providing simple but not 100% adequate solutions. The difficulty of the last 20% will drive most potential users/implementers away, and reduces the virality.
- asplake 6y agoWhat makes you so sure that they don’t understand? And how are we ever to make progress if everyone’s problems have to addressed from the beginning?
- CyberRabbi 6y agoI think you’re missing my point. There is a non-linear relationship between the ubiquitousness of a language and its quality. That is to say, more quality does not always result in more ubiquitousness. That does not mean progress is not possible, just that it’s not necessarily viral. If the zig and rust creators understand that then they should stop measuring their success as a percentage of the size of their user base to the size of C’s user base because their goals are arguably counter to having a user base as large as C’s.
- bogeholm 6y ago> If the zig and rust creators understand that then they should stop measuring their success as a percentage of the size of their user base to the size of C’s user base ... Please provide a source for these alleged success criteria.
- Thiez 6y agoIt seems like "worse is better" only applies selectively when C has the advantage. For instance, Rust has no formal spec, but surely that is fine according to the "worse is better" philosophy, because the current situation serves most, but not 100% of users. Rust doesn't support ancient architectures that aren't being manufactured anymore, but Rust supports most common architectures. Surely that is fine according to the "worse is better" philosophy? It seems many who favor C over Rust don't actually believe in "worse is better". A language must be equal or better than C in all possible aspects before it can be greeted with reluctant distrust instead of hostility. "Worse is better" can be used to defend C, but never a new language.
- CyberRabbi 6y agoI think you’re missing what the essence of “worse is better” means. It’s about the complexity of provided solutions, not generic “badness” or undone work. This is explained well in the original “worse is better” paper (lisp vs C). Even if rust lacks a formal spec and ports to multiple platforms, it is unarguably more complex than C and is an example of “MIT” engineering. Both Rust and Zig pursue the “right thing” whereas C pursued the simplest workable thing, thus increasing its virality.
- pjmlp 6y agoUntil Zig fixes use-after-free, it isn't pursuing the "right thing".
- pjmlp 6y agoApple, Google, Microsoft, ARM, Oracle are taming C with hardware memory tagging. Apple and Microsoft on top of that, have their safe C dialects. Red-Hat, Google and Microsoft are adding lifetime analysers to their C and C++ compilers. I think they understand why C is ubiquitous, and why something has to be done to fix it.
- CyberRabbi 6y agoRust/Zig may have reasonable success in large companies such as those you mention. Lisp also finds strong usage in specific domains and industries. Their complexity will limit their success in the long tail of use cases where C is well established and “good enough.”