6 ms·
> Underlying hardware/OS/firmwares/JVM/etc change. OSes also can be "excellent products". They don't need yearly updates, there's nothing inherent to them that
by grishka 3y ago
> Underlying hardware/OS/firmwares/JVM/etc change.
OSes also can be "excellent products". They don't need yearly updates, there's nothing inherent to them that would prevent them from being made perfect, finished and never updated again.
The only case when an otherwise perfect OS would truly need to update is when new hardware capabilities require OS-level changes to support. Sometimes it may be beneficial to expose these new hardware capabilities as APIs for apps to consume. But again, adding new APIs shouldn't break the existing ones. For example, on phones, this would include things like notched screens, fingerprint readers or multiple rear-facing cameras.
> Dependencies break.
Don't update dependencies. Pick one version that serves you well and stick with it forever. I'm serious.
> Security updates.
It seems like we've already realized that writing code that deals with complex data structures received from untrusted parties in memory-unsafe languages like C is a terrible idea. If you exclude memory safety vulnerabilities, the attack surface shrinks drastically. You'd run out of security vulnerabilities pretty fast if you'd have any to begin with.
> Your house/car need maintenance. Your cities roads/bridges/tunnels need maintenance.
Houses, cars, and road infrastructure are made out of atoms and exposed to elements and stress of our imperfect real world. They wear out. Code doesn't. In 100 years, the bits would be the same they are today (as long as you use a reliable enough storage medium).
- nemo 3y agoThis all sounds fine hypothetically, you might want to take a look around at the world for a while to see why it doesn't fit your model. Obviously your idea hasn't happened, and there's good reasons why this is the case that you could readily discover if you took a look at reality instead of your model of reality.
- steveBK123 3y ago> there's nothing inherent to them that would prevent them from being made perfect, finished and never updated again. theres this thing called the internet, to which the OS connects, filled with adversarial actors, so no this is not correct at all
- chromoblob 3y ago> this is not correct at all Why? There's a thing called formal verification of software.
- grishka 3y agoAnd? How do updates help any of this? Firewalls are a thing. Memory-safe languages are a thing. Unit tests are a thing. Fuzzing is a thing. And it is not an OS's job to protect the user from themselves (i.e. social engineering). If you've installed malware, you deserve the consequences and you will be more careful next time. It's okay for powerful technologies to require a minimum level of education.
- duckmysick 3y agoI'd rather use an imperfect product that does a good-enough job instead of waiting for a perfect product. The perfect OS doesn't exist yet. Right now, I'd rather use some OS than no OS. Why a perfect OS doesn't exist? Good question. Maybe because the programming field is relatively immature so we're still figuring things out and we don't apply formal verification to everything. Compare that to say, architecture, where we can calculate how much weight a structure can withstand. Or the other way around: what do we need to do to support an X amount of load. I guess the stakes are lower too. I wouldn't walk on a wobbly bridge, but I don't mind if a desktop app I use crashes occasionally under unusual circumstances. Critical software (say, aviation) is generally written with more care but it's still not perfect.