When I was in university I was told that memory (i.e RAM) is practically free, and that memory management
is too complicated for average programmers to do correctly. I think that these two beliefs are good
candidatess for why the quality of software has been in an overall decline. By decline I mean that software
is often less responsive than predecessors, while consuming far greater resources (sometimes orders of magnitude more). Most
desktop apps are now produced with Electron, a web-view based development framework which essentially bundles
a browser to render your application. In principle this is not a bad approach. Decades of development have gone into browsers,
and they perform their function reasonably well. However, in practice most Electron apps use gigabytes of memory for simple
tasks and subjectively feel quite bad to use. A good example of this is the Spotify Desktop app, which feels like walking
through glue. Using a third-party Spotify client such as psst is like a breath of fresh air, since it feels instant
in comparison. I have recently been learning more about arena allocators, from some of the advocates in the Handmade community,
such as Ryan Fleury and Casey Muratori. I wonder whether the software industry would have taken a different path if these
had been advocated for more in the past. At any rate, I think we already have the tools to write good software, we simply
need to do it.
|