There is this weird notion among software developers that software goes bad just like milk does.
It literally works and will always work exactly the same way (including all good and bad things about it) as the day it was created. ¯\_(ツ)_/¯
There is this weird notion among software developers that software goes bad just like milk does.
It literally works and will always work exactly the same way (including all good and bad things about it) as the day it was created. ¯\_(ツ)_/¯
This is also somehow (thought I couldn’t say how exactly) related to how lots of programmers believe that “but the next update to ChatGPT will make it a real boy”—there’s something fundamentally flawed with their ability to think.
@finitebaffle No, it's not.
@thomasfuchs this is so wrong Thomas 🙄
@mhkohne In many environments, for example web browsers, this just isn't the case.
There's plenty of web apps, even very complex ones, that work just as they did 20 years ago with no changes.
@thomasfuchs Yea, but the rest of the environment is swirling around like a freaking blender and tends to break things behind your back. You are correct, but in the real world the effect is as if software rots.
@mhkohne I'm not saying those web apps are good or bad; just that modern browsers run them just fine.
@mhkohne Yet--web apps are exactly something that developers tear down and reimplement with the latest development craze every like 3 years or so.
@dascandy Correct.
I think a lot of the issues people are seeing with things breaking is due to bad planning and bad design of software; for example being overly reliant on dependencies and on 3rd-party APIs.
@thomasfuchs You're right, but you have the unpopular opinion.
Software doesn't need to "go bad" if it's been designed to be well-working. Even without updates in years.
@dascandy In many cases this is due to just not questioning basic assumptions and just doing what everyone else is doing.
@finitebaffle FWIW scriptaculous works perfectly fine in 2025 browsers
e.g. puzzle demo here: http://madrobby.github.io/scriptaculous/puzzle-demo/
@thomasfuchs Show me an app built more than a few years ago that still launches.
Scriptaulous helped me move from compiled native apps and launch my 20y webdev career (thanks btw ❤️) and those apps were solid as a rock for years.
But I doubt if I spun up the exact same LAMP stack now there’d be a quagmire of deprecations to wade through.
Ok ok, the software’s fine, I concede your point. But the environment is hostile.
@finitebaffle @mhkohne there's plenty of web apps out there that run on some ancient version of PHP and they work just fine🤷
@thomasfuchs @mhkohne the browser yeah, but the back end?
@thomasfuchs I think happens because data _can_ go bad like milk, if touched in unexpected ways by buggy software.
@thomasfuchs I'll be here in a corner chuckling; a user who has been trained by developers to not trust "security updates" because they often disable half the features and charge twice for what's left, with popups for invasive surveillance that only have "not now" as an option. The whole industry has been an insult to sense long before "AI" showed up.
@hiway Now wait a minute, those 4,778 partner tracking cookies won’t install themselves
@nazokiyoubinbou @svavar there’s also entire swaths of the tech industry making products just to have highly controlled and stable environments, e.g. all the VM and Docker stuff
@svavar @thomasfuchs Firstly, to be clear, the OP isn't saying "no updates ever!" The point here is slower development and update cycles where more testing is done and more focus on stability. Less "move fast and break things," more "move slow and fix things."
Second, a lot more than you think can be done with those things! I literally play DOS games today via DOSBox-Staging for example. A decent modern setup running a VM can probably still work with a lot of those systems. IMO the issue there is they get too caught up on never changing anything. They bought IBM 5150s in 1980 or whatever, so today only get parts made for a 5150.
There is a balance to be had, but people seem to only go extremes on one side or the other instead.
The application stays the same but everything around it changes until it becomes prohibitively expensive to maintain.
There are lots of examples of computers with specialist software to control industrial machines that still run MS DOS and work fine.
Anything that has to connect to the Internet and get security patches is eventually going to go end of life.
Imagine having to maintain an application written in ASP 3.0 backed by an Access database and you'll know what I mean.
@finitebaffle @mhkohne I mean, yes, sometimes that happens, but devs also just love to spend their time just updating and refactoring things for no good reason; just to be "on the latest version".
@thomasfuchs @mhkohne you’re absolutely right, but devs *do* wake up to find an app they haven’t touched in years suddenly doesn’t work any more because the OS or hosting environment pulled some rug from underneath their feet.
@thomasfuchs I tend to find that problems are better understood, needs change and personal development as a programmer or ij the problem domain of the job mean that what seemed a great fit 2 or 3 years ago is chaffing painfully now. Ymmv of course depending on projects, business maturity, etc. Of course the code itself, like you said doesn't get more buggy or do what it does any less well.. just the world, the business, the people and even systems around it move on.
@darkling @nazokiyoubinbou Agree. And instead of giving people what they want (like computers and phones that last 5-10 years or whatever), it’s a race to more profits with constant change and a jungle of subscription services for no reason other than inducing a feeling of “missing out”, with features and products that nobody wants.
@nazokiyoubinbou @thomasfuchs the wheels have fallen off the business model, and they've been flailing around with ever-more horrible variations to try to keep the dead business model of continual *desirable* change going, by making change and pretending it's desirable.
The idea of change has become so internalised that we're now getting change even though it's massively *not* desirable, and being made to use it, because that's how it's always been, and what the markets expect.
2/2
@nazokiyoubinbou @thomasfuchs That was the spirit in which I made my first post -- up to about 2005, you could get *massively* more capable hardware with a 2- or 3-year refresh cycle. The whole industry, including OSes and software, was *entirely* designed to work with this fact.
Now that there's only a comparatively small change in hardware capability over the same time period, and software basically does what people want it to (so there's no compelling new features),
1/2
@darkling @thomasfuchs Hardware doesn't age that way though.
I have a DAP from something like 2008 or so that still works today. Still sounds great on quality headphones like my Sennheiser HD650 too. It could play more than just MP3 files too. FLAC, OGG Vorbis, WMA, and I think M4A AACs (need to test that last one.) It sill powers on and it still holds a charge. It didn't rot and I won't be throwing it away just because it doesn't have bluetooth or something. (If I wanted that I could buy a bluetooth transmitter, but I don't really.)
But I don't even think we're arguing devices from decades ago should still be usable. It's much simpler. Hardware should still be reasonably usable for a reasonable number of years. More than just two. And "usable" doesn't mean great. Just not trash.
@darkling @thomasfuchs And before someone comes in nitpicking that components like capacitors, batteries, etc do age and really really old devices do eventually stop working, I will state clearly I don't mean nothing ever ages at all, just that it's not the way people treat it. People buy new phones, PCs etc on almost a two-year cycle. Some even less! Hardware doesn't age that fast. You can still use a ten-year-old PC for most of the stuff everyone does today in fact. Some games/etc will have issues or require exceptionally low quality settings, but it's hardly a "nope, throw it in the trash" thing.
I wouldn't expect a 30-year-old PC to run today's software well, but I do expect a five-year-old one to at least run normal software well enough to not be trash.
@nazokiyoubinbou @thomasfuchs The hardware aged fast... up to about 20 years ago. The tech industry just hasn't caught up to the consequences of that fact yet.
@thomasfuchs :anyathis:
This. So much this! People think software (and hardware too btw!) ages fast. Like milk. The most many people will hold onto any piece of hardware seems to be something like two years.
There's such an obsessive need to always have the latest of something that it turns into a "move fast and break things" situation all too often. Software developers keep making fast changes and everyone acts like if there is an update it must go out now now now and people must apply the update yesterday. (Note I'm not talking about actual security updates here. I'm talking about "there was a typo in the about page and also we changed the open dialog to use a custom API that only works on some systems" stuff.)
Software should be stable! Hardware should be stable!
@Mutesplash I would say for many types of software this isn’t an issue. For example there’s plenty of factories which are controlled by ancient DOS software and these days people e.g. run FreeDOS on an industrial PC.
@thomasfuchs It's the OS updates and deprecations that make it go "bad" (as in not useful)? Like when 32-bit compat goes away
@thomasfuchs I discovered in the last three days that they can't learn from their own experience, so they re-introduce bugs from the second-last run. that they removed in the last run
In addition, they can learn bugs from their training data. Each run has the same unused include.
Conversely, you can get them to simulate lint... but like lint there will be false positives. I'm OK with that, I learned on C and lint.
@thomasfuchs my experience of this is that a lot of it stems from language expansion and/or style guide updates.
So if you need to fix something minor in legacy code, suddenly you need to fix a bunch of stuff.
@thomasfuchs
What rots is compatibility between it and other systems as they evolve over time.
@dheadshot and why is that
@dheadshot I'll answer myself: it's because developers constantly feel the urge to upgrade and update and refactor and rewrite everything
@thomasfuchs @dheadshot how I've noticed this manifesting in my latent behavior, despite agreeing wholeheartedly:
catching myself not trying (especially *not buying*) a given piece of software simply because it hasn't been updated for.... (oh no!!) a whole *SIX MONTHS* !!!!!??? (living on iOS for literally my whole adult life+ is 1000% to blame)
for whom this resonates: I've found simple, somewhat actively-maintained reflection/self-awareness of this dynamic has brought me *a lot* of peace.
@DavidBlue @dheadshot consider it retrocomputing lol
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.