Live data from Hacker News

Can Software Be Durable?

news.ycombinator.com

41–48 of 48 posts

Re: Can Software Be Durable?

#41

This is based on fundamentalky wrong assumption that software is something like a hammer or a bulldozer. Software is more like a plumbing. It a) wears out b) requires maintenance c) people maintaining it is integrated part of the whole system.

I think it depends on the project and the programmer. Code I wrote for a Nuclear Power plant is still there. Ditto for the code I wrote for the steel mill. And you can't find ATM machines w/ my code in them easily, but you see them from time to time. Code I wrote to go into the DoD's CAC card is still there, even though the hardware went through a new Rev a decade ago, so it surprises me to say this, but "yay, java?"…

What kind of company do you work for that is doing so much embedded/controls type work? I program hydro power plants and governors with a 30 year mindset and no guarantee I ever get access to the plant again once I sign off as complete

Re: Can Software Be Durable?

#42
The suite of amateur radio applications I began developing in 1990 are still under active development, with an estimated tens of thousands of users around the world. I typically make several new public releases per month.

The current number of reported but uncorrected defects across this suite? Zero.

Re: Can Software Be Durable?

#43

Earlier quoted context omitted.

I think it depends on the project and the programmer. Code I wrote for a Nuclear Power plant is still there. Ditto for the code I wrote for the steel mill. And you can't find ATM machines w/ my code in them easily, but you see them from time to time. Code I wrote to go into the DoD's CAC card is still there, even though the hardware went through a new Rev a decade ago, so it surprises me to say this, but "yay, java?"…

What kind of company do you work for that is doing so much embedded/controls type work? I program hydro power plants and governors with a 30 year mindset and no guarantee I ever get access to the plant again once I sign off as complete

I worked for several companies: DEC and DSCCC for Telephony, IBM for Nuke Plants, DEC again for steel mills, Skybox, Planet Labs and Kubos for satellite, RSADSI for ATMs. Once people know you have embedded on your resume it's easier to get the next embedded job. But embedded work is thin and I've done a bit of web plumbing (reverse proxies, net controls, "converged" communication, etc.)

I've been lucky to avoid the "web framework of the hour" grind... and for the most part work on heisenbugs in net plumbing. Fortunately that part of the stack will invest a little time to avoid serious problems. But their timelines are shrinking to "just long enough to sell the company and it's IP" or about 5 years.

Re: Can Software Be Durable?

#44

Stop chasing trends and changing for the sake of change. At my job, management is constantly forcing us to reinvent the wheel. The systems we used 15 years ago would still work fine, and be very robust and mature by now. Instead, with each re-write new gaps and bugs come to the surface. For some reason we choose to live in Groundhog Day, instead of making the choice to prioritize cheap, boring stability. Each new sol…

> At my job, management is constantly forcing us to reinvent the wheel.

It's called; sustaining the gravy train. Why fix something once when you can "fix it" over and over again...? Grifters and posers.

Re: Can Software Be Durable?

#45

This is based on fundamentalky wrong assumption that software is something like a hammer or a bulldozer. Software is more like a plumbing. It a) wears out b) requires maintenance c) people maintaining it is integrated part of the whole system.

Please explain how a set of instructions for a computer can "wear out" and "require maintenance", Word 2007 still writes documents fine enough for me

The sole purpuse of a “set of instructions” is to serve end users, to fulfill some business function. Without it it is useless bunch of symbols.

The set contain bugs itself that are getting revealed over time. But more importantly end users and businesses function evolve and change and if people have no choice but to adapt to such a “hammer” - it’s a piece of crap, not a software.

Re: Can Software Be Durable?

#46
This is a principle that can be applied outside of this question, but is applicable here. Many non-engineers view software as an asset, *it is not*. Every line of code is a liability, so minimizing the size of a codebase and limiting the complexity of distributed systems (If posible avoid DS's) is key for good reliable software.

If the code needs to be fast (written in a systems language like C, C++, or Rust) write it in Rust. It will limit the amount your can shoot your foot both at the compilation stage and while writing the code (You have to think about what you're doing to avoid the compiler yelling at you. Otherwise, for the love of god write your project in a simple garbage collected language. Not having to handle memory directly removes a lot of what can go wrong.

Re: Can Software Be Durable?

#47
The most consistent non-durability I see these days is business logic intertwined with external (API / file system / env vars) resource access - all scattered throughout layers of a codebase.

(Basically a violation of Factor IV in "Twelve Factor App" [^1])

Certainly not the _only_ durability concern present, but it seems to crop up more extremely and in more places.

Dependency Injection can help mitigate this a little but seems to often be a crutch which covers for poor architecture and enables eventually atrocious readability (a sad admission as I'm fundamentally a fan)

TLDR I find a good question to ask is whether the core logic and journeys can be executed in total isolation from any real resources. If it can't, you'll likely have a rough time testing, maintaining, or scaling - or at least changes will be more troublesome than they could be

(NB: bunch of sibling comments saying similar - but felt worth highlighting the local-first / isolated / separable aspect)

[1^]: https://12factor.net/backing-services

Re: Can Software Be Durable?

#48

I just saw somewhere else that NASA has a manual on exactly this -- apparently there's software running on satellites 30+ years without crashing Also those tales of C64s running HVAC systems for 30+ years. Aren't there German trains running Windows 3.1? I guess i am making an assumption that if it's lasted 30 years, it'll just keep going.

Could you post that manual? I'd be interested in it!
Post reply on HN