| ▲ | buzzerbetrayed 14 hours ago | ||||||||||||||||||||||
Nah. That’s not it. Software is just legitimately harder than most physical engineering (notice I didn’t say all). How often do skyscrapers fall over, or bridges collapse, or your CPUs fail unexpectedly, or submarines implode. Rarely. In fact, I bet most people reading this thought of the same few examples. Then look at software. When is the last time you encountered a bug? Have you ever heard of bug free software? Even at the elite, smartest, most educated levels of software, there are still bugs everywhere. Humans are essentially incapable of writing bug free software. And it isn’t because a bunch of uneducated dummies that didn’t get degrees are the ones writing it (as you arrogantly implied). It’s because it’s way fucking harder to do perfectly or near perfectly. That doesn’t mean there isn’t incredibly hard physical engineering. Obviously there is insanely difficult engineering in nearly any variety. But if you ask a civil engineer to design you a perfect bridge, they probably will. Ask a software engineer with all the experience and education in the world to build you a perfect podcasting app, it simply isn’t happening. | |||||||||||||||||||||||
| ▲ | williamdclt 6 hours ago | parent | next [-] | ||||||||||||||||||||||
You're literally the first person I've ever seen suggesting this, I actually thought you were being sarcastic! My POV (and most people's, I think) is that software is buggier because software people are wildly unserious compared to hardware people (and other engineering disciplines like civil engineering). Which is an alright trade-off in the very large majority of cases, as software is rarely very important and is easy to update, whereas hardware and bridges are very high-stake and extremely costly to update. > if you ask a civil engineer to design you a perfect bridge, they probably will. Ask a software engineer with all the experience and education in the world to build you a perfect podcasting app, it simply isn’t happening The civil engineer gets to rely on extremely high-quality very-serious civil engineering work, built over millenia. The software engineer relies on shaky (ie buggy) work from past nowhere-as-serious software engineering work, built over ~70y. The fact that the software engineer can do anything at all on such small and buggy past work shows how easy it is compared to civil engineering. In my mind, saying "software engineering is shown to be harder by the presence of bugs" is akin to saying "LEGO building is harder, people build stuff that collapses all the time" | |||||||||||||||||||||||
| ▲ | tarsierscripter 13 hours ago | parent | prev | next [-] | ||||||||||||||||||||||
How often do skyscrapers fall over, or bridges collapse When skyscrapers fall or bridges collapse, the negligent engineers who knowingly signed off on them go to jail. When was the last time a software developer or manager went to jail over a known bug? | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | matwood 3 hours ago | parent | prev | next [-] | ||||||||||||||||||||||
I don't think it's whether one is harder than the other, it's about constraints or in software, lack of. Hardware is constrained by the physical world while software has much fewer constraints leading to a huge number of permutations. | |||||||||||||||||||||||
| ▲ | applfanboysbgon 9 hours ago | parent | prev | next [-] | ||||||||||||||||||||||
lol no. This is just a sort of learned helplessness that is endemic in the industry. A way to protect your ego: nobody could have avoided shipping that critical bug to production, so it's not your incompetence that led you to do it! You want a podcast app, I will give you a formally verified podcasting app with zero bugs. I will engineer the shit out of it. Just give me a year and $500,000. Oh, you don't want to? And that right there is why we have bugs. Not because it is hard, but because nobody gives a shit. Even though companies lose way, way more than what it would cost to prevent severe bugs from happening, some things you literally cannot prevent without government regulation, as engineering itself went through after a period of nobody giving a shit and a lot of people dying as a result. | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | sgarland an hour ago | parent | prev [-] | ||||||||||||||||||||||
> submarines implode Fantastic analogy, and I assume you already know where I'm going with this. The Titan submersible [0] implosion was by all accounts due to studiously ignoring best practices and test results. They shipped fast. In contrast, James Cameron's Deepsea Challenger [1] was a slow and methodical build, and has heavily redundant backup systems for everything. For example, the ballast release system operates by demagnetizing coils that hold the ballast; that way if they have a system failure or power loss, it fails open, and they ascent. If that somehow fails, the supports for the ballast will corrode from sea water before the oxygen runs out, so in the worst case, it's sitting in the dark for a few hours before heading back up. Or, let's look at the U.S. Navy submarine program. I was a propulsion plant operator (reactor operator + throttleman) on a Virginia-class sub. Though I can't go into specifics, "redundant" doesn't begin to describe it. FFS, the San Francisco (688-class sub) ran into an underwater mountain at flank [2] and survived. The SUBSAFE program [3] was a direct result of the loss of the Thresher [4], and to date, no SUBSAFE-certified submarine has been lost. > Then look at software. When is the last time you encountered a bug? Have you ever heard of bug free software? You're conflating "free of defects" with "capable of gracefully handling defects." NASA writes as close to bug-free as I think you'll find, but even theirs isn't perfect [5]. The difference is the ability for the software to work through or around those problems. Submarine / submersible design and construction is the same. Are the engineers, welders, machinists, electricians, etc. attempting to do perfect work? Of course. They also are aware that perfection is impossible, and so the design accounts for that. 0: https://en.wikipedia.org/wiki/Titan_(submersible) 1: https://en.wikipedia.org/wiki/Deepsea_Challenger 2: https://en.wikipedia.org/wiki/USS_San_Francisco_(SSN-711)#Gr... 3: https://en.wikipedia.org/wiki/SUBSAFE 4: https://en.wikipedia.org/wiki/USS_Thresher_(SSN-593)#Disaste... | |||||||||||||||||||||||