Explaining why we need “apocalypse-proof software” and some actual software tools for the mentioned situation.

  • Riskable
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 day ago

    I take exception to this one:

    We must make robust software that can work for years without needing to update

    Everything needs maintenance. Everything.

    The world turns and the solar system moves through the universe. Nothing can be left alone for long before you have to do something to make sure it will continue working.

    Everything left alone rots and gets taken back by nature. Both living things (weeds, animals, other people) and non-living (UV radiation, natural radioactive decay, oxidation) will impact anything and everything humans create.

    Even the oldest artifacts that live inside museums need regular maintenance!

    Software runs on human-made hardware that has change cycles that result in backwards incompatibilities, end-of-life issues, general expiration (think: motherboard batteries), and technical debt.

    There is no situation under which any software can be installed once and then left alone forever. Even NASA sends out software updates to remote, far away probes!

    • artifex@piefed.social
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 day ago

      I understand your sentiment but there’s an unbelievable amount of low-level code that will never get updated and will be fine for the lifetime of whatever system it’s in. If you drive an ICE car there’s a chance it will never really need an ECU update. The microcontrollers in most of your home devices, from washing machines to sprinkler systems, probably can’t even be updated. We’re capable of building software that lasts more or less forever, but it often has to be paired to specific hardware and made for specific use-cases.

    • somegeekOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 day ago

      You’re absolutely right. Note that I said “years without updating” not “never updated”. Depending on the domain, I think we can always at least aim to make our software as rugged as possible.

      I think we should take more aspiration from mechanical engineers and car manufacturers.

      A car needs maintenance, but you might just start up a 70 year old engine and it works ok. Our a 70 year old car might be still up and running with minimal maintenance. You don’t want to be rapairing/updating your car every month or week.

      I understand the domains are different, but how much really? I think if we build with the “rugged” mindset and good engineering, there is a lot of improvement to be made to what software is.