4 ms·
Too many people think they can write memory safe code when they can't, and they can't because they're human beings, and humans cannot write correct C. Then, whe
by quotemstr 4y ago
Too many people think they can write memory safe code when they can't, and they can't because they're human beings, and humans cannot write correct C. Then, when you point out that programs written in some languages are immune to entire classes of vulnerability, these people write things like this:
> Memory safeness is just an illusion
We're not going to make any progress as an industry until we stop indulging people who think C is cool.
- blacklight 4y agoI'm not saying that it's impossible to break things in Rust/Go/Dart. Im saying that it's several orders of magnitude more difficult. Bugs like these show that, no matter your level of experience in C/C++, you ALWAYS have a high chance of messing things up on memory access, because there are so many things you have to keep in mind while writing your code - and often these bugs are also very difficult to spot. We need to favour languages that don't make things perfect (there's no such thing), but that at least make it much harder for things to break. Like Stroustrup said, we need guns that make it harder to shoot your own leg.
- pjmlp 4y agoHence why the industry needs a little legal help push, just like when dealing with hazardous chemicals and sharp cutting tools. Thankfully it is starting to take place.
- asveikau 4y agoIt is an illusion, in the sense that memory doesn't actually work "safely", and safety needs to be built from lower level primitives. Mind you, being an illusion is not criticism, and doesn't make it less of a good idea. There's people that believe all perception is illusion. Do they stop perceiving?
- pjmlp 4y agoNot it isn't, dealing with chemicals and sharp tools is hazardous, hence why there are laws in place about work practices that must be obeyed. High integrity computing already has them, we just need a little push to apply them everywhere with liability for non compliance.