Probably the most annoying bug I ever encountered was in Quark Xpress 7 when in a two-column layout, placing a discretionary hyphen in a paragraph on the right-hand column caused a preceding paragraph on the left-hand column to reflow to a different number of lines. I tried to get Quark to look into it (it was perfectly repeatable) --- when they wouldn't, I pulled a couple of all-nighters over a weekend and shifted the entire project to InDesign.
That said, as a counter-point, there were also applications such as WriteNow which was ~100,000 lines of hand-coded assembly, which was quick and performant even on an 8MHz 68000 Mac Plus --- it flew on a 25MHz NeXT Cube (it was originally developed as a possible advanced MacWrite/replacement for it if it didn't ship, then was contracted by NeXT to make a bundled word-processor)
It was simply a magical thing in the early days, and one wonders how things would have turned out if for instance we had had MacBasic instead of HyperCard:
All of these are examples of the physical performance of software or hardware limitations at the time. I find that software's reliability has increased a thousandfold in my lifetime, but its actual controllability/feel/UI-UX has been rapidly declining for about a decade.
A/B testing does not inherently lead you to good design. If you A/B test what people want based on their revealed user preference, you get gambling apps and doomscrolling.
All of the pizza chains from my youth A/B tested their ingredients into a weird hill climbing problem. They are all worse tasting and more expensive but despite tasting very differently they are basically equal in how good they taste. You can't really say one is better than the other but they are definitely all worse than they were before.
Fair point; to correct for this bias, ask n people to rate their experience with software reliability, then wait five years and do it again. The larger your n, the more you correct for individual variation (via the Law of Large Numbers)
1) asking five years apart only confirms if the bias is stable/changing. It doesn’t correct anything.
2) asking more people gives you an answer closer to the ‘true answer’ (i.e. the mean answer if you asked ‘everyone’). It corrects for sample error, not directional bias.
To be a bit difficult, depends on the 100 you ask. Yes yes statistical sampling, but I think my point here is more about how generations are trained growing up.
A lot of people dislike change and sure as shit hate relearning a skill they didn't enjoy or have aptitude in the first place. I know exactly what kind of UX my dad prefers and he HATES all modern design patterns. I think several of them are great for information density and despise everything twitter popularized. Entire generations have grown up on twitter and they think it's basically the only way to display information.
Point being when we're discussing as large a surface area as "software" I'm not really sure you're going to get much out of asking 100 people except what decade they were born in and what software/patterns they grew up on. Clearly some things can outcompete others, but inertia and network effects drive adoption, and can turn people from "ugh I hate this" to "ugh why would you do anything other than this".
Bit didn't it also feel bad back then, you just forgot about it and has a rose-tinted view of the past?
Like software used to crash, were single-threaded and constantly frozen. How many times did you have to issue Ctrl+alt+del vs today? Even UIs were constantly out of sync with the underlying data, I would even go as far to claim that reactive frameworks like react cut down a big category of software bugs.
For me I think the difference is that software never used to be actually important, it was either games or just otherwise hobby software.
Now when something crashes I actually need it for work, or to bank, or to navigate, or hell sometimes the only menu at a restaurant is a QR code but my damn phone is failing to recognise it again.
When you introduce technology into every facet of life, it's suddenly death by a thousand cuts when things don't work, or are a slow buggy mess.
This definitely plays a role, and depending on your use-case the “stability” of your software and system varies greatly. E.g Messing around with mods could leave your game in an unplayable state (to the point it just wouldn’t launch properly), whilst today you just download/install them from Steam workshop with 1-click.
i think crafting software has turned into something like making music. consider the movie Trolls World Tour, where there used to be one way of making it, then it splintered off into a ton of different styles.
everybody only likes their own style, and has trouble dealing with other people’s style.
maybe that’s what you mean by the total net feel/experience decreasing. in my world, it’s still harmonious, but it’s possible queen barb hasn’t showed up here yet
I think there's a lot of truth to what you're saying, but a lot of software platforms just can't be customized and mastered like they used to. Things like reorganizing columns, setting shortcuts, menus being consistently organized and accessible using the same command, clickable text and elements looking visually different from unclickable, a wide variety of colors being streamlined to color/pale-color/off-white trios, etc. I use a lot of operational software and every platform just can't be mastered like the old stuff. (And animation lags, too!) And I can watch my younger coworkers on the new software packages, they're certainly not faster on the new stuff than I was on the old stuff.
A few months ago my dad and I roused out the old Windows 2000 computer we used from 2002-2010 and while it took about 6 minutes to boot up, once it booted up, the software was all astonishingly fast (no telemetry) and way, way more "commandable" than their modern equivalents. It was like a tool shop.
What happened is ordinary people started using computers. In the early days of the industry developers could assume a reasonable ability in their users. As computers and smart phones became ubiquitous they could no longer continue with that assumption. You see reorganising columns as a feature, the average user is totally confused and stopped in their tracks when they do it by accident.
In college during the late 80s, working at the campus computer lab, I remember telling one student that she needed to use the mouse to move the cursor. She lifted it up and waved it in the air.
I think there’s two separate things going on here.
One is that software started being designed in a one-size-fits-all manner for a “uniconsumer” that vaguely represents every user the software will ever have. Personally I think that analytics-driven development is largely to blame here; through those you don’t see user groups, just numbers going in whatever the product manager deems to be positive and negative directions. We don’t design for specific users, but rather to produce desired metrics.
Second is that professional UI design got flooded with designers from other disciplines (e.g. print design) who only really understand the visual half of software design. The functional, interaction, and user research parts completely fell by the wayside as the job became more focused on coming up with designs that would do numbers on Dribbble and look pretty in a product page or presentation and is driven mostly by vibes now.
I agree with reliability of software getting so much better. I still remember Windows Millennium (Something between 98 but not Windows 2000) and it has been a mess.
Further more I still remember software developers in the 2000s who just refused to do any kind of testing on produced software, because it is just a waste of time. It compiles? It ships!
All it had to do was run Check Disk, but it kept going in a loop every 30 minutes checking their "AI" for solutions, finding none. There was no way to get out of it.
I am sorry, but even in the worst days of Windows, this would have been a huge deal. This was the last straw so I installed Mint to play games.
Amen to that. For the first time in my life terrible UX costed me money and I'm highly suspicious that fucked up UX is because of AI slop.
Basically, I tried to buy a train ticket on sbb.ch (it was an eurostar crossing the border, so I couldn't do it through the app).
I selected the day and start looking at the available trains. Before continuing I logged in with swisspass to get my halb-tax discount applied. Once done the page reloaded, I got the updated prices, I selected the train at the time I wanted and I purchased the ticket. Only when I got the ticket delivered on my app screen I notice that it was for the current day and I couldn't reimburse it.
Basically, the page reload after the swisspass login changed the date to the current one and, of course, I didn't notice. It is now fixed, but it costed me 90 bucks and couldn't really do anything because technically is my fault for not noticing it was on the wrong day.
Eh, take a pic of the BSOD and see what the error is based on. Having worked support for a long time you'll commonly find those things are bad ram or overheating hardware.
Quite often you'll see non-windows displays like that crashed too.
Commonly that isn't a software issue though, that's a hardware problem being [correctly] indicated by software. With three notable exceptions:
- Windows 1.0 through ME era: Legitimately an unstable OS due to dangerous memory model/lack of memory isolation.
- Windows NT through XP: Before KPP was added, software was monkey-patching the kernel, and it was causing instability (particularly multiple trying to over-patch each other). For example during that era it wasn't UNCOMMON for antivirus to do so as a matter of course.
- Windows Vista Specific: They made significant changes to the driver model of several popular device types, and manufacturers weren't ready. So a lot of driver-related failures.
But since then, it has mostly be smooth sailing. If you see a BSOD, you can trace it down, and more often than not the source will be underlying hardware failure which is why BSOD exists and isn't a software bug or problem.
I still remember when Vista had just come out and I installed it on my computer. I was getting such annoying hangups and blue screens constantly.
Turns out it was my sound card, or at least it's drivers. It was some super cheap Crystal-based one. It would have some glitch during the permissions swap of the UAC environment, and when it went to play that ding it would break the system and require a hard power off. If I muted the computer before the UAC, it was fine.
No Internet for us back in the day with its myriad of issues. Just BBSs and screaming at the family when the carrier dropped and you wanted to know who picked up the phone.
The real issue is it was secure just by human hacking skill cap and not a wide adaptation of Internet early. now with AI everybody just needs compute and can just run their own hacking operation.
IMO it's a bit more nuanced than what the author portrays it as. Broadly, software used to be much worse on the micro-level but better on the macro-level i.e. architecture.
Since it was much harder to make stuff, you really had to architect it well or otherwise it would simply fall apart. For example in assembler you need discipline in your calling conventions, layout and so on, otherwise it just corrupted, you needed to follow sensible naming conventions otherwise it degenerated into unreadable label spaghetti and so on.
Nowadays it's the other way around, the micro level is so much better due to libraries, code reuse, LLMs and better languages/tools, you can use highly sophisticated data structures and functions at your fingertips. In exchange, you can afford to skimp on architecture because computers are fast anyway, and the programming languages don't let you make a huge mess. (Most don't have unstructured goto/jumps, can't corrupt memory accidentally, etc.)
However, this has the cost of making larger programs a nightmare to maintain and systems suffering from a "death of thousand cuts" i.e. on the micro level all is well but when you look at the entire system it's a sprawling unreliable mess. This is where rewrites often happen ;)
Counterpoint - lots of old systems have atrocious architectures.
Those downsides existed, but then that’s just how lots of stuff is or was.
Larger systems are not imo any worse to manage now, but the scale of what is possible and expected dramatically changes what we consider a large system these days.
I think this is like looking back at a few hits and being nostalgic for some decade of music forgetting all the terrible songs of the time. Or perhaps if the volume has increased seeing on YouTube all the school bands that you’d never have seen before because recording was expensive and distribution reserved for the very few.
Not disagreeing, but I feel there is something to be said about how the tools we use nudge us to do things a certain way.
Similar to how using lambda functions and some document DB is easy and fast, but it often times leads to shit architecture as you don't have to think about it anymore, bolt on whatever cloud service X and Y for features and you have a mess.
AI is similar to cloud in that way, it's so forgiving that it pushes you towards a shit architecture as it "doesn't matter anymore".
Funnily enough AI makes the cloud mess easier to manage. These opinions are based on my own experience and most importantly, vibes.
“Software is degrading for obvious reasons” is just painfully lazy. Where are the metrics of degradation? Where are the claims of specific reasons, and the evidence of causality?
If the complaint is vibe coding makes bad software, I largely believe it, but I absolutely believe that vibe arguing makes tissue paper arguments. “Everyone knows” and “it’s obvious” are flimsy things to rest arguments on.
I’m writing dramatically better software for all the reasons this post says obviously make worse software.
Testing has gotten much easier, and bug fixing has gotten much easier. I looked at a pre-AI project I did a couple of years ago: test to code LOC was 0.15:1. The projects I work on now are around 1.3:1. The old project had no accessibility considered at all, the new ones are nicely done aria and beyond. Old project is stuck on old libraries because upgrading is a major pain. New projects take new libraries (after cooldown) no matter the effort.
So I’m left thinking that perhaps some people, too lazy to use the new powers of new tools, churn out the same or worse quality code/essays.
But I am seeing a lot of very high quality software that simply wouldn’t have been possible before, and I believe the same could be done with essays by leveraging these tools to research and find real data beyond “it’s obvious”. But that does take a lot more work.
Dawg, you clearly haven't used any consumer-grade software in the past 5 years. Everything across the board is a worse experience and there in some cases are limitations that make no sense. Use any app such as Spotify or Uber Eats, its a worse experience than it was 5 years ago, hands down. Everyone outside of our bubble knows it.
No one designs for users any more. It's all gas no breaks on the path to enshitification. A lot of this is the motivation of the people building software.
Raise your hand if you ever saw a PM get promoted for removing a bunch of bad and/or unused features?
I have long suspected that one of the driving issues is the continued need for people in the org to keep justifying their existence.
From the consumer POV you can make a great app that does the thing great, and then that's it. Pay once upfront. Just security updates and maybe light compatibility updates after.
Instead we get constant toying and adjusting, and even worse, get pigeon holed into a monthly subscription to bankroll the $200k salaries needed to pay the team that hides the menu button every 6 month to boost screen time.
IME, nobody reads the tests in code review either. They just see "looks like it has tests" *check*. Many times, I've caught LLMs writing completely vacuous tests for configurations of components that were impossible. But coverage number go up, so those tests get written.
Test cases are an indicator. They say that this situation I thought of works as I think it should. It doesn't cover everything, but it does cover a large number of things.
A test is mostly useful only in the case that by failing it alerts you to a bug.
I was reviewing some coordinate conversion code one time and a developer’s method of creating unit tests was to run their code, generate a result, then make that output the correct result for the test. Except the result was wrong based on other utilities doing the same conversion, and also failed edge cases.
I've thought about this, tests should be easier to add to your modules. We dont' need a ton of tests, but we need them to be in more places.
Tests fix how the software can be changed and when software-spec evolves lots of tests can become obsolete. Maybe with AI it is easier to change the tests (?) which is good.
But there is another purpose for tests, besides "testing". It is to document your modules in a way that shows you how to use them, and let's you easily verify is this still working, can I trust it.
While in general that is true, this is one person and so we can assume a lot of the variables that make it a poor metric are constant in this case and so we can draw a few conclusions.
From my own experience, LLM generated code having more test cases is neither surprising nor an indication of improved quality. I've found LLMs are quite good at making lots of test but the tests are often not that useful. I would argue that total count remains a poor metric for quality.
> But I am seeing a lot of very high quality software that simply wouldn’t have been possible before
Personally, I haven't seen too much of that. What I've seen is software that _looks_ pretty, has a shiny interface, a well-designed animated website made with god knows what, but under the hood it's a bit of an alpha mess....
When your software crashes and doesn't do what it's told I will think back on the thousands of bullshit tests Claude wrote and feel less bummed out about it. (Maybe.)
The reason is clear - without scarcity of compute or memory, performance is no longer a feature. That works until all the laziness compounds into a crawling bloat.
This is regarding desktop software. With services, microservices is basically a performance anti-pattern that is used without any due diligence in most cases.
I'm semi-sarcastic here, but this is actually possible now, while it was an often futile and very expensive roundtrip before AI resulting in two versions of your software that you have to simultaneously maintain.
The headline makes not much sense though. If the software used to be horrible, and now is getting worse, then what is the result? Abysmal software? In the light of this decrease of quality, the "but" seems misplaced, as if it indicated, that it is not so bad, while in fact software getting _even_ worse, will make some software unimaginably bad and we should worry even more.
My understanding of the headline is that software used to be horrible long ago, got better for a while and now is getting worse again (but is still better than horrible?).
If it's getting worse, one can logically deduce that it used to be better
If it used to be better, why are you saying it used to be much worse? You cannot have it both ways unless AI already fried your brain.
...and if we are actually heading the wrong direction, why does it matter that we haven't regressed fully quite yet. AI is pushing us towards regressing fully. It's only a few miserable humans ranting about wanting a future filled with hope
If you read the article, you'd know that he is mainly talking about the Win-XP and earlier era. There is a gap there of the 'golden years' of e.g. Win 7 and 10, before the LLMs but after Windows (Loboto)ME.
And computer software is not a linear track, so regression is not going to result in the same 'bads' that existed back then, it's resulting in new ones, some of which are better,and some which are worse. It's not an all-or-nothing state.
I had to think about this one for a bit. Programming by hand took ALOT of time and, yes, software invariably had errors and edge cases that weren't noticeable until after release. BSOD, buffer overflows, etc.
If anything, software 'may' be getting worse due to non-programmers (vibe coders) releasing things they have no business making in the first place.
Definitely rose-tinted glasses when people look back at Windows XP and earlier in particular. So many HN posts waxing poetic about how great the UIs were then. No! They were ugly, unreliable, inconsistent, and slow. It was a bad OS. Being gray and having small buttons doesn’t make it automatically more powerful or functional.
I agree, people are too nostalgic about old UIs. But I think modern UIs also invent square wheels, such as invisible scrollbars, too large margins, etc. For example, Windows 7 had the best UI (maybe needed a handful of small additions for year 2026, such as ability to scroll without focus). Later versions of Windows significantly degraded user experience. Windows 11 has somewhat improved look, but it's too bloated and inefficient (that famous desktop context menu opening in 2-3 seconds, jeez).
One thing that old UIs had were visible and usable scrollbars, while for some reason on that website you need a magnifying glass to see it on Firefox Android
Inconsistent? I feel the opposite. Right now, every app seems to have its own UI design. Back then, most apps were native Win32: maybe ugly, maybe too serious, somewhat limiting, but mostly consistent. And relatively fast, despite running out of a spinning HDD and a single-core CPU.
It’s hard to determine what was aesthetically good from a different time because tastes change.
But there’s nothing wrong with small buttons when your only input tool is a pixel accurate mouse. Arguably what’s worse is too large a button.
But what’s inarguably worse are things like window corners where the click zone extends far beyond the actual window, and parts of the window are not click zones.
> Being gray and having small buttons doesn’t make it automatically more powerful or functional.
If you read through old HIGs, they generally have actual concrete reasoning behind the choices they made. They're pretty interesting to read because back then they did scientific user studies to try to make computers more usable.
For example, Microsoft didn't make the UI gray because of some aesthetic preference. They chose gray because black-on-gray text is easy to read, and because it makes it immediately obvious what's UI vs. what's content (vs. if they made the background white or something). They made all the buttons three-dimensional because it makes it immediately obvious that something is clickable. Getting rid of stuff like this makes the UI prettier, but it also gets rid of hints for how to use the software.
(this was mean to be a reply to the comment about rose-tinted nostalgia for Windows XP)
Everything used to be horrible.
There were a few gems of good UI and functionality but they were rare and either got snuffed out by bigger companies like Microsoft or bought out and then forgotten.
Now, everything is more horrible than it should be.
It's like airplanes: Just barely 100 years ago, nobody could even dream that a common person could fly across the world to anywhere within hours.
Now we have planes and spaceships but they cram you in like cattle to squeeze into tiny inhumane chairs for hours..
The biggest companies in the world with hundreds of employees and billions of dollars still can't fix their software.
Google is still anal about dark mode if you're not signed in. Some other major apps don't even have dark mode even though it's been almost a decade since major operating systems supported it.
YouTube still hinders iOS's picture-in-picture feature.
Facebook still doesn't have iPad-native versions of their apps.
There's so much shit in apps with millions of users that hasn't been fixed for years.
And goobers act as if AI could possibly make it worse.
Not worse than humans have been doing on their own since forever.
I've been using AI to make private apps for my own personal use, and it's pretty amazing how quickly I can iterate to fix minor niggles and UI annoyances.. within minutes, while the app is running.
Meanwhile operating systems, YouTube, Facebook, Reddit, etc have such shit UX here and there for YEARS. You're telling me they can't fix it with all their employees that get paid hundreds of thousands of dollars?
> Not worse than humans have been doing on their own since forever
If it's not reviewed well (some people stopped even looking at the code) it can be immensely worse.
And most people end up producing much more code with LLMs, quickly reducing how much of it they review; a lot have become fine with turning the interface upside down often just because it's easy, even if the new interface is worse and a lot buggier.
This largely deals with Windows 9x, and seems to imply that agents improved the software, while all the improvements he mentions (what he considers to be improvements) happened way before LLMs.
There is simply too much software out there. Too many websites, apps, ui choices, frameworks. Impossible to keep track of it all and with AI accelerating release quantities, I already feel a fatigue of just keeping up with the news, not too mention using any of it to even a small extent. It will only get worse.
I built this extremely heavy drag and drop editor in one giant typescript file a year ago, then I had to go back to check something and to my surprise, vscode just choked on everything. Syntax highlighting became a rainbow and required restarting vscode, intellisense took 3 seconds to suggest anything useful.
The code I wrote was ugly yes, but vscode back when I wrote it was nowhere near that miserable.
The other day google docs started freezing, It got stuck on the creating sheet state.
Youtube is making my fans spin recently just because I am hovering over the play button.
God forbid you use a lesser known SaaS tool. I started a trial on a platform and it kept asking me to start trails because I suppose the modal system was just trash.
The list is endless.
Things just don't work as intended and I know hn gets very offended when you're critical of AI but I couldn't care less honestly because I have my own data. Vibe code slop is slop no matter how good you are with your "orchestration". Oversight is a side effect of vibes and no ambition.
> And yes, there were Linux distros like Debian where people could get real computing done[0].
The author then kids in [0] that the most popular software in Debian was editors to edit X86Config but...
I fully agree that Windows was an horrible crashing piece of crap back then. Linux was a godsend to me (installed it in the early Slackware days).
Armed with Emacs and LaTeX, on Debian 1.1 then 1.2, I wrote a 440 pages book (published by an editor).
Linux was already rock stable solid, while Windows was a crashing PoS.
Linux was so solid that I'd also run it on my laptop (and back then all laptops were crappy). When I was late I'd let LaTeX convert the files to .dvi (IIRC) and the PostScript while driving to my editor. We'd then the PostScript file to the printer at my editor.
It was something else then Windows.
As for Windows, yes, I was using it too.
And the absolute best software I ever got back then was Ghost, way before Norton bought them (it then became Norton Ghost). That allowed me to take a full dump of the Windows partition and then restore it at will from that partition, when Windows would invariably become unusable.
When I discovered Linux, suddenly I had a stable system that didn't need to be re-installed every other day. There's a reason the world is powered by Linux and companies like Google weren't built on Windows.
And I also had a small consulting gig (for little SMEs) where I basically had a business installing brand new Windows systems for the clients and all their stuff (like Outlook) and then immediately imaging the entire disk.
Because the only guarantee was that Windows would be borken rather sooner than later.
TFA is right and Microsoft has always produce mediocre shit.
It's hard to say if the BSOD'ing Windows of yore was even shittier than the ad-infested, surveillance, behemoth Windows of today. Both are equally bad IMO.
Because the day Microsoft shall product a product that doesn't suck is the day they'll start producing vacuum cleaners.
All but one of these complaints are due to hardware limitations, not software. In fact, if there were cheap 200GB SSDs in 2003 this list would be down to the BSOD complaint. I have no idea why Autosave is even on this list, it did well in Word 95 and floppy disks and never was "horrible". Skip this one entirely, it is just wrong.
Autosave worked just fine if you remembered to tick the box.
BSOD I already mentioned was the only issue.
Client side hacks? Crypto is the bottleneck for all of security. Doing TLS on a 66MHz chip:
Loading WWW.INSTAGRAM.COM
Wait a few seconds per each domain handshake to process.
instagram.com.......................................................................................................................done.
adsmanager.facebook.com...........................................................................................................done.
Speaking of degradation, every time I type a character in this box the grey bar above the keyboard jumps up and down the entire page. EVERY SINGLE KEYSSTROKE. This is like example 10 in my daily life where software worked fine for decades and then suddenly shit the bed in the past 2 years.
> Computer manufacturers devised a simple solution: add a TURBO button that would just slow your CPU down on demand.
I remember these! I could not figure out why it never seemed to make the computer faster and actually made it slower. TURBO was even written in italics to imply speed.
I suppose for some short time it may have actually overclocked the CPU, until the default clock speed caught up. After that, the turbo button was a lie.
Edit: Maybe I have it backwards, it sounds like on some machines it might have been in the underclocked condition when it was off. I just remember disappointing results with the machine that I used.
* Turbo was default ON and was the regular marketed speed the cpu was designed to run on, for my (dad's:) PCs it was 12 and 16mhz I think
* Turning turbo off reduced speed significantly for software written with original cpu timing in mind (I think 8088 but that was just outside of my direct experience).
So perspective on turbo button is a little bit philosophic, is it half full or half empty:). But it did not give you any EXTRA boost, like over clocking OVER manufacturer design cpu speed.
It also hung on for some time past when it made sense. My father had a 486/33MHz that had a "turbo" button. Turning off turbo could slow the clock down but it wouldn't do anything about the fact that the 486 is still fundamentally a better processor than either the 386 or the 286, running 2-3 times faster on the same instruction stream than a 386. So even with turbo off, the programs that was nominally supposed to help with still ran much faster than they were supposed to.
This was my memory of how Turbo was explained to me - keep it on if you want to go fast. We were all learning programming, so that's what we wanted - faster computers.
That said, as a counter-point, there were also applications such as WriteNow which was ~100,000 lines of hand-coded assembly, which was quick and performant even on an 8MHz 68000 Mac Plus --- it flew on a 25MHz NeXT Cube (it was originally developed as a possible advanced MacWrite/replacement for it if it didn't ship, then was contracted by NeXT to make a bundled word-processor)
https://www.folklore.org/The_Grand_Unified_Model_The_Finder....
https://folklore.org/MacBasic.html
https://www.folklore.org/Joining_Apple_Computer.html https://www.folklore.org/Evolution_of_a_classic.html
(and it kind of kills me that there isn't a book on the history of HyperCard --- a quick search did turn up:
https://www.taskade.com/blog/hypercard-history
which seems promising (if a bit self-serving and possibly AI-generated.... will have to find time to read)
Stated preference is very often different from demonstrated preference.
People remember things to be more positive than they were. This is an established bias in human psychology
https://en.wikipedia.org/wiki/Rosy_retrospection
2) asking more people gives you an answer closer to the ‘true answer’ (i.e. the mean answer if you asked ‘everyone’). It corrects for sample error, not directional bias.
A lot of people dislike change and sure as shit hate relearning a skill they didn't enjoy or have aptitude in the first place. I know exactly what kind of UX my dad prefers and he HATES all modern design patterns. I think several of them are great for information density and despise everything twitter popularized. Entire generations have grown up on twitter and they think it's basically the only way to display information.
Point being when we're discussing as large a surface area as "software" I'm not really sure you're going to get much out of asking 100 people except what decade they were born in and what software/patterns they grew up on. Clearly some things can outcompete others, but inertia and network effects drive adoption, and can turn people from "ugh I hate this" to "ugh why would you do anything other than this".
Like software used to crash, were single-threaded and constantly frozen. How many times did you have to issue Ctrl+alt+del vs today? Even UIs were constantly out of sync with the underlying data, I would even go as far to claim that reactive frameworks like react cut down a big category of software bugs.
Now when something crashes I actually need it for work, or to bank, or to navigate, or hell sometimes the only menu at a restaurant is a QR code but my damn phone is failing to recognise it again.
When you introduce technology into every facet of life, it's suddenly death by a thousand cuts when things don't work, or are a slow buggy mess.
everybody only likes their own style, and has trouble dealing with other people’s style.
maybe that’s what you mean by the total net feel/experience decreasing. in my world, it’s still harmonious, but it’s possible queen barb hasn’t showed up here yet
A few months ago my dad and I roused out the old Windows 2000 computer we used from 2002-2010 and while it took about 6 minutes to boot up, once it booted up, the software was all astonishingly fast (no telemetry) and way, way more "commandable" than their modern equivalents. It was like a tool shop.
Not quite Scotty in Star Trek IV, but close.
One is that software started being designed in a one-size-fits-all manner for a “uniconsumer” that vaguely represents every user the software will ever have. Personally I think that analytics-driven development is largely to blame here; through those you don’t see user groups, just numbers going in whatever the product manager deems to be positive and negative directions. We don’t design for specific users, but rather to produce desired metrics.
Second is that professional UI design got flooded with designers from other disciplines (e.g. print design) who only really understand the visual half of software design. The functional, interaction, and user research parts completely fell by the wayside as the job became more focused on coming up with designs that would do numbers on Dribbble and look pretty in a product page or presentation and is driven mostly by vibes now.
can you elaborate?
Further more I still remember software developers in the 2000s who just refused to do any kind of testing on produced software, because it is just a waste of time. It compiles? It ships!
Not many people are such cowboys today.
All it had to do was run Check Disk, but it kept going in a loop every 30 minutes checking their "AI" for solutions, finding none. There was no way to get out of it.
I am sorry, but even in the worst days of Windows, this would have been a huge deal. This was the last straw so I installed Mint to play games.
Basically, I tried to buy a train ticket on sbb.ch (it was an eurostar crossing the border, so I couldn't do it through the app).
I selected the day and start looking at the available trains. Before continuing I logged in with swisspass to get my halb-tax discount applied. Once done the page reloaded, I got the updated prices, I selected the train at the time I wanted and I purchased the ticket. Only when I got the ticket delivered on my app screen I notice that it was for the current day and I couldn't reimburse it.
Basically, the page reload after the swisspass login changed the date to the current one and, of course, I didn't notice. It is now fixed, but it costed me 90 bucks and couldn't really do anything because technically is my fault for not noticing it was on the wrong day.
I've seen more on MacOs/OSX in the same time frame.
Antivirus on my work Windows laptop has caused countless BSODs. VPN clients are often junk.
I had a KVM that could occasionally trigger one.
Windows itself seems to be pretty BSOD free. It is almost always something installed after or hardware.
There's got to be a subreddit for that I'm sure
Sure they might be using older unpatched Windows but it only reinforces its reputation of being crap and perpetuates the meme.
Quite often you'll see non-windows displays like that crashed too.
- Windows 1.0 through ME era: Legitimately an unstable OS due to dangerous memory model/lack of memory isolation.
- Windows NT through XP: Before KPP was added, software was monkey-patching the kernel, and it was causing instability (particularly multiple trying to over-patch each other). For example during that era it wasn't UNCOMMON for antivirus to do so as a matter of course.
- Windows Vista Specific: They made significant changes to the driver model of several popular device types, and manufacturers weren't ready. So a lot of driver-related failures.
But since then, it has mostly be smooth sailing. If you see a BSOD, you can trace it down, and more often than not the source will be underlying hardware failure which is why BSOD exists and isn't a software bug or problem.
Turns out it was my sound card, or at least it's drivers. It was some super cheap Crystal-based one. It would have some glitch during the permissions swap of the UAC environment, and when it went to play that ding it would break the system and require a hard power off. If I muted the computer before the UAC, it was fine.
Pulled the sound card and it ran fine.
I, for my part, as much as I dig a little 70s and 80s retro stuff, would never ever want to go back.
Since it was much harder to make stuff, you really had to architect it well or otherwise it would simply fall apart. For example in assembler you need discipline in your calling conventions, layout and so on, otherwise it just corrupted, you needed to follow sensible naming conventions otherwise it degenerated into unreadable label spaghetti and so on.
Nowadays it's the other way around, the micro level is so much better due to libraries, code reuse, LLMs and better languages/tools, you can use highly sophisticated data structures and functions at your fingertips. In exchange, you can afford to skimp on architecture because computers are fast anyway, and the programming languages don't let you make a huge mess. (Most don't have unstructured goto/jumps, can't corrupt memory accidentally, etc.)
However, this has the cost of making larger programs a nightmare to maintain and systems suffering from a "death of thousand cuts" i.e. on the micro level all is well but when you look at the entire system it's a sprawling unreliable mess. This is where rewrites often happen ;)
Those downsides existed, but then that’s just how lots of stuff is or was.
Larger systems are not imo any worse to manage now, but the scale of what is possible and expected dramatically changes what we consider a large system these days.
I think this is like looking back at a few hits and being nostalgic for some decade of music forgetting all the terrible songs of the time. Or perhaps if the volume has increased seeing on YouTube all the school bands that you’d never have seen before because recording was expensive and distribution reserved for the very few.
Similar to how using lambda functions and some document DB is easy and fast, but it often times leads to shit architecture as you don't have to think about it anymore, bolt on whatever cloud service X and Y for features and you have a mess.
AI is similar to cloud in that way, it's so forgiving that it pushes you towards a shit architecture as it "doesn't matter anymore".
Funnily enough AI makes the cloud mess easier to manage. These opinions are based on my own experience and most importantly, vibes.
If the complaint is vibe coding makes bad software, I largely believe it, but I absolutely believe that vibe arguing makes tissue paper arguments. “Everyone knows” and “it’s obvious” are flimsy things to rest arguments on.
I’m writing dramatically better software for all the reasons this post says obviously make worse software.
Testing has gotten much easier, and bug fixing has gotten much easier. I looked at a pre-AI project I did a couple of years ago: test to code LOC was 0.15:1. The projects I work on now are around 1.3:1. The old project had no accessibility considered at all, the new ones are nicely done aria and beyond. Old project is stuck on old libraries because upgrading is a major pain. New projects take new libraries (after cooldown) no matter the effort.
So I’m left thinking that perhaps some people, too lazy to use the new powers of new tools, churn out the same or worse quality code/essays.
But I am seeing a lot of very high quality software that simply wouldn’t have been possible before, and I believe the same could be done with essays by leveraging these tools to research and find real data beyond “it’s obvious”. But that does take a lot more work.
cite 1
This too is subjective.
No one designs for users any more. It's all gas no breaks on the path to enshitification. A lot of this is the motivation of the people building software.
Raise your hand if you ever saw a PM get promoted for removing a bunch of bad and/or unused features?
It does not affect Debian, Fedora, or Qubes OS.
From the consumer POV you can make a great app that does the thing great, and then that's it. Pay once upfront. Just security updates and maybe light compatibility updates after.
Instead we get constant toying and adjusting, and even worse, get pigeon holed into a monthly subscription to bankroll the $200k salaries needed to pay the team that hides the menu button every 6 month to boost screen time.
Goodhart's law etc.
About 50% of the test cases I've ever seen are pointless.
A test is mostly useful only in the case that by failing it alerts you to a bug.
In your case of course any existing utilities behavior/specs should be tested first, regression tests just on top, if they are not already covered.
Yes it was vibe coded. The "a" variable was never used, and was tested to be 1 several times.
It was several hundreds lines of course so I didn't bother reviewing the rest.
Tests fix how the software can be changed and when software-spec evolves lots of tests can become obsolete. Maybe with AI it is easier to change the tests (?) which is good.
But there is another purpose for tests, besides "testing". It is to document your modules in a way that shows you how to use them, and let's you easily verify is this still working, can I trust it.
Lines of code is a poor metric for measuring, both for application code and testing code
Personally, I haven't seen too much of that. What I've seen is software that _looks_ pretty, has a shiny interface, a well-designed animated website made with god knows what, but under the hood it's a bit of an alpha mess....
https://www.youtube.com/watch?v=MR4i3Ho9zZY&t=37s
The reason is clear - without scarcity of compute or memory, performance is no longer a feature. That works until all the laziness compounds into a crawling bloat.
This is regarding desktop software. With services, microservices is basically a performance anti-pattern that is used without any due diligence in most cases.
I'm semi-sarcastic here, but this is actually possible now, while it was an often futile and very expensive roundtrip before AI resulting in two versions of your software that you have to simultaneously maintain.
Things get lost-in-translation, and Claude doesn't seek your input for decisions that matter.
If it's getting worse, one can logically deduce that it used to be better
If it used to be better, why are you saying it used to be much worse? You cannot have it both ways unless AI already fried your brain.
...and if we are actually heading the wrong direction, why does it matter that we haven't regressed fully quite yet. AI is pushing us towards regressing fully. It's only a few miserable humans ranting about wanting a future filled with hope
And computer software is not a linear track, so regression is not going to result in the same 'bads' that existed back then, it's resulting in new ones, some of which are better,and some which are worse. It's not an all-or-nothing state.
If anything, software 'may' be getting worse due to non-programmers (vibe coders) releasing things they have no business making in the first place.
And some others. IP? No, we are a NetWare IPX network!!
It’s hard to determine what was aesthetically good from a different time because tastes change.
But there’s nothing wrong with small buttons when your only input tool is a pixel accurate mouse. Arguably what’s worse is too large a button.
But what’s inarguably worse are things like window corners where the click zone extends far beyond the actual window, and parts of the window are not click zones.
If you read through old HIGs, they generally have actual concrete reasoning behind the choices they made. They're pretty interesting to read because back then they did scientific user studies to try to make computers more usable.
For example, Microsoft didn't make the UI gray because of some aesthetic preference. They chose gray because black-on-gray text is easy to read, and because it makes it immediately obvious what's UI vs. what's content (vs. if they made the background white or something). They made all the buttons three-dimensional because it makes it immediately obvious that something is clickable. Getting rid of stuff like this makes the UI prettier, but it also gets rid of hints for how to use the software.
As for inconsistent - what!? Every app looked approximately the same, and behaved in a predictable manner.
Everything used to be horrible.
There were a few gems of good UI and functionality but they were rare and either got snuffed out by bigger companies like Microsoft or bought out and then forgotten.
Now, everything is more horrible than it should be.
It's like airplanes: Just barely 100 years ago, nobody could even dream that a common person could fly across the world to anywhere within hours.
Now we have planes and spaceships but they cram you in like cattle to squeeze into tiny inhumane chairs for hours..
The biggest companies in the world with hundreds of employees and billions of dollars still can't fix their software.
Google is still anal about dark mode if you're not signed in. Some other major apps don't even have dark mode even though it's been almost a decade since major operating systems supported it.
YouTube still hinders iOS's picture-in-picture feature.
Facebook still doesn't have iPad-native versions of their apps.
There's so much shit in apps with millions of users that hasn't been fixed for years.
And goobers act as if AI could possibly make it worse.
Which it does
> Which it does
Not worse than humans have been doing on their own since forever.
I've been using AI to make private apps for my own personal use, and it's pretty amazing how quickly I can iterate to fix minor niggles and UI annoyances.. within minutes, while the app is running.
Meanwhile operating systems, YouTube, Facebook, Reddit, etc have such shit UX here and there for YEARS. You're telling me they can't fix it with all their employees that get paid hundreds of thousands of dollars?
?
> Not worse than humans have been doing on their own since forever
If it's not reviewed well (some people stopped even looking at the code) it can be immensely worse.
And most people end up producing much more code with LLMs, quickly reducing how much of it they review; a lot have become fine with turning the interface upside down often just because it's easy, even if the new interface is worse and a lot buggier.
The code I wrote was ugly yes, but vscode back when I wrote it was nowhere near that miserable.
The other day google docs started freezing, It got stuck on the creating sheet state.
Youtube is making my fans spin recently just because I am hovering over the play button.
God forbid you use a lesser known SaaS tool. I started a trial on a platform and it kept asking me to start trails because I suppose the modal system was just trash.
The list is endless.
Things just don't work as intended and I know hn gets very offended when you're critical of AI but I couldn't care less honestly because I have my own data. Vibe code slop is slop no matter how good you are with your "orchestration". Oversight is a side effect of vibes and no ambition.
The author then kids in [0] that the most popular software in Debian was editors to edit X86Config but...
I fully agree that Windows was an horrible crashing piece of crap back then. Linux was a godsend to me (installed it in the early Slackware days).
Armed with Emacs and LaTeX, on Debian 1.1 then 1.2, I wrote a 440 pages book (published by an editor).
Linux was already rock stable solid, while Windows was a crashing PoS.
Linux was so solid that I'd also run it on my laptop (and back then all laptops were crappy). When I was late I'd let LaTeX convert the files to .dvi (IIRC) and the PostScript while driving to my editor. We'd then the PostScript file to the printer at my editor.
It was something else then Windows.
As for Windows, yes, I was using it too.
And the absolute best software I ever got back then was Ghost, way before Norton bought them (it then became Norton Ghost). That allowed me to take a full dump of the Windows partition and then restore it at will from that partition, when Windows would invariably become unusable.
When I discovered Linux, suddenly I had a stable system that didn't need to be re-installed every other day. There's a reason the world is powered by Linux and companies like Google weren't built on Windows.
And I also had a small consulting gig (for little SMEs) where I basically had a business installing brand new Windows systems for the clients and all their stuff (like Outlook) and then immediately imaging the entire disk.
Because the only guarantee was that Windows would be borken rather sooner than later.
TFA is right and Microsoft has always produce mediocre shit.
It's hard to say if the BSOD'ing Windows of yore was even shittier than the ad-infested, surveillance, behemoth Windows of today. Both are equally bad IMO.
Because the day Microsoft shall product a product that doesn't suck is the day they'll start producing vacuum cleaners.
When you separate the OS from the UI Windows is fast and stable, and with things like powershell it is remotely manageable.
It's the UI and application level where most of the problems crop up.
Of course hardware also got better but software also got a let better at working around the hardwares quirks.
Client side hacks? Crypto is the bottleneck for all of security. Doing TLS on a 66MHz chip:
I remember these! I could not figure out why it never seemed to make the computer faster and actually made it slower. TURBO was even written in italics to imply speed.
I suppose for some short time it may have actually overclocked the CPU, until the default clock speed caught up. After that, the turbo button was a lie.
Edit: Maybe I have it backwards, it sounds like on some machines it might have been in the underclocked condition when it was off. I just remember disappointing results with the machine that I used.
* Turbo was default ON and was the regular marketed speed the cpu was designed to run on, for my (dad's:) PCs it was 12 and 16mhz I think
* Turning turbo off reduced speed significantly for software written with original cpu timing in mind (I think 8088 but that was just outside of my direct experience).
So perspective on turbo button is a little bit philosophic, is it half full or half empty:). But it did not give you any EXTRA boost, like over clocking OVER manufacturer design cpu speed.
Mandatory EULA must be banned. Any device must be usable and provide all features advertised without accepting an EULA.