3 ms·
I have two broken chairs. I had to replace a fan motor in a fridge once. I had a window that actually did start leaking. I have never had my washing machine bre
by jchw 3y ago
I have two broken chairs. I had to replace a fan motor in a fridge once. I had a window that actually did start leaking. I have never had my washing machine break down, but I have had a dryer break down.
All of those things break. Congratulations if you've managed to experience life without that.
Anyway, comparing software to chairs is unlikely to yield any useful wisdom IMO, so I'm not actually going to attempt to make an argument based on that. I know that any non-trivial piece of software will have millions of potential codepaths, and Firefox likely has a number of potential total codepaths so large that we could not ever hope to calculate it through the entirety of humanity's existence, so I think it's just only reasonable to expect that some of those codepaths may crash.
For safety-critical applications where you can't afford to have a software bug kill a bunch of people, there's only one realistic option: you can't rely on never having a software bug. You instead must do your best to ensure that as many classes of software bug as possible can't, on their own, cause damage. Ideally you would combine safeguards at every possible level: of course try to eliminate bugs, but also add hardware protections, redundancy, and realistically any kind of mitigation you can.
I do not know how much better software engineering could be with more discipline, but I do know that simply asking humans to not make mistakes when writing millions of lines of code isn't reasonable, and the stakes are not always high enough to warrant writing everything in Ada.
Anyway, if my fridge fails, I have to order some replacement parts or worse, maybe a new fridge. If Firefox crashes, I am annoyed for like 30 seconds until I hit "Restore Session" and it happens infrequently enough that I'm not even sure when the last time was.
(P.S.: It's also worth noting that despite regulation and despite the rigor of traditional engineering, gas-lifted chairs occasionally explode and kill the people sitting on them. I don't think I've ever heard of a Firefox crash directly killing someone, so there's at least that.)
Update: In middle of trying to post this, HN stopped processing requests for maybe 15 minutes. Almost poetic.
- JohnFen 3y ago> All of those things break. Congratulations if you've managed to experience life without that. Physical things wear out. That's an entirely different situation from a product that breaks because it was faulty when sold. It's true that expecting perfection from any complex system is unrealistic, but good software should at least be lacking in crashing bugs that happen with common operations (such as dragging a tab). Just to clarify, I'm not saying that FF (or Wayland) isn't good software. I'm just saying that nobody should just shrug their shoulders and say "that's life" when common operations cause a crash.
- jchw 3y agoYeah, exactly, and that's kind of my point; there's not really much wisdom through that comparison in my opinion. I guess I am just saying that I don't agree with the sentiment behind "software I use should never crash" or the reasoning that chairs don't "crash" or something like that. The trouble is that there's really no 'reasonable' amount of instability. The amount of instability we tolerate is essentially arbitrary. Desktop computers can have uptimes of several months to potentially years, which when I was younger (not that long ago, but long enough) would've been completely unheard of (And yeah, I'm sure microcomputers with vastly simpler software/hardware could run for a lot longer, but I think it's fair to say that's not a very fair comparison). For me Windows XP hardly lasted longer than a few days before things started to get kind of weird, and I consider Windows XP to have been amazingly stable for its time. I think the state that we're at now is actually a result of software engineering and computers getting better. The software has gotten immeasurably more complex than say, the Windows 9x days, and yet stability has improved in many dimensions. If we were still making software with the same complexity and cardinality I can only imagine it would be significantly more stable, but it's always hard for the theoretical part of something to keep up with the practical part.
- RussianCow 3y ago> Physical things wear out. Manufacturing defects and design issues also exist in physical products, so I'm not sure that this is a relevant point. > I'm just saying that nobody should just shrug their shoulders and say "that's life" when common operations cause a crash. Honestly, I find it a miracle that complex software like web browsers and operating systems are able to work at all. Yes, crashes are frustrating, and constant crashes are unacceptable, but you just cannot expect such complex software to work perfectly all the time. Case in point: Just the other day, a macOS upgrade went wrong and had to be interrupted, and now I don't have an admin user on my MacBook.