Comment on Anon does some online shopping

<- View Parent
frezik@lemmy.blahaj.zone ⁨5⁩ ⁨days⁩ ago

The flip side of that is entire classes of bugs being removed from modern software.

The differences are primarily languages. A GUI in the 90s was likely programmed with C/C++. Increasingly, it’s now done in languages that have complex runtime environments like dotnet, or what is effectively a browser tab written with browser languages.

Those C/C++ programs almost always had buffer overflows. Which were taken off of the OWASP Top 10 back in 2007, meaning the industry no longer considers it a primary threat. This should be considered a huge success. Related issues, like dynamic memory mismanagement, are also almost gone.

There are ways to take care of buffer overflows without languages in complex managed runtimes, such as what Go and Rust do. You can have the compiler produce ASM that does array bounds checking every time while only being a smidge slower than C/C++. With SSDs all but removing the excuse that disk IO is the limiting factor, this is increasingly the way to go.

The industry had good reasons to use complex runtimes, though some of the reasons are now changing.

Oh, and look at what old games did to optimize things, too. The Minus World glitch in Super Mario Bros–rooted in uninitialized values of a data structure that needed to be a consistent shape–would be unlikely to happen if it were written in Python, and almost certainly wouldn’t happen in Rust. Optimizations tend to make bugs all their own.

source
Sort:hotnewtop