3 ms·
It's because not even the foundations are not properly engineered, mostly due to lack of funding (because they can't be sold, and anyway the market doesn't rewa
by devit 6y ago
It's because not even the foundations are not properly engineered, mostly due to lack of funding (because they can't be sold, and anyway the market doesn't reward proper engineering beyond a basic level, and governments don't massively fund open source), as well as lack of accountability for broken and insecure software.
For instance, look at programming languages: to write provably correct code you need dependent types, but none of the dependently typed languages produce optimal code or have a viable ecosystem. This problem has been unsolved for more than 30 years. We also didn't even have a barely decent production language until Rust in 2015.
Or databases: the best database is PostgreSQL and it doesn't even have things as basic as unsigned integers in core (!!!) and doesn't support multi-master in core (and of course, written in an horrible language, which is C). Again, problem unsolved for more than 30 years.
Or operating systems: all OSes are fundamentally insecure, because they are not written in a proper programming language, and at least the desktop ones don't generally use a hierarchical architecture, but rather have a single gigantic kernel-user boundary (plus they have horrible APIs, written in horrible languages, etc.).
Most other programs have no chance of even being provably correct to a given spec since the foundations are missing, and thus much less of provably correctly implementing the provably optimal solution to a problem. They are not even engineered properly with reasonable expectation of correctness, because there is no liability if you release an incorrect program.
Of course it's not clear if this is fixable without developing a general purpose AI to write the software or massive societal changes.