Hacker News new | ask | show | jobs
by canttestthis 951 days ago
> Bits don't go bad if you neglect them for too long

They do... Other than in the obvious physical sense (bit rot), your assumptions about the environment that the code runs in might change (y2k), the foundation your software is being built on is being actively and continuously updated in ways that may break your code (ipv6, forward incompatible security fixes), the resources your code uses are finite and the constraints around the resource usage may change... Looking at it from just first principles maintaining a Very Large software system in production is immensely complex.

2 comments

Somehow, in most other areas of engineering, people know how to reliably make things that last. All mistakes that were ever made are documented and taught so they're never repeated. Yet in software, half of the assumptions consistently turn out to be wrong (yeah, who knew there could be years after 1999) and the quality is severely lacking because "we can always push an update" so everything is in a perpetual beta.

> the resources your code uses are finite and the constraints around the resource usage may change

How? A chat app or a web page has no business using several gigabytes of RAM. About the only thing that I can think of that does push the available resources on modern devices to the limit is AI. Which is very niche and gimmicky, at least right now.

But then yes, it makes sense to update OSes to support new hardware. But only for that. Adding a couple of drivers doesn't warrant a major OS release. Neither does exposing new hardware capabilities via APIs so apps could make use of them. And redesigning UIs just for the sake of it is indefensible, plain and simple.

Re: y2k; Yeah, who knew that year numbers were going to keep increasing? No one could have predicted that. /s
I don't feel like debating the predictability of any individual bug is in the spirit of the argument that I'm making here, which is just that software systems (absent formal verification + running in a completely isolated vacuum) are going to break. Sure, people might have been able to predict it but it still broke systems. Marking the system as 'complete' wouldn't have kept it working.