• Muffi@programming.dev
    link
    fedilink
    arrow-up
    91
    arrow-down
    3
    ·
    10 months ago

    Software Engineering. Most software is basically just houses of cards, developed quickly and not maintained properly (to save money ofc). We will see some serious software collapses within our lifetime.

    • SHITPOSTING_ACCOUNT@feddit.de
      link
      fedilink
      arrow-up
      34
      ·
      10 months ago

      Y2038 is my “retirement plan”.

      (Y2K, i.e. the “year 2000 problem”, affected two digit date formats. Nothing bad happened, but consensus nowadays is that that wasn’t because the issue was overblown, it’s because the issue was recognized and seriously addressed. Lots of already retired or soon retiring programmers came back to fix stuff in ancient software and made bank. In 2038, another very common date format will break. I’d say it’s much more common than 2 digit dates, but 2 digit dates may have been more common in 1985. It’s going to require a massive remediation effort and I hope AI-assisted static analysis will be viable enough to help us by then.)

      • insomniac@sh.itjust.works
        link
        fedilink
        arrow-up
        45
        ·
        10 months ago

        My dad is a tech in the telecommunications industry. We basically didn’t see him for all of 1999. The fact that nothing happened is because of people working their assess off.

        • SHITPOSTING_ACCOUNT@feddit.de
          link
          fedilink
          arrow-up
          10
          ·
          10 months ago

          How much software is still running 32 bit binaries that won’t be recompiled because the source code has been lost together with the build instructions, the compiler, and the guy who knew how it worked?

          How much software is using int32 instead of time_t, then casting/converting in various creative ways?

          How many protocols, serialization formats and structs have 32 bit fields?

          • crate_of_mice@lemm.ee
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            10 months ago

            Irrelevant. The question you should ask instead is: how many of those things will still be in use in 15 years.

        • SHITPOSTING_ACCOUNT@feddit.de
          link
          fedilink
          arrow-up
          3
          ·
          10 months ago

          The most common date format used internally is “seconds since January 1st, 1970”.

          In early 2038, the number of seconds will reach 2^31 which is the biggest number that fits in a certain (also very common) data type. Numbers bigger than that will be interpreted as negative, so instead of January 2038 it will be in December 1901 or so.

          • someguy3@lemmy.ca
            link
            fedilink
            English
            arrow-up
            1
            ·
            10 months ago

            Huh interesting. Why 2^31? I thought it was done in things like 2^32. We could have pushed this to 2106.

            • SHITPOSTING_ACCOUNT@feddit.de
              link
              fedilink
              arrow-up
              2
              ·
              10 months ago

              Signed integers. The number indeed goes to 2^32 but the second half is reserved for negative numbers.

              With 8 bit numbers for simplicity:

              0 means 0.
              127 means 127 (last number before 2^(7)).
              128 means -128.
              255 means -1.

              • 257m@lemmy.ml
                link
                fedilink
                arrow-up
                0
                arrow-down
                1
                ·
                10 months ago

                Why not just use unsigned int rather than signed int? We rarely have to store times before 1970 in computers and when we do we can just use a different format.

    • StereoTrespasser@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      10 months ago

      As an everyday user of software who’s not a developer, this is not a secret. Nothing works well for any extended period of time.

      • afraid_of_zombies@lemmy.world
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        10 months ago

        Because it fit into an ecosystem of tech that is constantly evolving. Software as a whole evolves more quickly than most tech. You see the same effect in every other branch of engineering but just slower.

        Example: They are having problems rebuilding a certain famous church in Europe that burned down because the trees that went into it are now all smaller. They can’t get a replacement part.

        I just dealt with this about a month ago at work. A customer machine died and they wanted “an exact replacement”. I explained to sales that is all I need to hear to know this project is going to be a disaster. Parts go out of stock, the network stuff is not as backwards compatible as people think it is, and standards change. They went over my head and demanded the same machine. I get daily emails from our fabricators about the problems they are having. Engineering is not a once and done thing. You need to have the staff and resources to continue to make your product match up with the environment it is in.