upvote
> It's a matter of how many fucks the devs gave about doing quality work.

It's more a matter of how much management cares about quality, and how much time and how many resources they're willing to devote to it.

And that's a function of how much the quality of the code actually matters in the market.

reply
FANG doesn't have resources, but indie coders and game studios do?
reply
Notice I said how much management is willing to devote, not how much they have.
reply
You can have all the resources in the world but it won't matter if you spend them on something else.
reply
I think you’re a bit optimistic about the quality of a triple-A game’s codebase that was rushed to a holiday release date. I have slightly more tolerance for bugginess in a game.
reply
Has there ever existed a C or C++ codebase of significant size that hasn't had exploitable memory corruption issues? I don't think we can keep saying it's a question of the dev's passion or skill or whatever, if no dev has ever managed to do it.

That's not to say memory corruption issues are the only kind of issues, and rewriting a mature C/C++ codebase into a memory safe language may well introduce more issues than it fixes...

reply
An example that comes to mind is postfix (the SMTP daemon). It hasn't had zero memory safety issues, but nearly so. Certainly an abnormally low amount given the size/complexity of the project and the number of eyes on it.

It's also had a pretty 'normal' (read: higher) amount of non-memory related bugs such as SMTP smuggling of filesystem permission TOCTOU, so it's not like its devs are somehow really good at just not writing bugs.

Maybe they have chosen a software architecture that allows them to avoid complicated memory-related logic? I genuinely don't know, would love to hear from a postfix developer.

reply
Outside of specially designed and verified code, probably not. Although there are certainly many projects where there are so few memory-safety issues that is is irrelevant in practice compared to other issues. Most of the issues I see are very easily preventable by using a string and a buffer abstractions that do bounds checking.

Also I think it is noteworthy that memory-safety issues are really well-defined and can automatically be found using sanitizers and fuzzers or verification tools. This is not the case for many other correctness issues and once memory safety issues are fixed this will remain as a major problem for all code.

reply