I remember the 90s when both mac and windows crashed on a daily basis. When was the last time you saw a legitimate BSOD that didn’t involve hardware failure? When was the last time you had to reset the PRAM on your mac just to get it to boot?
Kernels have gotten better. Professional tools have gotten better. Everything on Linux has gotten better. Compilers and drivers too.
Everything else is built by the lowest bidder and is absolute garbage. And unfortunately, it’s what most people interact with all day long.
Eh.
This “everything else” are stuff that previously didn’t even exist. There used to be only professional tools and a few games, now you have an app (or multiple apps) for everything.
And I’ll take a garbage program over one that doesn’t exist.
There were lots of games back then. And many of them were as bad or worse than the shittiest shovelware and template swaps we’ve got today.
Thing is, most people don’t remember the 200 Action Games 3 disc pack at the bottom of the bargain bin cause they sucked.
I’m not disputing that there is more “stuff” these days by raw numbers, with the barrier to creation and distribution of games and such dramatically lowered by ubiquitous and easy to use tooling. But I bet the ratios of good games to shitty games won’t have changed too terribly much over the years.
Not FOSS but commercial software is. The apps just get more bloated and want to suck even more data with each update. Then there is the sites that have hundreds of trackers and third party cookies from everywhere and need 1gb to display 🙄. OK maybe not 1gb but you get the gist.
Electron apps created with React can definitely push the boundaries of what ‘acceptable’ memory usage is.
Electron apps created with React can definitely push the boundaries of what ‘acceptable’ memory usage is.
I have a pet theory that webview-based apps are popular only because currently there is absolutely no usable multiplatform desktop GUI framework. Therefore, developers have to resort to the one thing that works: load a webpage in a web browser.
Even React Native feels like a kludge in a way it converts React components to UI components.
Yep totally unheard of for foss software to get worse. Gnome 3 and kde 4 for example were universally acclaimed.
I think that the post author just neglects that software has become mindblowingly complex compared to the days of yore, if you put together all the features of netscape + win 3.11 + wordperfect + whatever other thing they were using in the 90s at any given point you don’t get 10% of the complexity of a contemporary productivity app (say outlook) let alone a full operating system.
It’s clear that the more complex something is the more things can break. It’s like complaining that F16s are worse than consumer 40€ drones because the former require maintenance every few hours of flight while the latter don’t.
But if all you need is a drone and all anyone makes is an F-16, that is a shitty mismatch. I don’t need an outlook that does all that shit, I just need to check my email, or at least set up a filter to send everything to the trash.
I don’t need teams to do document management, I just need to chat with my team. I’ll resend a document if it is needed for any reason. Companies are adding useless bloat to all of these things and then breaking the core functionality because they’ve made things hard. This is not progress.
Edit: fixed some iOS auto-incorrect. Apologies for any incoherence before.
He’s not exactly comparing software to netscape or win 3.11 though, he’s comparing version N of some software to version N-1 or N-2 and noticing that they’re getting worse from release to release. Given the rate of new releases the complexity shouldn’t be increasing that rapidly between releases so I’m not convinced that is the cause per se. I have to agree with the conclusion from the article, testing was more rigorous in the past than it is now. Both because there was less surface area to test back then and because time-to-market pressures were less due to the longer windows between releases.
I assume you never worked in testing. back in the days, we used to cram testing into a weekend as developers were late with their coding. There was no test automation so that weekend we spend all the time on the most basic functionality. Barely getting thou the testing of having the app started and some of the most basic functions. Almost never was there any time for regression testing, old functions broke all the time. It wasn’t uncommon that we skipped a bug fix in one version, just to reintroduce the same bug in the next release.
Everything is getting worse as companies are exclusively trying to squeeze more money out of everyone rather than build good products or services. Everything is done by fewer more overworked workers, with shittier components and features that are designed to extract money out of you rather than be useful or “good” (my favorite example is BMW’s subscription based bench warmers.)
That’s really what’s going on.
Back in the days, people took the time it was necessary to write the software. And managers trusted the engineers to say when it’s ready or not.
Nowadays, the software world is managers going “yes we know the database’s gonna blow up over the weekend without the query optimizations, but we want to build this new feature before the end of the week. We can deal with the database when it blows up over the weekend, that’s why you guys are on-call.”
I did not make this up, I’ve actually heard this. This is why modern software is so fucked up, not because we can’t handle the complexity, because reliability and quality just isn’t prioritized at all anymore. Gotta dish out new features every day and you’re not allowed to work on fixing known critical bugs.
I did not make this up, I’ve actually heard this
I was in the IT industry for about 20 years until I finally had enough a couple of years ago, so none of this is a shock to me 😅 “I’ve seen things you people wouldn’t believe.”
Smaller companies can still manake to make quality stuff more often than the giants, but the moment they actually make it into the bigger leagues (if they make it), they have to bring in a a lot of your average MBA types and business “intelligence” folks, and that’s when things go down the shitter. They might be making more money but now everything is suddenly about “KPIs” - ie. usually badly defined and/or incorrectly calculated metrics about the service that supposedly reflect how good it is, but at best measure how addictive it is and how much money it makes you, but not how enjoyable it is or if it’s actually even a good thing for your users. Not to mention how often those metrics are literal garbage based on such creative abuses of basic statistics that they aren’t even wrong. It’s astonishing how much trust people put in numbers some BI moron churned out, when the reality very often is that not only was the data collected wrong, but they made completely wrong conclusions about what their data represents (“I’ll call the interval between these events the session length”) and then applied some statistical methods on them that basically destroyed any information there could possibly have been (like taking the average of averages when the original populations have very different sizes). The CEO may not always understand the tech, but by gawd they do understand numbers, and all these KPIs just seem so convincing. When this line goes up it means that were doing good and on the right path, it’s math right?
And now the C-suite is mostly made up of MBA types, the founders probably either left or were stuck in some dark corner where they won’t bother anyone too much with their day drinking.
And now the internet service, or TV, or car, or washing machine, or whatever your company has been making is no longer really a service for the users, but more of a machine designed to bleed money out of them as efficiently as possible and that’s run according to the tenets of what’s essentially modern numerology in a suit and tie (and barely any better at describing anything you could call objective reality).
</rant>
I think that there are many potential causes, but I would like to add monopolization to the list.
Usually, a bad release spelled the demise of a company, because release times were so long that competitors could take advantage of a bad software release.
People aren’t going to switch from windows because they release something bad or buggy, in that case it would already be dead. Windows isn’t technically a monopoly, but they have a lot of inertia and there are many programs that only run on windows that people depend on. There is perhaps a limit to how bad windows can be before people abandon it en masse, but they can get away with a lot. The tech world is full of different companies and programs that are in monopolistic-ish positions.
The main issue is that Linux is too fragmented and absolutely not user friendly enough to be consumer-grade in most applications. Steam is doing their best with SteamOS and they have been making great strides in a lot of areas, and they’ve even allowed me to feel like I can run Linux as a primary OS without losing out on my main off-time workload of gaming. Stuff like DXVK and Proton have made amazing strides towards a gaming OS that isn’t Windows.
Unfortunately too much shit goes wrong for the average user. Troubleshooting also becomes problematic when the community itself is fragmented on solutions. Often I will search up a problem and be recommended different solutions that are not using the tools I have available in favor of the other poster’s favorite system. It’s very annoying to say “I have problem X and have tools Y” and be told “Well, tool Y will do the job but tool Q will do it better”.
I’ve been running Arch on a laptop recently and the first thing I had to do was troubleshoot networking. I looked at the router, wondered if I fucked up the config. Everything else connects fine, must be something else. Turns out that the clock was out of sync and it was preventing the OS from verifying any cryptography. The only time I’ve had that shit happen on Windows is on an old Surface RT that would randomly decide it was the year 3000.
Oh man, yeah I’ve been there with the arch networking issues. To be fair, I do think you sign up for some messing around when you decide to install arch, although it wouldn’t hurt to make networking a bit easier. Troubleshooting on windows isn’t very fun either, although you might not need to do it as often.
While it might be true that a lot of people are scared away by linux weirdness (or not, for all I know picking a beginner friendly distro and not doing anything weird might be a pretty decent experience, I’ve been using arch and doing weird stuff the past couple of years), most people don’t even get far enough to install linux in the first place so the selection happens before that. Part of it is probably software compatibility, part of it might be that most people advocating linux are techy people who mostly talk about the techy reasons for why you should get linux, which aren’t that appealing. Part of it could just be that people are resistant to change because it’s annoying to have to learn a new system.
Yeah, I’m definitely opening myself up to issues by having installed Arch instead of Ubuntu, but as much as I’ll bitch about these problems existing, I really do enjoy the process of fiddling and troubleshooting.
I find Ubuntu can be used right out of the box for productivity depending on your workload and general productivity tools - personally my shop primarily uses Gsuite stuff so I can access everything within the browser, making most of what I do generally agnostic to environment. The main thing I liked about Ubuntu is all the changes MS have made to it, including things like having cloud connectivity for GDrive and OneDrive out of the box, instead of needing some kind of hacky weird solution. I find Ubuntu with all the MS contributions has become a very good productivity OS on top of being a solid server to be using with Hyper-V.
I have two hypotheses for why some kinds of software grow worse over time. They are not mutually exclusive and, in fact, may both be at work in some cases.
Software has transitioned from merely complex to chaotic. That is, there is so much going on within a piece of software and its interactions with other pieces of software, including the operating system itself, that the mathematics of chaos are often more applicable than logic. In a chaotic system, everything from seemingly trivial differences between two ostensibly identical chips to the order in which software is installed, updated, and executed has an effect on the operating environment, producing unpredictable outcomes. I started thinking about the systems I was using with this in mind sometime in the early 2000s.
The “masters” in the field are not paying enough attention to the “apprentices” and "journeymen. Put another way, there are too many programmers like me left unsupervised. I couldn’t have had a successful career without tools like Visual Basic and Access, the masterful documentation and tutorials they came with, and the wisdom to make sure I was never in a position where my software might have more than a dozen users at a time at any one site. Now we have people who don’t know enough to use one selection to limit the options for the next selection juggling different software and frameworks trying to work in teams to do the bidding of someone who can barely type. And the end result is supposed to be used by thousands of people on all manner of equipment and network connections.
One reason that open source software seems more reliable is that people like me, even if we think we can contribute, are mostly dissuaded by the very complexity of the process. The few of us who do navigate the system to make a contribution have our offerings carefully scrutinized before acceptance.
Another reason that open source software seems more reliable is that most of it is aimed at those with expertise or desiring expertise. At least in my experience, that cohort is much more tolerant of those things that more casual users find frustrating.