People get promoted, get bonuses based on some shiny new tool they developed. Every year, they create something 'new', claim lots of features. Their managers/directors/VPs also encourage this because they need some 'winning' and 'automation' slides to brag about. Nothing gets solved. In fact, things get worse. The new tool and old tool and oldest tool all coexist with 20 other tools developed for the exact same thing in a different org. Each org (SVP reporting to CEO) is MASSIVE and everybody wants headcount and success stories. All these things will be happening at the same time. Those who are capable of making the biggest mess get the biggest pay and bonus, they get promoted and they move nearly year 1 - 2 years, within the same company or to another. Repeat. The ICs (individual contributors) who have values and explain why this is a bad idea are usually moved to Support or Ops roles or migration projects from old to new.
I've seen perfectly working systems continuously being replaced with worse and worse tools. Most of the new tools require a lot of people from several departments, just a guy who understands business and develops a perfectly working PHP/CRUD is a no-no. It has to be replaced with a complex monster with react, apis, mongo crap. And on kubernetes. Hybrid cloud.
Coding has been solved, but for who? Only for those cowboys who create POCs and get big bonuses. The 'product' they make is largely irrelevant. Sure, they can make it faster and claim to be masters of AI. Again, bigly bonuses, because now the incentives are driven by mandates from C-suite/VPs who are desperate to claim successfully using AI. There is very very little that can be realistically solved with AI. People have tried and the first thing they do is replace perfectly working internal search tools with AI or AI chatbots. Think about something like your people portal, for a large company, this would be thousands of document. The AI driven search portals are a million times worse than the earlier full-text-search engines that are usually pretty accurate. After that, they will be lots of dashboards generated for executives. Its as if execs have any clue about the business, they know nothing about the business and now they get thousands of dashboards tracking millions of meaningless metrics.
AI is an enshittification accelerator. And the enshittifiers (individually as people and collectively as companies run by scumbags) are richly rewarded for this 'success'.
> We’ve reached a point where an update to macOS — or to any app I rely on, really — is a source of dread rather than excitement. I now expect the new version to be worse.
I actually relate to that. It used to be cool and exciting to update to see what new things are coming for free. I was just looking up what Fedora Workstation 45 might bring.
Updates on phones, TV's, cars and non-Linux operating systems on PC's/laptops are downright scary to me now. What will they add that I don't want? What more connectivity to the external world are they going to wire in?
MacOS lost everyone's trust by ruining the experience, but even before it happened that trying to resize a window makes it feel like life will be at 80 years-old, hunting a tiny invisible border, even before that there wasn't anything exciting.
What Microsoft I think did (and I can't prove it), before I moved off of Windows 11, was to bundle all changes in "required security updates." So you have no choice but to update (or go through special settings to turn it off, or just defer it), but when the machine comes back you have a new Welcome prompt to some new connectivity to something nefarious. AI features I never asked for, that's the most recent dark pattern here.
Yep, this 100%. When I see a "pending update" notification or icon somewhere, the first thing I think is "I don't want to update, they're just going to break something new". I _hate_ updates now. Doesn't matter what software it is, with the small exception of video games. (Except Dead By Daylight. Behavior, the devs, are the most hilariously incompetent devs on the planet, but at least their incompetence is confined to their own game.)
The only software I've been excited about an update for in years has been games, that seems like the only category where devs actually add features people are excited about. For example, the latest KCD2 patch added a fun but brief new quest [0].
Not universal though. Besides your example, even for single player games patches can be basically malicious. I've had Fallout 4 locked on updates for like 3 years at this point, everything Bethesda has added has degraded the experience for zero upside. But I can't think of any software besides a game where I have been anything but dreading an update in years. Slack wants to update? Great, it'll probably break/degrade my work flow in some minor way, and they're one of the lesser offenders on my work machine.
I don't play those, but I know at least with games like those, where players like to play on specific versions, there's usually ways to stay on a specific version without too much hassle.
The post-Microsoft meta is that glitches are valid game mechanics. TNT duping has been in the game longer than Notch controlled the game. But some other glitches get fixed.
> > We’ve reached a point where an update to macOS — or to any app I rely on, really — is a source of dread rather than excitement. I now expect the new version to be worse.
You know what software doesn't fill me with dread to update? FOSS.
Proprietary software isn't built for users anymore. But (some) FOSS still is.
Pulseaudio has been painless for like a decade and a half. Yes, it has a rough start and was probably made default in many distros before it ought to, but it's fine.
Pulse audio is ok until you plug or unplug things like earpieces and bluetooth speakers and then you want to do a videocall and random devices are the active ones.
And then you find no obvious way to be able to record both input and output...
Lol because that never happens on any other OS. Plug my Mac into my dock, uses my DAC. Great. Unplug. Connect Bluetooth headphones. So far so good. Plug back into dock. Now it's... the built in audio? Huh?
I'm honestly surprised how often in Linux PA with WirePlumber just does the right thing most times, IME.
This is my Monday morning dance of Bluetooth. 99% of the time I'll join a call and everything is connected, line levels are set and yet... No audio. I know people complain about Pulse but MacOS is just as bad and, seemingly, getting worse.
Good thing that Debian pushed that thing into "non-core compatibility tools" status. It and NVidia drivers were always the things that made upgrading risky.
Relatedly, systemd stopped breaking a while ago. Either distros stopped keeping it up-to-date or people can learn.
an update last year broke some laptop microphone settings that in 30 years of using linux I had had no reason to even know existed. took me literally a couple of weeks to figure out what was going on and fix it. it was admittedly the first time in many years that it broke anything, but when it did it did so in style.
Anything with the Red Hat stink, these days. Which, yeah, a lot of that’s Poettering.
If they haven’t been executing a plan to make it extremely painful to maintain a distro that differs significantly from whatever Red Hat’s preferences and ways of operating are (so, making it harder to justify anything but “screw it, we’ll just use red hat, everyone else is just the same thing but with less ability to steer the direction of the OS”), damn the effects on UX, the traditional modular nature of Linux systems, and general open source ecosystem health… well, they’ve sure done a great job of it, so it’d be pretty crazy if that isn’t what they’ve been doing.
So many Linux user problems are self inflicted. It’s almost a demonstration why proprietary platforms limit your options so much when users choose to shove a stick in their bike spokes and complain it let them do that.
> was to bundle all changes in "required security updates."
Kind of...Cumulative Security Updates on Patch Tuesday still do not contain new OS features, and on pro editions of windows you can at least, last time I used Windows (maybe this changed?), still skip quality updates & feature updates.
What Windows does do is tie all the "connected experiences" crap to out of band updates via the store/AppX packages which background update automatically, so when you reboot after a patch windows will run its post update OOBE and push all those features agian/turn them on. So technically not bundled with security updates, but a dark pattern that disrespects users nonetheless.
Not exactly the same, but Microsoft shipped the "Backup" or some similar name software that is actually just a OneDrive client in a Windows 10 LTSC update. LTSC is specifically for not getting such feature updates. They also changed the folder icons in the graphical shell at some point.
Tesla just released an infuriating update which adds an incomprehensible number of UI nags to start self driving, despite there being a hardware lever that already does so.
There's even a big button that says "Start Self Driving" in the valuable visual real estate where the speed limit once was.
I get to say a lot of "i told you so" to my wife these days. She used to call me an old man for being a stick-in-the-mud and not updating my phone's apps. When I have them working the way I want: why would I want to update things and risk changing that?
These days she's swearing up a storm whenever an update breaks or removes things.
> AI is here, time to create something new and shiny.
The AI we have in 2026 cannot do that or it'd have already been done. I use AI daily: it saves some time. But it produces an infinite amount of insecure, unnecessary, sloppy-pasta.
And that sloppy-pasta doesn't make software any better.
As crazy as it sounds, code quality != software quality.
It turns out that the lower the barrier to creating "high quality" code is, the worse the software is on average.
Who remembers the Photoshop lens flare?
It's not that the effect sucked - it did lens flare perfectly. But who used it sucked.
Instagram and the Nashville filter - "we're all photographers now"
Code quality not equaling software quality gets at the fun part of the modern AI-labor debate. Where does talent and efficacy really reside in terms of software? Surely not in the (apparently unworthy?) mind of a human? Surely it can be extracted, distilled, automated – liberated! - unto a reactive web interface for some middle manager to invoke (at some expense to some account this folk loses zero sleep over), because it is after all this flimsy, transferrable - not worthless! Not worthless! I have a stock portfolio to maintain for God's sake. But mine. Nonetheless.
The answer, of course, is that the taste-making apparatus inside the typical tech company is now entirely imposters (non-technical, non-power-users), who continue to LARP as visionaries.
The people who notice broken or degraded behavior (devs and power users) and conceive of good designs are not in charge of what goes into the product.
So you shouldn't expect it to get better, only to continuously change so that the imposters can point to a difference that they were responsible for, knowing that upper management also has no idea whether that difference was actually an improvement.
The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
All of this was obvious decades ago, but now everyone wants to have a do-nothing job at a tech company, and to help their friends get one too.
The result is imposters everywhere; "imposter syndrome" was brought into the vernacular to normalize a lack of expertise.
"No one knows what they are doing, it's okay to not know how to do your job". That's what your (product) manager tells themself in the mirror each morning. Turns out: skill predicts quality, and an org ships quality proportional to the skill of the decision makers.
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users.
It’s not surprising that this sentiment is popular on a message board filled with engineers but I’m not so convinced by it. Nor do I think the current state of tech companies is acceptable, to be clear. But there needs to be some level of management outside of the engineers themselves. A lot of talented lead engineers I know are terrible people managers, or ineffective project managers. And that’s fine, because there are other people to do those tasks.
If your utopia is a bunch of engineers given freedom to do whatever they want, however they want to do it… I suspect the dream and the reality will not match up. In the scenario you’ve outlined I strongly suspect you’ll have infrastructure on its third rewrite, full of power user features and tweaks… and near-zero adoption from newcomers. Product fit is a thing that needs to be managed!
Yeah I hate that you’re right. Blender is an example of OSS software which is actually a joy to use and they have product designers. But I think there is a massive gap between good and bad product people. No product person would be better than bad ones, but for truly great software you probably want some good ones.
That being said lots of good OSS exists purely built by engineers so I think it’s really the case that good product people help a lot and bad ones hurt a ton.
Some developers also take an active interest in the design and feature set of the product they're developing. IME those developers can often produce good results once a general direction is set if they have access to real users to collect feedback. But it's important to recognise that these are essentially two completely distinct skill sets and mindsets and it just happens that some people have both.
It's not really any different to the old arguments when continuing a career beyond senior dev level meant moving into management but there was no guarantee that just because someone had been a competent developer they would also be any good at managing anything. Some were and produced great results - in some cases informed by their understanding as former developers about what would be possible and what it would realistically cost - but in other cases the Peter Principle hit early.
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
I feel like there's this one random comment on HN that should be adopted on its merits alone, but everyone will ignore for no good reason. This will never happen because entrenchment and bureaucracy will strangle every product organization and every organizational reboot attempt.
It's probably the right solution, but the resistance built into organizations assembled by bad decision makers cannot be overcome. Maybe the best you can do is try to find a legal way to spin-off a competitor with a truly fresh start.
I've worked with good product people. They come up with good ideas, have great suggestions, leave latitude for implementation issues to guide some of the design, and work well in the constraints. It is kinda amazing because you might be given a good idea/ticket, and it just flows smoothly and naturally (building on top of existing good product design of course)
Having them around is like 100000x better than having just random engineers be doing product design. And "oh just listen to your power users"... come on folks, surely we know about designing our software into a corner right?
I'm saying all this but am very sympathetic to the pain brought by bad product people (or just like ... mid product people. It's a hard space)
I started using the term “opinionated software” a little over 15 years when I was starting a new company. I built what I wanted as a participant and a fan of the sport.
Lots of other people had their opinions on it (“you’re doing it wrong and everyone wants it this way,” “you must have this feature” which barely anyone actually uses… the power users), but I held fast with my opinion (did usability testing to prove the it was easier to achieve the goals to back up my opinion) and I’m glad I did. It changed an industry for the better.
Excellent usability and functional design that achieves a goal better and easier will win people over.
I also built it with an API so that people can build their own versions of it with the same data, because others also have strong opinions, and I whole heartedly respect that. Some interesting things have come from it that are more targeted for specific users and situations. Pretty cool to see what others make.
While I don’t know how opinionated the guys that created Dark Sky were with it, I would guess that it’s a good example. It was different from all the other apps in their category in the way it surfaced information. Their new app is good (not quite as great as the original), but they’ve really spent a lot of time making a really usable and functional system.
Edit: About that same time in my life, I also realized that I no longer just wanted functional, I wanted both functional and form. I wanted well designed functional stuff. Turns out that people like that too.
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
This will just lead to massive selection bias. If all you care about are power users go for it. Otherwise you end up with a complicated system that is going to put off new users.
You can even have different power users who likes different parts of the software. Now it's totally possible to end up with extensive subsystems that don't really gel with each other
My anecdote for this is the the recentish redesign of Musescore. Tantacrul, the ux designer/product manager for Musescore has an hour long video on how he redesigned the interface and UX of the software. He is also a musician so you can call him a power users if you want but that was not the users he had in mind when redesigning the UX
There are good PMs out there watching in horror as their peers make changes and features that are obviously doomed (to anybody with a functional brain). I also write as much code as the median engineer on my team (skews junior). Please don't write off the entire profession based on many (most?) being awful - if you work with a good PM some day I promise you will find there is an important point to the job.
Mostly agree and would add that product managers should be responsible for the commercial success of their products. That means spending more time deciding what market to be in, how to differentiate, how to price, how to drive adoption.
For the most part these are not strengths for devs and power users.
Devs and power users create something like libreoffice or thunderbird. They are incredibly resistant to any change for any reason and hang on to what they already know rather than what’s best.
The reality is most people actually like the stuff Apple and such are putting out and like modern UX more. The only bad stuff is deliberate enshitification which is pushed by financial incentives rather than product people being incompetent.
I don’t think we can objectively say software is getting worse. I don’t expect an appliance website, a car infotainment system and a banking app to be the beacons of software quality and user experience. All those things would probably suck at any point in time.
I think people just think it getting worst because you use software for literally everything in your life now compare to before and this means you will most likely run into bugs more often.
On top of that software has to be build with more users in mind so you are often going to get bloated software. That why enterprise software is often horrible because they have to support multiple industries that all need different types of workflows and UI.
I have been using software for decades and there has always been horrible software. Like I'm mind blown that people think human always wrote good code, and that AI is somehow worst than human code. AI writes better code then the vast majority of programmers that's a fact. Yes, including you. Yes there are certain areas of programming that it sucks at but 99% of programmer aren't writing that code.
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
One of my absolute favourite features on KDE Plasma with Wayland is the global setting to control what can steal focus. It works wonderfully, and I always miss it when I have to use my work mac or windows computers.
Yeah the obvious answer to software getting worse is to switch to FOSS. Use Linux/KDE. It's been great for a long time and only ever gets better. It's as if Windows 7 just continued to slowly iterate and add useful polish.
NixOS has a longstanding issue where library loading (and therefore program start, particularly GUI programs that load a lot) is n^2, but programs still all start in ~1 second or less on my n100 minipc. I still found that to be annoying enough to look into why it seemed so slow (and learned about the loading issue). Can't imagine things taking so long that you actually switch to another task. The same minipc can easily handle my 4k 240hz HDR monitor as well, and the whole experience is completely smooth.
The computer also just obeys me. It does exactly what I tell it to, and nothing more.
> It's as if Windows 7 just continued to slowly iterate and add useful polish.
That's a pretty good description of it, I even have KDE laid out the same way I did on Windows 7 (or more accurately I guess on KDE going back even further since Linux has been my main OS since the 90's with Windows relegated to gaming).
To this day - Taskbar shows window titles, only shows window titles for windows on that screen, there is no grouping, there is no ordering except order opened etc.
I think autonomously in terms of which physical screen a window is on and when it was opened relative to others so I know exactly where to look/it'll be - the Mac style (and Linux/Windows style at least out the box) defaults of hiding all windows for an application behind it's icon in the dock never made sense to me, I have widescreens why do I want a doc that only takes up 40-50% of the horizontal space?.
> defaults of hiding all windows for an application behind it's icon in the dock never made sense to me
Not that it's a better workflow, but macOS does make a distinction between hidden and minimized. You can "hide" an app, and all windows will be hidden, only the dock icon showing. Minimize will move that specific window into a separate area onto the dock since macOS treats apps & windows as separate entities.
What I absolutely hate though is you can cmd+tab and bring out a hidden app (but it restores all of its windows which drives me nuts), but you can't for a minimized app without holding option before releasing the keys.
> The computer also just obeys me. It does exactly what I tell it to, and nothing more.
Is the biggest benefit and point. You can toss whatever UI/workflow style you want on top of pretty much any distro. I absolutely cannot stand the loss of user agency on modern software/operating systems. I have to use both macOS and Windows at work and I hate them almost equally (I hate windows a little more than I hate macOS, but because of Microsoft's behavior, not because of the UI).
I feel like every piece of commercial software and OS now is like Blizzard "You think you do, but you don't"
I so want to agree. I have been a Linux user for almost 2 decades now and I still can’t close apps by throwing my mouse on the right top corner and clicking. It works on “KDE apps” and but not on Firefox so I am guessing GTK apps.
The idea that I need to have window decorations and the “GTK window decorations” configured separately is just …
Anyway, the point is it’s never going to be consumer friendly. Office systems managed by IT teams can switch to Linux no problem. People just complain about “weird work computer setup” and move on. But personal laptops aren’t going to be an attractive proposition.
The problem is that I can't still buy a laptop at Media Markt, or similar consumer store, with a Linux distro pre-installed, and if I could, it would be OEM Linux, just like they do with Android, WebOS, Netbooks, whatever.
Outside Internet places like HN, most consumers aren't going to Tuxedo, System 76, or building their own Linux PC.
Thus commercial OS platforms keep winning, and the owners are anyway the ones that sponsor most FOSS projects.
Miss Windows 7 by the way, it was when I gave up on The Linux Desktop.
Windows 8.1 was pretty solid, if short lived. New task manager, overhauled file copy, better SSD support & HiDPI scaling/multi-monitor support was hugely improved over 7, 8.1 also improved the window snapping and fixed the horrible table UI for it from 8.0
8.1 also ran faster than 7 on a lot of machines, they did a lot of work to optimize it for the crappy tablets which translated well to desktop.
Also the last version of Windows that you could opt-out of telemetry with (until Microsoft backported 10's telemetry engine to 7 and 8.1 via optional update)
Plasma has very strong opinions about what the desktop is. So strong that it probably disagrees with every single person.
The other side of the news is that the desktop abstraction has been made more and more useless on every OS for a couple of decades already. In any other OS your life will only improve if you abandon it too.
Maybe because the start menu equivalent and the task bar are their own modules. They just come precondition, but you can use lots of alternatives. But I'm just guessing.
I use KDE on Bazzite. It has a couple killer UI features over Windows. It can label bluetooth devices (so I can have blue dualsense controller, pink dualsense controller, white dualsense controller, etc.). No clue why this doesn't work in Windows lol. Also the super/win + arrow keys are more predictable, super pgdn is minimize and super pgup is maximize, so I never find myself accidentally minimizing windows when trying to move them to a corner. My wife was able to easily install and play the Sims with all her mods as well. I also use Bazzite specifically because it's atomic - so when I make the mistake of giving into temptation and updating shit once every month or so, if it's broken I can just revert it.
But I will say I've had a ton of failure to wake up from power saving issues (resolved by just disabling pretty much every power saving feature, which I was gonna eventually do anyway because I want to be able to remote into the machine), and VLC can cause the UI to lock up because of some XWayland nonsense that they're still trying to fix (I just use Haruna, KDE's default mpv-based player, and it's mostly fine). It's a little silly and was quite frustrating that Linux is still dealing with this shit. A more minor (but still irritating) issue is that each taskbar has its own set of pinned applications (instead of just being identical like in Win10/Win11), so if I change the order on one I need to manually go change it on the others.
Overall, I like it because it's good for development and creating other stuff, the filesystem is fast as fuck (way better than WSL) it's obviously less actively antagonistic than Windows 11, Photoshop has gotten worse so I've switched to Krita which works great in KDE, and I've not been surprised negatively by anything after dealing with the previous paragraph's issues, but a non-technical user might struggle to deal with maintaining it.
I've spent 6 months in KDE after years on Windows, and KDE is crap in both UX and number of bugs. I love the idea of open source, but there's a long journey ahead to even match the state of Windows 2000.
KDE has improved a lot in recent years, but yes I would agree that it still has plenty of rough edges and little unexpected (as in slightly jarring) differences in behavior from major commercial desktops.
I still prefer it over the bloated pile of upsells that Windows has become, but I think there’s still space in the Linux desktop world for a legally-distinct clone of Windows (sans the bad parts). KDE isn’t that, it’s its own thing and is best fit for long time Linux veterans.
I actually had to backpedal on my gaming PC from Kubuntu recently, I'm sad to say. The support for the RTX 5080 is just too rough. Every game install was chased by an hour of debugging with Claude to figure out which version of proton to use, which launch arguments to use, which between-system-and-gpu shim profile to use.
I grant: The process is much more enjoyable than doing similar things on Windows. Kubuntu treats you like an adult and will tell you what's going on, and being able to copy the sometimes esoteric nonsense in those logs into Claude and get actionable information while not remotely understanding the underlying tech is fan-bloody-tastic.
That said it was death by a thousand cuts. Some friends I hadn't heard from in awhile asked if I wanted to get on Warhammer Space Marine 2 and luckily, I had it installed! ... and was able to play after a mere 35 minutes listening to other people have fun on the call, while I was trying to figure out why the game would only launch to a black screen.
So yeah, I wussed out and went back to Windows. I'll probably try again in a few months, and hope the GPU support is better. But that's also explicitly riding on nvidia to do, and they're busy selling shovels to the AI gold-rushers.
Hey may I suggest CachyOS + KDE? It’s very gaming oriented and you have a lot of great built in features. Everything just works.
So far in 6 months I ran into a single issue: On day 1 of the new Subnautica early access I had to do some debugging and downgrade nvidia drivers to a previous release. But this was fixed after about a week.
No other game gave any issue what so ever. I run everything on the cachy proton version. 4090, 5070 Ti, 5090. All work perfectly. DLSS, Frame gen, older titles too.
If you want to there’s convenience flags to auto upgrade things like DLSS to latest versions etc. It’s not something you have to use, but I found it really nice compared to the Windows equivalents.
I’m so beyond happy to have zero Windows left in the house. :)
I would like to add that CachyOS also supports Niri, a scrolling tiling WM.
As someone who long had "papercuts" from floating WMs I've had great success with it and even prefer it to something fully tiling like hyprland.
Another vote of confidence for CachyOS + KDE! This is my setup and literally the only issue I've had which presented a problem to me is that OpenRGB doesn't like my mobo at all, it's stuck in 'unicorn vomit' mode when I wanted tasteful accent lighting. Games work with minimal farting about, the desktop is great out of the box and customisable in plenty of ways, and it generally treats you like an adult.
I'm not on Cachy OS myself but just normal Arch with KDE, and HDR is working fine there at least. Using an RTX 4070. I hear some people can still have issues with it though, but especially when running Wine/Proton in Wayland which is possible nowadays I haven't had any issues regarding that. You still have to use environment variables to enable it though (PROTON_ENABLE_WAYLAND=1 PROTON_ENABLE_HDR=1). Hopefully that will soon just be automatic.
That is for games specifically. For video with mpv it just works in my experience. Browser support is still a quite hit or miss.
Anecdotes like yours are why I'll probably remain on Windows for the foreseeable future.
Games on Windows just work. It's not even a question. I don't remember the last time I had to fiddle around to get a game to work properly, but it was probably 20+ years ago.
On Linux? Might as well play a slot machine. You might score a jackpot and the game has a native Linux port that works flawlessly out of the box. You might have a decent win with a non-native but works well with Proton. But there's a good chance it either won't work at all, or requires significant fussing to make it work.
Counterexample: I was locked out of Destiny 2 a couple times as they shipped new updates that simply didn't run on Windows 7, even as they continued to claim it was supported.
I don't mean subtle bugs either, I mean stuff like an immediate error on startup for a "missing" DLL, which persisted for weeks.
> Kubuntu treats you like an adult and will tell you what's going on
This means so much to me in the modern era. Contrast with the SaaS approach that's also been leaking into Electron apps, etc:
- "Something went wrong"
- "It's not you - it's us :-("
- "An error occurred"
- "Uh-oh..."
- "Too many penguins are in the defrobulator" [or whatever "lol so random" 2010 corporate mascot in-joke is applicable]
People used to make jokes about cryptic error messages with alphanumeric codes but cryptic beats cutesy and completely uninformative every day of the week. The days of people being intimidated by computers have been over for a while now so I'm sure I'm not the only one who feels this way.
"Can websites please stop the trend of giving error messages that are like "OOPSIE WOOPSIE!! Uwu We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!" And just give me a fucking error code so I can try and fix it"[0]
> The days of people being intimidated by computers have been over for a while now so I'm sure I'm not the only one who feels this way.
Oh, I wish...
We have a couple of applications where we used to show useful error messages that users could copy-paste to us when they opened a ticket. We had to remove them because they scared some users. Now, per our customer's request, we sometimes only show "ERROR". Yeah, that's better...
Also, in the ticketing system we have to hide technical messages when passing the ticket between teams because the user would interject telling us they don't understand (which is ok, to a point: they have all the context they need to understand we're not talking to them, but ok...) but some would get really angry and frustrated and complain to our customer's IT that they don't want to see the technical stuff.
Also, my parents that get scared if something in red with numbers shows up on their screens.
Perhaps 'Error' in tasteful smoked glass overlay, but with a QR code that encodes an error number?
(Spent some time last year supporting students online - noone was going to take a screen shot of their laptop so we ended up with them emailing photos off their phones)
I remember when BugZilla reported "Zarro boogs found". My reaction was to ask that we switch to some software that didn't act like it was a 13 year old nerd.
I think it was Woz that said something along the lines of 'the problem with making a computer that stupid people can use is that only stupid people will want to use it'. arrogant, no doubt, but also also rather prophetic now that we're in the era of "Whoopsydingdangdoodle, we made a booboo with your request" meaninglessness. I think we've traded being intimidated by computers for being completely agnostic as to how they work and just not caring. They've gotten easier and more reliable, sure, but they've also gotten more opaque, less transparent, less extensible and less fixable because of it. Those of us who grew up in the era where you had to become pretty intimate with the details of how a computer worked in order to get it to do anything at all developed a lot of skills for dealing with issues and now those skills are being intentionally obsoleted by design decisions that remove our ability to actually fix things ourselves by hiding everything about the apps we run except the interface.
May not be applicable to most, but this can be solved by multiple devices. I have three laptops (my work mbp, my personal mba and my daily driver which runs OpenBSD) and two mini computers (one is a server for file and misc. stuff and the other also runs OpenBSD).
I just switch devices depending on context and needs. If it were me, I'd just use the gaming PC as a console.
> I actually had to backpedal on my gaming PC from Kubuntu recently, I'm sad to say. The support for the RTX 5080 is just too rough.
What? That has nothing to do with KDE. And Ubuntu is one of the happy paths for driver support. The problem is squarely on either NVidia or overly pretentious commitment to FOSS and only FOSS.
Man, I should get a PhD if it's that little effort.
Sure, you can drive yourself nuts picking a window manager, but that's for the hardcore nerds who want to optimize everything about their WM. For a different example of the same pattern of behavior, here is the BITOG forums: https://bobistheoilguy.com/forums/
Thousands of pages and millions of words dedicated to choosing precisely the right oil for a specific motor. Does any normal person need to do this much research into what oil to use in their car? No, but if you want to optimize you can spend weeks going down a research rabbit hole involving lab tests.
For most people, just buy any oil that isn't the cheapest available. Same goes for window managers. I've never got into optimizing or customizing them, but for any mainstream distro the default will be absolutely OK. You can definitely invest thousands of hours into customizing and tweaking a WM, but you could also spend that time customizing emacs and making that your 'WM".
I've never understood why people present selecting a desktop environment/window manager as this huge hurdle. Just go with the default for your distro, if you want to get super nerdy you can change it but most people won't need to.
It's really not that bad. KDE is perfectly usable by default. More so than the only options you get on macOS or Windows. And, if you are so inclined, you can spend that extra effort to make it sing just to you. So, the hyperbole here is really not warranted.
Ironically enough I find KDE to be useless these days.
I kind of settled towards e. g. fluxbox or icewm. Mostly because I don't want to spend too much time configuring anything and these are faster than KDE at all times. Plus, KDE goes into the systemd-dependency and "no more xorg" anyway under Nate-lets-add-more-donation-daemons-Graham. Oldschool KDE was not as opinionated.
It is interesting how Linux and FOSS in general is just providing a better UX these days. I have to think its because without profit motives, people do things for passion and maybe that leads people to write code the right way instead of the "it works" way.
I think this is less a "macOS lacks the feature to prevent focus stealing" and more they never even imagined the scenario where it takes time for the app to open. Instead of even considering that a user may add inputs while waiting for launch, potentially signaling that they are no longer requesting focus from the program they clicked on, they simply designed for the optimistic case where there never IS time for the user to give these inputs before their intention of opening the program is completed. Not saying it's any less bad from a user's perspective, but I think there's a difference in mindset here.
Having owned a good number of Macs and one hackintosh in the past, that would be very bizarre assumption to overlook. App icons bouncing while something loaded was never a rare thing.
IMO, nothing should ever steal my keyboard focus. As soon as I've typed a single character, whatever happened before, too late for you.
In my experience (admittedly a bit dated now) Mac apps always take a few "bounces" to launch and be ready. There are a lot of nice things about MacOS but snappy application launches isn't one that stands out for me.
It’s probably the lack of distinguishing between a window obtaining focus because the application just launched and the window of a running application requesting focus for some other reason.
Nevertheless, the OS could conceivably track whether there was any focus change since the process was launched or since it received the last key-press or mouse-click event, and only allow the focus change when there wasn’t (and otherwise use a non-focus-stealing notification mechanism).
They can open nearly instantly, but they need to be well-built native apps. Lumbering behemoths like Adobe CC or anything Chrome-based is going to be a bit slow, and even smaller apps that pull in a big foreign UI toolkit are going to take a tick or two longer to start.
It’s too bad that the art of building lightweight applications is becoming a lost art.
The single most soul-crushing experience I have on today's tech is the whoopee cushion.
I type this on a touch device that randomly Cheevers the words. (It literally changed "changes" just now. Henceforth, my word for this shall be Cheevers.) it Cheevers the words. It offers suggested words that you can tap to complete the word you're typing, and milliseconds before your finger makes contact with the screen, the suggested word flips to Cheevers and your finger taps that.
Now with the new improved iOS Liquid Glass, and possibly with janky web app development kits, buttons can move as you try to click on them. UI animation was supposed to help the user. But helping the user is hard.
Pop ups. The web needs more pop ups. More "Are you enjoying this app?" in your face.
But on the desktop, I recall complaining to a Windows (the OS) developer about stealing focus... in 1995. At the time, classic macOS tended not to do this, but it happened quite often multitasking on Windows, and I couldn't offer any constructive feedback, no obvious solution.
The sheer unpredictability, at 100 millisecond time scale... a few hours of this and I'm literally shaking. Because it affects muscle response, a startle reaction. Keeps firing away at the limbic system.
If I wanted slot-machine online gambling levels of simulation, I'd go to a casino. I hate this stuff. I hate where "engagement" metrics and the quest for more clicks has brought us.
A fantastic feature, but unfortunately currently broken (as in over- rather than under-zealous) for prevention levels other than 'Low': https://bugs.kde.org/show_bug.cgi?id=509990
This is the absolute perfect encapsulation of the Linux problem and the Linux appeal:
Yes, it has the magical setting to fix all of your problems and frustrations, and yes it’s a finicky broken bitch to actually get working for your use case.
This doesn't happen on Windows. Slack loads in the background and the taskbar icon just pulses when it's ready. I have to switch to it manually from whichever app I'm working in as Slack loads.
On Windows, UWP was supposed to solve this (by blocking apps from taking focus directly, but having the OS/shell create an app window immediately on launch and give focus to it) but most apps aren't UWP apps.
That is definitely needed. On Mac it is really infuriating how stuff (auto update etc) just take focus/pop up crap. I am literally never interested in it and am confused why I cannot just say [x] Force apps to mind their own business. We have f’ing notifications for this; why does it need a dialog window?
Maybe it's a hazy memory, but from 2007-2011 my main computer was a MacBook Pro. I swear in that era, when an app wanted attention it would bounce in the dock endlessly.
That was annoying, but it let you finish doing what you were doing until you were ready to switch focus.
I’m not sure that macOS changed as much as developer practices did.
Dock icons bouncing are usually the result of the app opening a modal alert window. Those can’t foreground the host app and they used to be what devs reached for 9 times out of 10.
These days though everybody and their dog has a menubar item or daemon running in the background (whether such a thing is actually necessary or not) and the only way windows spawned by apps like that (which have no Dock icon) can get the user’s attention and not have the windows they spawn get lost in the shuffle is for the app to call the foregrounding API, and so that’s exactly what they do.
Contrast this to years ago when almost no apps had menu items or daemons and were standalone.
There’s also been a staggering loss of decorum when it comes to these things. Companies have become shameless about pestering the user’s attention, and so there’s probably some regular Dock-icon-having apps that call the foregrounding API when they shouldn’t be too.
In my opinion menubar items, daemons, and foregrounding are all being abused by devs and Apple needs to get them under control. Apps shouldn’t be able to add menu items or daemons without the user’s explicit permission and foregrounding should he treated similarly to push permissions.
People say Microsoft has no UI taste, but they used to be decent. They had sensible guidelines and behaviors
For example for this case, the taskbar icon would blink three times and then remain highlighted. So it would grab your attention, but not hold it, and then you could still easily see at a glance which app it was
At some point, like many other things, it looks like this either was changed or broke/doesn't work consistently. But I thought it was a nice design
I never understood the OSes/desktop environments that stole focus by default. So many secrets/credentials have been shared because of that. Just give me a blinking notification that the app/window is available in the notification/taskbar/appdock area ffs. Yes that is one more click/alt-tab but that is much better imho. At least ask for preference on first ever login.
I am doing my best to implement a rule with apps where the third time in a single session you bother me about something that has absolutely nothing to do with the workflow I opened to app for, I uninstall the app. I don't want to update my spreadsheet app, I want to work on this spreadsheet. I don't want to tour the new features from the last update, I want to work on this spreadsheet. I don't want to sign in in order to access an AI companion (which I also don't want), I want to work on this spreadsheet. I damn sure don't want to leave a review in the app store for you and at this point you don't want me to either. You want me to work on this spreadsheet.
Between that and this insane thing MacOS does where when I click an app in the dock any random app opens up (and, per above, begins barraging me with things designed to "direct" my attention) I'm ready to switch to something whose primary feature is not acting like the dev team spent the last ten years trying to arbitrarily bump the number of features up and ending up with a giant pile of buggy features that nobody asked for.
And for my final gripe, at least for the next 15 minutes, trying to teach a computer how to do what I mean instead of what I say was a mistake. I learned computers back in the day where there was no attempt at interpretation of intent and instead the machine did exactly what I told it to, and that's how I prefer it because it simplifies the problem space when the machine is misbehaving. I told it to do the wrong thing. That's the only possible answer. But now there seem to be so many layers attempting to interpret meaning from actions that the problem space expands to make room for the idea that I told it to do the right thing, but it guessed that I meant something different and then did that instead. As an example, just trying to highlight something in my Mac's terminal app so that I can copy/paste it. I click the terminal app on the dock, and focus switches to that terminal app but also docker desktop, which is on top of the terminal and doesn't go away when I click into the terminal. Instead I have to interact with docker desktop. So I minimize the app I never asked for, and actually have access to the terminal. I'm using the built-in touchpad and have to select an entire line, so I start from the right with one finger, click and drag. But another finger, or perhaps the heel of my hand, gets close to the touchpad and MacOS is SO EXCITED TO HELP that it decides to interpret that as a right click which results in my selection getting interrupted halfway to bring up the right click menu, whereupon I'm presented with the option to do several things with this approximately 40% of a CLI command including: search for it in webster's dictionary, convert it to spoken word, convert it to Chinese (my choice of traditional or simplified), or try to open it in finder despite it being a portion of a command and not a file.
All of this points to a Goodhart's Law situation where someone decided the size of the pile of features was the measure of the quality of a piece of software, rather than how elegantly it does the job the user bought it for. AI has also significantly increased the speed with which a feature that no one asked for and that doesn't work correctly can be delivered.
I think there is a law of the universe which says it must happen right after you've mentally decided to type enter but before your fingers have finished.
How would that global app ban help? You do want the application to steal focus when necessary. It's just in this case the user has made the decision to not wait for startup and switch to another app. Aggravating step - he was typing.
Is this workflow part of the Kwin settings? It's not interrupting typing part of the settings?
>You do want the application to steal focus when necessary
No I don't. We recently switched to Zoom at work. Meeting notifications steal my focus (Windows 11 device) and it's fucking terrible. Nothing should ever steal focus.
Any app should be ready to accept focus. It should never steal focus. When I start an app, and wait for it to launch, I am attempting to give it focus. I can withdraw that intent at any time by doing something else (e.g. switching apps) and the launching app should finish launching and wait in the background.
Your specific example is just repeating what I've said, but your generic point is wrong: let's say you have an important task in an app with unavoidable interruptions, during which you switch to your browser to mindlessly scroll.
You most likely want to return to the main task as soon as possible because that scrolling is just a time filler because you can't do anything productive. So you don't need any notification and extra action, just switch back asap and continue work with as little interruption as possible.
But even in the specific example that depends entirely on what you're switching from and to and for what reason. If it's for something quick non-interactive (I don't know, switch to a file browser to check the file name or something), then yes, you'd prefer to seamlessly be switched back to the main app to do the thing you launched it for.
But if it's not an important app, then yeah, you just want it to be ready for you and switch to it whenever you decide to avoid the launching delay later
Your example is wrong because the people who write apps always think they are the important work that should steal focus. The user on the other hand knows how to give focus to what they want to use when they want to use it and doesn't benefit from nondeterministic behavior.
My real presumption is that the user knows exactly what they want to happen, but can't encode that knowledge into OS configuration because people have no imagination for trivial use cases, so demand blanket bans. While another group is just as limited and encoded blanket allows
> Would I?
You would
> How do you know?
By being the omniscient being that came up with the conditions in the first place
Nope. I never want my front task just interrupted like that. Let's take your "check the filename or something" example, and while you're there, you realize you also need a new directory, so while you're typing the name, the other task steals focus and the character you're typing cancels the task - and now you have to start it again. This exact situation has happened so many times, and it's why focus stealing focus of any kind is a problem.
I don't care how important the app's developers think their app is. It's my computer, it's my decision how "important" something is.
Let's take the real example I've made up (which is also a situation that happened many times to warrant an automated solution to limit distraction), not a totally different one you've made up because you can't point how the original fails withotu changing the conditions.
Also, I've specifically mentioned typing as a different workfow/use case because that obviously requires different handling.
Fine. I'm checking the files as you say, focus changes while I'm still checking, now I have to switch back to finish checking. No. Do not want.
Also, no one else needs to be deciding how my "distractions need limiting" on my computer. I can handle that myself. Provide settings, an extension framework, whatever to allow people to manage their distractions, but don't force that on me and my device.
No, you're committing the exact same error again. You stopped checking in the first 0.5 sec while the app took 1 sec to start. If you're not capable of imagining a situation where this happens like some other commenters, that's ok, but that's a different argument.
> I don't get it, are you not capable of imagining a situation where
You're the one deciding that!!! That's what a properly designed system would allow you to do. But the system you advocate for does NOT. If decides for you that you'll never need it. Just like the current dumb systems decide for you that you always need it
Why do you presume to tell me how I perform a task? Do you know how many files I have to scan through to check? Do you know how far the Finder scroll has to move to show me what I want? Maybe it takes a glance. Maybe it takes ten seconds.
I don't particularly care what kind of activity you might be imagining, but nothing that steals focus should be happening without my consent. You have been arguing that it should and then later changing your argument to allowing configuration for such things.
> > I don't get it, are you not capable of imagining a situation where
I don't know where this came from, but it's not in my comments. I think your emotional response to this discussion has you conflating commenters.
If you want to advocate for configuration to allow focus stealing that's fine. But you've been arguing as if it's silly that anyone would want it any other way than you.
> Why do you presume to tell me how I perform a task?
Why do you keep presuming you can make up your own example when arguing about a different one??? The original premise "depends entirely on what you're switching from and to and for what reason", so of course if you change your conditions you'll have different outcome re. focus stealing!
> You have been arguing that it should
No, you've been missing the point this whole time.
> I don't know where this came from, but it's not in my comments
It is, I suggested you imagine the case where you'd like the change of focus to happen in response to some conditions you find favorable, yet several times you faield to address it as is and kept bringing up different conditiosn.
> I think your emotional response to this discussion has you conflating commenters.
I think if you're that bad at reading literal text you shouldn't attempt at trying to read emotional state of that author.
> If you want to advocate for configuration to allow focus stealing that's fine
So why do you keep arguing that it's not fine because you can't imagine a situation where it is?
> But you've been arguing as if it's silly that anyone would want it any other way than you.
Nope, that's you misreading again. I have no issue with people who want a dumbed down "never steal" config.
Maybe the silly part here is people ostensibly supporting computers respecting user choices arguing against being able to better configure your computer to respect user choices.
If computers could read thoughts and 100% reliably determine when the user is done with their current task and would like to switch back to the other application, then yes, it would definitely make sense to implement the functionality you're describing.
In the real world, where it's impossible for the OS to distinguish between the "You stopped checking in the first 0.5 sec while the app took 1 sec to start" scenario and the "you're still busy with the current task and don't want to switch to the other app yet" scenario, the safe choice is always to not steal the focus because the cost of switching too early is significantly higher than the cost of not switching.
It's not what I would call invisible, but yeah that's the behaviour I would expect. That's also similar, to what already happens when I type in one window, while I scroll in another.
My expectation is described in the comment you replied to and side comments
Microwave's ding is also bad UI, especially when it's repetitive as it's just useless noise. But even the first ding - what value does it have if you already have exactly the same notification category - audio cue - built right there in the process: the machine noise disappears when it stops working.
That! I don't want apps to steal focus in some conditions. I can't set it like that because the settings are too primitive. Why would I be satisfied with a primitive binary toggle when I want workflow-dependent conditions?
Let’s say you’re controlling a piece of machinery with an app in the background and the machine starts on fire. Wouldn’t it make sense for the app to steal focus so it can show you some alarms (in addition to audible alarms which you may not hear because they’re in another room).
You can build software fast, but the more time you take the more you can be confident about it being correct.
This was true already before AI code generation, but AI code generation means the definition of “fast” has shifted like crazy. An experienced engineer can now build in an hour what would have taken them a week.
But it (right now) does nothing for the confidence about being correct - you still have to put in the extra time to ensure the software is correct to your desired degree of confidence.
Unfortunately for people who like their software to be correct (stable, performant, bug free, etc), it seems like way too many software developers right now are happy to take the gains of the former but ignore the tradeoffs of the latter.
(at the same time software quality for mainstream consumer goods like the kind of thing OP complains about in their post has been down the drain for a long time now, and it seems likely many of the examples they give are pre-AI)
> An experienced engineer can now build in an hour what would have taken them a week.
From what I've seen, I don't think so if we're talking about like-for-like quality. Maybe as an absolute best case scenario, but more typically it's more like you can build in an hour with AI whereas without AI it might take you 2 or 3.
Even thats highly task dependant, and doesn't scale as you'd expect (eg 1 hour == 2 hours, but 1 month =/= 2 months), and at times even using AI can slow things down, at its worst case more severely than at it'd speed you up at it's best.
Now if you're willing to throw like-for-like out the window, that 1h==1w could be achieved easily, maybe even more. But then again, I feel like I could do a lot more in an hour if I didn't care about quality either, not as fast as AI but much faster than I am currently.
I think I can say I got some 10x speedup with the recent, more powerful models (from Opus 4.5 on). But then again, I am just building CRUD websites, although sometimes there are some challenging tasks like some fancy graphs/plots to show, and some API integration in the backend, etc... but these are the use cases that models are really good at. I have 0 worries about scaling: my apps are internal, so you can think of 10-15 concurrent users at most, usually 5 or less, and 100 or so users in total, which eliminates the whole class of complicated scaling problems. 99% of the devs are probably on the same boat: our day-to-day problems are not complicated, dont need any deep algorithm or data structures knowledge, and models speed up this type of work a lot. Of course, they get very limited on complicated problems
I like to think, or hope, that its just a vocal minority and that the majority of engineers are at least more considerate with their AI use than going all in. It kind of makes sense too, "I programmed X entirely using AI" is a more compelling proposition for an article than "I programmed X the same way people have been doing for decades", so of course you're going to hear more from them.
> You can build software fast, but the more time you take the more you can be confident about it being correct.
> ...
> But it (right now) does nothing for the confidence about being correct - you still have to put in the extra time to ensure the software is correct to your desired degree of confidence.
You're partially correct - what gives confidence is duration in the field. No matter how long you take to build something, seeing it work in the field for 3 months gives me more confidence.
And break ux for users often and piss them. There are short reversibile decision that can be taken fast, important decision requires a lot of thinking before changing to often and alienating your users
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
I still don't understand how a full focus stealability debounce is not the norm. If I am in the middle of writing, or interacting with one UI bit in any way, no other app should be able to steal focus, full stop. Add an annoying popup if you want, make angry computer noises, flash icons, I don't care. 99.9, if not 100% of the time, it's completely unrelated to what I'm doing and can absolutely wait. While some OSs have something along these lines, they also give the tools to bypass it (I'm looking at you, Cisco AnyConnect! Being connected after clicking on connect is not an emergency!)
Imagine you're working in a terminal and an app decides to steal STDIN. Why do we accept that for a GUI?
For some reason I have to deal with the opposite problem and have to click twice on a new window to get keyboard focus. Many times I'll switch windows (eg. from Messages to the browser), start typing and accidentally end up sending someone a message instead- even though the messages tab is completely out of view.
Yes! Few things piss me off more. It boggles the mind that this behavior is the norm, and it happens all the time! There are practically 0 situations in which I want something to automatically steal focus.
Curiously, macOS is capable of putting a recently opened app out of focus. It happens consistently on my laptop when I haven't rebooted it for a while. It may be a bug, but it could be a feature, especially when it's conditioned by the user clicking in another window before launch completion.
For me, macOS seems to put opened apps out of focus when I have started doing something else since launching them, or when they were launched from elsewhere than the active app (eg by a terminal that's not in the foreground).
You can't really debounce it easily due to how the OS event queue work across processes and windows. One fix could be to not bing the focus to newly open windows (like you could in X11) but that's not what users want.
You don't know that until you ask users. That would be a much more useful question than those boring "tour guide on first login" or "please activate cortana/copilot" or "do you want to sync to onedrive" stuff one gets notified on some major desktops.
My preference is focus follow mouse, no focus stealing on new window opening.
The users are trained on their exposure to behavior in Windows, MacOS and non-ancient Linux distros. Good luck changing the expectations of the world population. I believe the GIMP tried that for a few decades.
Today, developers assemble a Tower of Babel built of libraries they do not understand. Those libraries were largely built the same way.
There is “no value” in a company maintaining their own purpose-optimized HTTP client, database, GUI framework, or anything else.
Each layer adds features but subtle crappiness in the details not understood.
I shudder to think how many string libraries end up in a modern system…
“Practical” solutions like “this WXYZ fails 5%” of the time, let’s add a retry loop. Of course, this the next layer sees random failures that are hard to reproduce, so they add the same.
At some point our modern supercomputers are repeating millions of operations because of a stupid bug. The user just sees a sluggish app and gets annoyed.
We could write simple, understandable, efficient software that is a joy to ship and use. Unfortunately that doesn’t add value so we are extremely careful to never waste resources on such!
While I empathize with this view in principle, I believe that all organic systems eventually devolve into deep and rather chaotic complexity as they become more advanced. Biology is in many ways extremely inefficient, but it is also very error-tolerant because it has so many retry and error-correcting mechanisms.
And humans possess nowhere near as gifted a talent as God or natural selection or whatever you believe drives the natural world. So it’s to be expected that the systems we produce will be much more buggy than biology! It’s kind of futile to imagine it could happen any other way… we are just not that good.
Software quality is tied to the market incentives and always has been. AI isn’t going to make someone care about writing robust software and that is why we don’t see better software all of a sudden. The market doesn’t rewards apps that don’t break on every update, it doesn’t reward cobbling together multiple independent solutions, as opposed to using Microsoft as a one stop shop. If people could have gotten away with this in the early days of computing they would have, but computers were too low powered, and the knowledge too scarce.
There is a saying
Any idiot can build a bridge that stands, but it takes an engineer to build a bridge that barely stands
We found the limits of what it takes to make software stand, and what software paper cuts people are willing to deal with
"Software quality is tied to the market incentives and always has been."
Yes -- but. The market is irrational especially in a time of mania or panic. The AI phase we are in has mania, bubble aspects. There is no rational calculation about what is happening to software quality and is that good for customers or the industry (or individual businesses). We are too far into FOMO. It won't stop until it STOPS. Uh oh.
A friend of mine works in a niche software field at a small company. It was recently acquired and the whole technical team was laid off because the new director of engineering determined that they could replace the whole team with AI. All of the people who wrote the product were dumped as well as the whole cohort they had trained. Everyone.
Given doing better costs money, and people don't want to pay for better, leaving that place is hard. We've seen the same play out with physical goods - the cheapness of just-good-enough-but-right-now-cheaply outcompetes quality, which costs and takes time.
I mean every industry has done this before getting highly regulated. The meat industry was horrific before being forced with fines and shutdowns if they released a bad product.
Software is a market for lemons. There are huge costs for switching, and it's typically very hard to tell what is good. That and with the rate software is updated you have no clue if it will remain good. There are high motivations for short term gains with enshittification all over the market.
The problem is that the cost curve for completeness/correctness goes asymptotic at 90-99% so the cost up building complete/correct software is never worth it from a revenue perspective, and only happens if there is significant liability risk from defects.
So what's our (literal or metaphorical) breaking point here? How much more does things need to break before people just say "enough" and stop consuming into the declining quality?
I feel like the only real answer is "we just don't know". But in an attempt to actually answer this, I think the breaking point are different for different groups of people.
If you are struggling to pay the bills, you probably could care less about software's 'decline', you're just trying to survive. Maybe if something catastrophic happened it would be enough to put you at that limit, but software could stand to get much worse before then.
If you are forced to interact with technology a lot everyday, then what might be a paper cut for someone every once in a while, could be literally hundreds a day for you. In that case you are probably very near or at that threshold already.
As a society, I don't think we would see cracks until we start to see multiple community scale disasters related to poor software, or small disasters in highly visible areas like healthcare, planes, etc.
I agree that software becoming worse (in some sense) but I don't blame AI.
My experiences as a user haven't really changed. Streamers fail to cast to TVs. Browsers are devices which reliably and efficiently propagate red console text and 500s from companies to you. I still see bluescreens on public touchscreens.
Uncle Bob nailed one reason why the industry isn't getting better: the growth of programmers is exponential, such that half of all programmers have less than n years experience (5?).
I offer two additional reasons:
Firstly, you hone your skills doing individual algorithms on a single thread, where it's OK to get it wrong and change it as many times as you like.
When you get a job, you don't even realise you're in a distributed system and the getter/setter model you practiced on is woefully inadequate for interacting with partner systems, cqrs, event-sourcing, auditability, idempotency or whatever else is required.
In short, 10 years of practicing writing for-loops and data-structures will not translate into building a system that customers can access via their phone and multiple tabs of a browser, at the same time as a database schema is being updated.
Secondly, while I don't think there is any realistic alternative to agile development, it seems that nontechnical POs have captured the software lifecycle. 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
It seems like the languages have been increasingly targeting the beginner segment (C++ -> Java -> JS -> Python), while the tasks have been getting more complicated (b2b distributed systems, 24/7 uptime, millions of users, resistance to hackers, machine learning, etc.)
> 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
And then when the MVP is done, it magically becomes the shippable product. Then just when the team is getting to grips with how to improve the product, management does a reshuffle and moves teams around. "EXCITING NEWS GUYS, congratulation to Jimmy Whatevs for being promoted to SENIOR Director, he will now head-up the cross-functional-operations team which will be folded under the product-support division."
>their paycheck comes from actually selling things and not just from typing on the keyboard.
It's not even "selling things" these days. It's pleasing shareholders. That's why even productive engineers can get laid off these days. The incentive to type on keyboards or even sell things are not aligned with what the market wants at the moment.
> Secondly, while I don't think there is any realistic alternative to agile development, it seems that nontechnical POs have captured the software lifecycle. 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
100% agreed on ProductManager-ism/MVPitis is a cause of so much of this.
One can "do agile" a bit less literally & stupidly.
For a lot of software infra or even user facing apps, you really can plan out more than a sprint or two. This might be the MVP, but there is prior art in the space / competitors / devs with experience on the team. You probably should think about what the app should be capable of 3/6/12 months out.
When you follow a GPS for directions, you generally take a look at the overview first, make sure it's not driving into a lake or taking you to a similar address in another state. My car even shows me the next 3 steps on the path as I go, I like that.
Agile should not mean blindly "take 1 step and only then contemplate what step 2 to take once you complete that 1 step". And yet that is how MANY shops implement it in practice.
Uncle Bob already became part of the problem by some of the stuff he wrote in Clean Code (like using mutable instance fields instead of method parameters). Luckily he isn’t perceived as very relevant anymore.
Or ever. If we want to some colleague to tell us what is good code and what isn't, can we please pick someone who at least once demonstratably delivered good software? Bonus points if it was a group effort, and if it was on time.
Common for all these "industry leaders" is that they all write books and give speeches. I'd rather listen to someone who designed successful software such as git or OpenSSH than someone who designed a salary system in the 90s which, it turns out, was scrapped two years later for being a mess. Giving yourself a stage name is not a merit in itself.
There is something to be said for actually understanding the problem first. Did we learn nothing from the TDD nonsense in the 00s?
The famous InfoQ sudoku software design example was chronicled on HN here and should be required reading for anyone who cares about clean code in practice:
> Did we learn nothing from the TDD nonsense in the 00s?
I was never a fan of TDD, but ironically I think it may finally be a good development strategy now with agentic/LLM coding since LLMs do so much better they they have a verifiable goal like passing tests.
TDD is still off though, clean room is better. With TDD your agent can cheat by making the implementation just pass tests without actually making the implementation do anything else otherwise. With clean room, you have agents develop implementation and tests independently, and have an arbiter run the tests, delivering feedback to test and implementation agents if they are wrong (yes, tests can be wrong also), no cheating, you need a specification as a single source of truth for this to work though.
I generally agree that software has been getting worse, and AI isn't the cause, necessarily, but certainly is accelerating the decay.
Maybe a corollary to the growth of programmers is that pride/artisanship in the work decreases. Bugs happen more when the engineers dgaf, or aren't as dedicated to the craft. Software was pretty solid when I was a teenager (I'm thinking Windows, MSN Messenger, Flash, CDs, general web usage), complaints about tech/bugs weren't as common (or when they did happen, they were major, like BSOD). But I could just be romanticizing the past... idk.
In any case, say we were master woodworkers and we took pride in handcrafting great beds, but now the machines can make beds 150% faster at a 70% defect rate. There's 3 new problems: 1 is obviously that 30% of beds are shit, 2 is that woodworking as an industry is on the decline (expertise vacuum), and 3 is that the master woodworkers are disillusioned, their motivation and utility is decreased.
I believe that in time, the beds will get better, sure (the machines will improve). But in the meantime, huge numbers of people get shit sleep.
As an old greybeard now, you're romanticizing the past.
Past software was just as horrible, we just tended to use it for less things and incorporated its failures into our lives transparently. We'd reboot Windows every day so problems wouldnt stack up. We'd use less of the features, and use far less multimedia components like video and sound in the software. Flash was always a giant insecure piece of crap, it may have been better than other similar software but its issues were legion.
Artisanship takes a back seat to the business peoples demands, and the business oriented people have been melding with software people for decades. Still, classes of bugs we used to have all the time are not very common anymore.
But watching large software projects fail over and over again, even when craftsmanship is demanded, often times the only way that good stuff gets in is the unpaid heroics of developers passionate about the project, who want it to be good. There’s so… little space for that nowadays, because there is so little stability in people’s lives.
Yeah. Maybe to add to that: I like my current job, and I consider myself a steward of the codebases that I'm a stakeholder in (I want it to be good).
There's little space for stewardship when LLMs induce psychosis and learned-carelessness in peers, so even though I'm here, I'm still motivated, and I'm still trying to stop crappy software (usually in code review), it feels like it is going to be a losing battle in the long run. The point being that "so little stability" with respect to financial stability may not necessarily factor- stability is threatened from all angles (code, motivation, fatigue, identity, etc).
I'd say "coding" has been solved, but that was never the bottleneck.
Coding is cheap. It has been for a long time. Ten years ago my company was outsorcing all its coding to the cheapest people they could find in India. But most of these people can't solve problems. They can't even identify problems, much less design solutions.
Code is a liability. You want as little as you can to solve the problems you actually have. That takes an engineer. Maybe AI will get there someday, but it certainly isn't today.
Engineers can certainly use AI to generate code when they need it... but in my experience I don't need much code to do my job, so AI coding doesn't help me much. My personal experience is that by the time I've reviewed the output and corrected the mistakes, I may as well have written it myself.
Coding litterally is cheap. We outsource it for wages that you'd expect of a bottom-level fast food employee. We've been doing that for many years.
It doesn't take a 4 year education to learn how to use loops, functions, and basic data structures. Most of you could probably code by the end of your fresan year of college. Many probably learned at least some coding before college.
I've learned plenty since those days. I can code much faster now than I used to - in the same way an accountant is probably faster at mental math than they once were. But an accountant's value isn't in how fast they can crunch numbers. In the same way, a software engineer's value isn't in how fast they can code.
As a non-technical person compared to the rest of HN, I think this has always been the problem of software made for non-technical audiences. The design was driven by programmers’ heuristics and trends in technology stack (e.g. if a company can hire a lot of JS devs bc JS is trending, they will choose JS even regardless of whether JS is the best choice for the problem).
There was a brief stint of UX, ergonomics and HMI getting traction in enterprise, and, imo, the biggest technological achievements in consumer software has been in the realm of UX in twenty first century. But it lost its importance, I suppose, as you don’t need to make good software to make money off consumers.
Whatever capabilities AI gives to programmers in terms of speed of development, etc, doesn’t change the fundamental behavior —- commercial software is not developed for humans. It is developed for investors, markets, around operational needs, based on CEOs whims, developers’ personal itches, relying on approximation of human experience that gets regurgitated through layers of commercial processes of product managers, UX researchers (who, if present at all, often don’t get invited to the conversation until there are buttons to move in a GUI of an already existing product). Where human experience is considered, it’s from the perspective of our natural weaknesses with the goal to exploit them to maximize profits. Hence why 21st century tech gave us all the dark patterns, feeds, social media, LLM chatbots, etc.
Even when I talk to individual engineers who are committed to creating something good, wholesome, something that they can be proud of -— many think and reason about the problem in a way that sounds like they are trying to engineer human experience the same way one would engineer instructions for machines.
It will never get better, IMO. AI only exemplifies what already exists.
I think the UX and stability related quality will drop at such a bottom low, that some crazy companies will revive the arcane practice of UX and even study it with users.
I am not super optimistic that it happens fast, but we will end up in a situation that everything becomes tedious, annoying and broken. Companies who will do it right will inspire the whole ecosystem. It will be satirical to see the full circle happening, but it's inevitable if we want to keep going with digitalization, even if it means to bring back more hardware buttons.
I am adjacent to UX as a field, and, IMO, it’s in deep crisis itself. I don’t know when or how “ergonomics” in tech became “how to sit in front of a computer” and “design” became “creating visual assets” but even people who work in the field often reduce their jobs to simplified and corporate-optimized simulacras. I am less confident about what’s happening in academia but based on my casual browsing, it’s not better.
You need good experts to do proper research, and those haven’t been able to learn, practice, or improve their craft in any serious manner for a while.
Evidence-based UI design maxed out in 1995 with the release of Windows 95. Evidence-based design was popular in all sorts of areas back then. Star Trek: The Next Generation (1987-1994) I think is the gold-standard of set and costume design and the modern cartoon mostly follows that design. Cargo pants were in style. The MTA in New York City used this map[0] which was designed by sociologists and psychologists to be maximally useful.
The late 90s is when fashion appears to have started taking over. Apple's logo went flat grey in 1998 and Windows XP was released in 2001 and it's only gone downhill from there. Perhaps it was inevitable. When other people can see your UI, people will start using it to signal things and companies like Apple will cater to that. The designers will then be given way too much power with no accountability and then all evidence-based design gets thrown out the window.
Perhaps this is what you're seeing in academia also?
people have been complaining about software going downhill ever since hand crafted assembler was replaced with C and a compiler. it's the classic "old man yells at clouds".
Reddit on iOS safari has been getting incrementally, nearly unusable worse. It had some sharp edges before but it seems they are moving faster now with the same or greater defect rate and shit is getting bad:
- URLs commonly auto-link to the things behind them, even including spaces and words.
- Pinch to zoom on the homepage causes the page to reload. Forcing you to lose your place/content.
- I sometimes cannot click to play videos on the feed. I can click through the comments and then click play on the player.
- Comments pasted from perfectly valid markdown render as whitespace deleted garbage
- Clicking "reply" then tapping in the box makes it disappear. I literally cannot see what I'm typing. I have to scroll to the bottom of the page to find it.
- After typing into the comment box the "comment" button to submit it is not visible
- Being a mod: The dropdown for selecting a removal rule will not let me scroll past what shows on the initial dropdown.
- Rare but critical interfaces like banning a user (or managing an existing ban). Essentially cannot be used on mobile.
- When typing responses to people as a mod, depending on the box sometimes I "lose" the comment button.
With Reddit I think it's on purpose. They want to drive users to the mobile app. Maybe they aren't introducing bugs on purpose but not addressing them isn't a accident.
X/Twitter is getting progressively worse for users not logged in. At this point you need to click away the cookie prompt and a prompt begging you to download the app. When that is done you can read the linked tweeet, but you can not play any videos embedded or click on any pictures or navigate up or down in the thread. In a couiple of months I guess they will only display the first 160 characters and nag you to login if you click on 'read more.
Personally I think the way to avoid a lot of this buggy new software is to use a LTS Linux distro like Debian as much as possible.
Obviously you cannot do that for everything. But any software you get from Debian repos (or similar distros) is at least safe from new bugs from all this new code.
I agree with the author. I think everybody has strong or at least mixed feeling agent agentic coding and to me, the argument is always focused on the product itself.
I come from sciences, where the problem of AI is more linked to AI-generated papers rather than coding. Again, the real underlying problem is the pressure to publish at all cost and the ranking grant system which rewards number of publication rather than quality.
I'm sure you could say the same of AI-generated images, sound or video used in advetising, or any field where AI generation offers a shortcut. The problem is always that you need to produce as much results as fast as possible and quality is not the objective. The problem is always the KPI.
Right now, the majority of companies I interact with seems to look at their now (let's assume) increased capabilities, and turns up the speed. But there's other knobs to turn up instead. Robustness, quality, user experience.
Optimistically, I think we might just enter a new phase at some point, where businesses make very conscious decisions about what to invest in to differentiate. Like, everyone has support bots now. Where do we invest, absolutely stunning human support? Or is support not that key and we should invest into being the most reliable? The most enjoyable to use?
But that defeats the whole point of AI, as far as business is concerned. You could describe most programming languages as working the same way and having the same limitation. If this is true, then AI will simply mean you'll have very highly paid AI experts (who know how to do X with AI) that you absolutely need to hire or your competition will run at 10x your speed.
Business incentives is to maximize money, which requires some quality. But these days, not a lot.
Customers ideally maximize value, which lies on some spectrum of cost and quality. Part of the reasons businesses act with disregard for quality is that the consumer ultaimtely doesn't punish them for it. Whether that's due to true consumer preference or a market lock-in is a discussion left to the reader.
Can confirm. I just had a nightmare experience with a company where the customer service sent very ChatGPT-like replies and seemed very unreasonable and AI like. I had to threaten legal action to get my money back.
Role Collapse might work in this type of situation: prompt your own ChatGPT to decide a refund with a very permissive refund policy, copy its thinking, paste into the next support message after your prompt, and their ChatGPT may believe it's its own thinking.
The Role Collapse attack is that LLMs turn out to ignore role tags (input, output, thinking) and identify role using writing style alone.
Funny you say this. I _almost_ tried this. But it did feel like a person was doing some copy-and-pasting and watching closely, so it wasn't 100% automated.
> Where do we invest, absolutely stunning human support?
That's a complete non-starter unless you're serving some extreme luxury premium market with absurd margins, and/or your customer interactions already require a lot of human involvement. So 99.9% of digital products are right out.
Good human support is absurdly expensive and will easily make your product 10 times more expensive than your competitor's. But almost no customer is willing to pay 10 times more for good support.
I disagree. I’m biased but the customer eng/support team we created at stainless was really good and that was a key differentiator during sales calls and post-sales. It’s expensive if you see it as an afterthought and just an expense you would prefer to avoid, but we approached it as an enabler role, a multiplier of sort: ensure customers feel they engage with peers, provide guidance to the eng teams, enable salespeople to engage meaningfully with technical teams, etc. For like a year it was basically just me and an awesome colleague handling the whole thing full time. We took the very explicit decision to have it as a very technical role and designed a culture that sees it as essential to the business (because it was), and that worked really well IMHO.
If you create a startup you really want to focus on a small audience that you understand and know really well, instead of chasing everyone. And for that a support team is one of the most important asset you have
the key differentiator is whether your business is aiming to provide a quality service, or is desperate to eek out as much profit as possible.
my example: A&A — uk internet service provider.
costs like twice as much as a normal service per month. but if i have a super technical query im on the phone with a fully fledged engineer in about 2 minutes flat. the kind of engineer that can discuss complex dns issues. i’ve had one help me debug a dns issue from a work site. it turned out quite quickly it was nothing to do with them but he hung around on the phone for 10 minutes anyway.
the first support person i ever spoke to was michael from wales. if i had to call up he was the first voice i would hear for years. he recently moved on and i was sad. we’d have a decent chat. big up michael from wales.
so, as it applies to at least one existing business — you are dead wrong. it might be twice as expensive as the people trying to maximise their profit margins, but it’s definitely not 10x more.
Apple has pretty stellar support in my experience, and while I don't buy Apple stuff for other reasons, this is a strong attractor. For B2B products/services, it can be a huge differeniator as well, in my experience. But it was really just an example, it might not be the call most companies make. Maybe most will still just invest in being faster or cutting costs. I just hope that's not how it's gonna be.
You gotta be joking. Apple has no support at all, and if you ever go into a shop at their "GeNiUs BaR" (after booking an appointment days in advance), you will get extremely poor service and incompetent support.
I never went into an Apple store, but the phone support issues I had (even a pretty complex bug on their end that locked me out of my account) where handled swiftly and well, and I spoke to humans that seemed to know what they're doing. I could say this should be the default and I shouldn't be impressed by it, but unfortunately it's top 10% based on my experience. I'm in Europe though, maybe they do things differently here.
Used to work at an AppleCare call centre. Apple has extremely high standards for their support advisors. I'm aware that the genius bars are terrible, though.
Counterpoint: Take a look at consumer cellular. I would say it’s drastically cheaper than verizon, at&t, or t-mobile, but the customer support is better than all 3.
Ting also has (had?) excellent customer service. Call the 800 number and the first thing you hear is “hello” from an actual human who has the ability to help you. They also didn’t charge a lot, which makes me think great customer service is a choice.
Last year I bought a book from Amazon for over $100 and they sent the wrong book. I contacted Amazon support, they said they will refund it, I don't need to send it back (throw it away if I want), and also give me a $20 credit for the inconvenience.
A month later, no refund. I contacted them again, they said unless the book is sent back, no refund. I told them about the previous conversation and they said that the CSR had lied to inflate his scores, and if I've thrown the book away I'm out of luck, he generated a return label. I complained and they threatened to close my account unless I send verification documents. I didn't, I just sent the book back and the refund processed automatically.
About a year before that I had a Samsung Fold and it cracked down the middle. I told Amazon that it was only 6 months old and it was broken, and Samsung said I need to send it to Cyprus for some reason. Amazon said to send it back for a refund, I did, and I got a warning that I'd returned something "not in original condition" and next time I'll be banned.
Last week a package didn't arrive. I queried it and there was no longer the option to talk to anyone, just a link to phone numbers for the external courier.
So I would say that Amazon having stellar support 15 years ago, building a brand on it, and then choosing to stop doing that mostly proves how wrong you are. Sure, you can still sometimes speak to someone, but it's getting worse.
FYI you can sue them in small claims for this. This is one of the languages that companies really listen to. You would have to have actually thrown the book out in good faith, though, or commit perjury. Remember the airline LLM support bot and the bereavement fare?
Haha yeah, Uber, Amazon, Starlink, Hotels etc just send me stuff or refund without even asking anything. I use all of them all the time for everything; that indeed seems to help. Logical of course.
But that could just mean you are a more profitable customer. And that could be influencing how amenable the AI/agents are and how much money they are willing to write off to retain you.
According to the comment I was responding to, he got 3 bad experiences out of 3 orders, so 100% rate of issues. What's the expected rate of house fires?
Both you and the other commenter about his grandma's smoking habit are making nonsensical comparisons about things that are extremely rare, to support something that is supposedly extremely common, if you were to believe the parent's comment (or other stories you read online).
Amazon has a big problem with "unifying" products that are in fact not the same thing.
At one point I was looking through editions of the Arabian Nights and I noticed that, while the "kindle version" linked from the page for the paperback of one edition was an unrelated book, an actual kindle version of the edition I was looking at did exist elsewhere on the site.
I was annoyed enough that I opened a chat with customer support and asked them which of the two ebooks (one linked as "the kindle version of edition X", but with a different translator, title, cover art, etc; one not linked to the paperback at all, except for the identical translator, cover art, etc...) was the kindle version of the paperback.
A few days later, the links had been fixed, and the "kindle version" link on the paperback's page went to the kindle version of the same book!
> Software may have been better back in the day, but that was mainly because it was much simpler. ... The bar for “user experience” has kept rising, but everything has become increasingly fragile.
It was simpler, better, more stable, _and_ had better UX.
Complexity does not equal quality. In fact, it usually points to poor design. Programs used to be seen as utilities, which enabled the same kind of mentality you have to any specialised machinery: "Here's a thing that can make your life easier. Learn how to use it". Now programs try to be all-singing-all-dancing-all-the-time-changing.
> It was simpler, better, more stable, _and_ had better UX.
It had less features too.
Now, I do agree doing more doesn't mean that something is necessarily better... but I think the UX difficulty increases exponentially as more features are added.
Absolutely, and in my opinion it's a mistake to keep adding features. My word processor in the 90s did one thing, and it was fine. In fact, there's a niche crowd trying to re-create that experience right now (distraction-free "writerdecks"). All software used to be like that, and I for one was a lot happier with the situation.
While there is increased complexity on top of all the software thats being built today, I reckon the focus on speed (and shipping to prod) over quality has also led to the increasing number of bugs. The mindset shift from shipping quality products (not just software) to shipping something that is good enough has been the mantra of management in recent years. When business schools and tech leaders prioritize the idea that we need to be more agile and every sprint needs to be a production release, these are the results we get.
> I reckon the focus on speed (and shipping to prod) over quality has also led to the increasing number of bugs. The mindset shift from shipping quality products (not just software) to shipping something that is good enough has been the mantra of management in recent years.
I wonder how much of that is just what management always wanted. Peopleware (https://en.wikipedia.org/wiki/Peopleware:_Productive_Project...), a VERY GOOD book about software development written in the 80s, talks about managers wanting to sacrifice quality an how corrosive that is. It's just that in the past technology forced them to pursue quality: Software shipped on disk needed to be bug-free, because it made bug-fixes almost impossible. Software written by a human needed a human that understands it, who might have some pride in his work.
But now, with the internet and LLMs, we get to live in the slop-world the management has always dreamed of. More tickets, closing faster! Less headcount, less talk! Artificial workers that don't talk back! Who cares about all the rest?
Everything is a minimum viable product that is constantly in flux these days. The decision makers and money movers are prioritizing rapid results and turnaround over quality product, maintainable codebases, institutional knowledge (debatable), etc
The incentive isn't focused on "Good" software, it's on making "profitable" software as fast and cheap as possible.
If it's open source and I can review it before compiling and installing, and I can modify it and recompile if I want to remove/change/add something, then I feel like I have some control
This is one reason I like relatively smaller software, less code
AI might have made things worse in the last few months but there have been a lot of bad trends on the desktop in the last decade, both software and hardware.
It is little appreciated how USB has regressed. If you have a full-size top-of-the-line desktop machine with plenty of I/O channels you have a huge number of USB 3 and USB C plugs and will have mostly a "just works" experience -- like you can plug in an external hard drive and not regret it. Try a laptop or a pint size machine (say a Mac Mini or a Dell Optiplex 1.5 l) and you'll discover there is no reliable USB 3 hub on the market Maybe you can plug in your keyboard and mouse, maybe, but plug in a USB DAC and a memory card reader and an external drive... "BONG!" "BONG!" "BONG!" Windows starts screaming that devices are dropping out and reattaching and God forbid there is a filesystem you care about on one of them. (MacOS is too smart for that shit, it just assumes the hub is crap and won't reconnect until you reboot)
Plug a cooler master keyboard into you dev workstation and you'll find it overloads the interrupt handling system and causes everything to be janky.
Probably the worst thing about Electron is that the #1 applications use it, instead of making a web application, is that they can't stand that you might be able to find the application and start it the way you start a usual application (or web page) or be able to find the window when you are using it or be able to close the application or move the application window like a normal application window or resize the application like a normal application window or that you might be able to see anything in the tray -- so applications like Slack automatically become crapplications by virtue of inhabiting your tray. It makes everything worse. It reminds me of the later 90's when every crapplet for your printer had to have a completely custom widget set and window chrome.
USB 3.0 powered hubs that give you more USB 3.0 supporting USB-A ports are pretty easy to find these days.
USB-C ones (that actually give you more than 1 additional USB-C port) are still more challenging, but they do at least exist now (after having been virtually non-existent for years). Caldigit, Plugable, Sabrent, and probably others all have models that will go 1 device port to 3-6 USB-C ports now, and are powered with decent power per-port limits.
I do agree the landscape is far more confusing than it was a decade ago.
Those hubs exist, but my experience is that you can't plug an arbitrary number of devices into them and expect it to work and it's not about power but about how resources in the computer are allocated to ports.
A lot of the product misses come from large product teams where nobody owns anything, and where there's minimal internal goal alignment. I know that, at work, what I am incentivized to do has nothing to do with what I consider the most important work I could do.... and I also know that the maze I would have to cross to be allowed to do the better work is just not worth it.
The smaller the org, the better the chances of having only reasonable levels of misalignment... but without taking on high risk, it's just better pat to work on a large, worse org. Frustrating.
In large orgs, each team spends a ridiculous amount of effort adding the “glue” logic to work around design/architectural issues with the other teams’ products they interface with.
Neither one really understands the other’s component.
Cooperation is almost impossible since such would derail one project manager’s unrealistic schedule and demean their authority.
This is spot on. Also, many orgs build to the needs of the business or whims of stakeholders rather than customer needs. Good product strategy and product discovery remain difficult despite AI.
LLMs can't parse the entire codebase at once, understand it, and then make decisions based on that understanding.
The hard part of programming almost is never how ONE function or ONE class works. It's how they all interact in a much larger picture. You can try to mitigate this, but it's a pretty fundamental concept that software is big and just too large for an LLM context window.
Until that's solved, coding has not been 'solved' by '''AI'''. They're useful for greenfield stuff, but new software was always easier to smash out quickly than working on older code.
Plus, it's not like they're building understanding like a person does regardless, even if the context window was somehow enormous.
In fact, I am pretty sure most of the examples he lists predate AI. Mac OS apps stealing focus certainly does. Horrible laggy car infotainment systems--hard to say without any specifics, but I've certainly had the same experience pre-LLMs. I've navigated the LG website pre-LLMs and it was busted then too.
The complaint is not the focus stealing the complaint is the lag of the chat application starting. So the problem in this case is electron and all the shit that slack has bolted on on startup because "who cares about start up time, everyone has it on all day."
I think MS devs don't even use their windows OS. How do I know this? Because every week my favourite applications list gets reset. Why would anyone do that?
Just a little gripe, but near the end of the article he links to a site for something called "Omarchy" which appears to be a Linux distribution. If you click on the link, the only information available is in the form of a video.
If you're making a Linux distro, please don't do this. I will not watch your video. I was interested, and now I'm not.
I've heard the meme that Omarchy is for people who would like to use Arch but don't want to read the documentation or follow the installation guide. Having a video and no text sounds like it would align with that target audience. If you want information and not a video you'd want to look at Arch instead, it has an excellent wiki and the best documentation of any OS I've ever used.
I heard about it but since I also heard it was built by a white supremacist, I'd rather use one that is made by decent people, especially when the added value is only a preconfigured hyprland desktop.
I mean, I'm an everyday Linux user and half the content I consume daily is about the Linux/FOSS world and today is my first time hearing of it. And all the information I have about it is from replies to my comment, because its website doesn't actually offer any details. Genius marketing.
It's by the same guy who started a Rails conference because he was kicked out of a different Rails conference, so that he wouldn't be kicked out of this one.
Omarchy is basically just Arch with a bunch of configuration. It's not a particularly useful project, and the author is noted fascist DHH. So probably not worth your time.
I think more precise terminology would go a long way here.
What is "a fascist" (in context of being labelled that on the interwebs). That could mean a lot of things.
As a reader, you learn basically nothing about DHH other than that some people might not like him.
___
So to fix that:
DHH has always been a very opinionated guy - with not all of those being agreed on, but there being usually some kind of point to them.
Starting somewhere late-ish last year, however, he seems to have dropped deep through the alt-right pipeline and started babbling talking points basically copy-pasted as-is from other talking heads.
So, in essence, he kinda stopped being opinionated, because that would require having an own opinion, and instead started just being yet another person not doing all too well mentally on the internet.
I mean the guy suddenly started talking about "body counts". What's his age again?
__
Of course, moral outrage happened but achieved absolutely nothing, because it's not the right tool for the job here.
Sorry to say, but that word probably has an equally low impact on regular people by now.
Worse if we look at what people actually think/vote/etc.
People by now at large seem to be rather fine with both being called racist or just.. well.. being racist.
We do not actually want that, because (big surprise upcoming) racism is bad.
But I think we might need to remind people why that whole cluster of ideas is bad.
This shouldn't be too hard, given that it's objectively worse in many many aspects, but for that to be seen, I suppose we need to point out what makes it objectively worse.
The shorthand is unfortunately dead and got killed by twitter dot com.
__
How that could be done is how I've demonstrated before you've regrettably dismissed it and tried returning to the shorthand
I edited my wording before I saw your reply to take the word fix out.
> People by now at large seem to be rather fine with both being called racist or just.. well.. being racist.
I disagree. I do not get that feel at all in real life (in the UK, BTW). On Facebook you get that feel because it is full of ragebait and attracts nutters.
There are some people like that, but most people would be deeply ashamed to think themselves racist or be thought racist.
Edit, to add: DHH also seems to have a weird obsession with the UK. At least two of his racist blog posts about the UK. His first racist post that I was aware off is essentially "two many non-white people in London".
Hm. I mean I would wish that your observation is correct, but I kinda doubt it.
Doesn't match what I am seeing outside of the Internet.
But, regardless of that, I still believe that shorthand terms and indirection are a less clean solution, and, if possible, the cleaner one with less dependencies should be used.
> Doesn't match what I am seeing outside of the Internet.
Where are you? It makes a big difference. I am talking primarily about the UK, where I have lived in different areas and know a variety of people in many different places. It is, in my experience, a society where racism is relatively rare: https://pietersz.co.uk/2023/08/racism-culture-different
I would not say there is nothing to worry about - I find the riots nasty and definitely worrying. There is definitely greater hostility towards certain groups: asylum seekers and Muslims for a variety of reasons. There are lots of complexities about this, and some genuine issues too that have not been dealt with, which creates an opportunity racists exploit.
However, I think its very much a minority view. Even Tommy Robinson's "Unite The Kingdom" protest which DHH blogged about and Musk backed etc. and was supposed to be the far right's big show of support was much smaller than many other protests for many other causes over the years (for and against Brexit, Gaza, etc.) in recent years. I also think it likely even a lot of those who joined the protest have far narrower causes (e.g. anti-illegal immigration) than being fully alt-right.
Where I think I can say things are not as bad as they might look is that these mobs are a few hundred people at a time out of a country of 70m. Maybe a few thousand at the most actually violent at some point.
As a visible ethnic minority person in the UK I can say I am not terrified. Concerned, yes, but its not even a major issue in my life.
For example in his latest blog post he first describes problem of growing populations of wolves that are killing sheep and cannot be shot because they are protected by the state. And then starts to compare the situation with danish gypsies (Romani) in danish cities.
That's as close to fascism as you can get... it's pretty out there on the edge of legality.
I mean I used to respect his (at the time mainly technical) takes and I recommended Basecamp to so many organizations. How has this table turned so much I have no idea.
I went to his blog to have a look at his racist posts, and that (which is the last post on his site) is more unhinged than his previous posts. A definitely trend of getting worse.
One could argue that fascist run FOSS projects might be working against your interest as a user.
Fascist is not just a silly label. The political collapse of neoliberalism made a lot of closet fascists emerge and they seem quite common among what was earlier thought of as "techno libertarians". E.g. the VPN provider owner (forgot which) just lately.
If there was too much crying wolf 15 years ago, doesn't really matter now anyways.
> One could argue that fascist run FOSS projects might be working against your interest as a user.
I guess so, but that's abstract and hard to grasp for most people.
"The guy has clearly lost it and thus is probably not making sensible decisions" otoh is pretty easy to understand, signals effectively the same and side-steps basically all the drama.
> "The guy has clearly lost it and thus is probably not making sensible decisions"
That isn't the problem though. Fascism isn't mental instability, it's an ideology. Someone going off the deep end and making bad decisions does so essentially at random, while someone driven by ideology messes things up in very specific ways. In the case of Fascist ideology, the specific ways they ruin things are specifically intended to harm specific groups of people, so I think the distinction matters. Writing it off as the guy having "lost it" obscures the specific goal he is working towards.
I think the trouble you are experiencing is you are basically asking people to change or update their whole framework for looking at the world. The identity portion is to some extent a load bearing column. It's like asking a hunter gatherer to think about individual property rights.
We should probably ask ourselves why there aren't more Mullvads. I think the answer is twofold - first, developers can't business, and second, running something like that carries massive political risk which that type of person is more willing to shoulder. If one doesn't feel afraid to help found a Nazi party they sure won't be afraid to run a VPN service.
>,If there was too much crying wolf 15 years ago, doesn't really matter now anyways.
There was not. I used to think they are crying wolf, but imo, it turned out they were correct all along.
They were paying attention to what these people were saying and doing. They then concluded these people are fascists. Then a bunch of us, not paying attention crowd, came in accused them of crying wolf.
Maybe, crying wolf is about a boy who sees a wolf, causes commotion and protects the village. Then they dont feel like going in one time, wolfs eats them. But, village just wont admit they were obviously wrong and blames the boy.
Nothing on this list screams explicitly nazi to me, but this is a long list for things that are believed mostly by neo-nazis. Like heavily complaining that London isn't racillly pure enough. And supporting a prominent political figure who believes every Muslim is a terrorist. And complaining about "woke" all the time.
so it depends if you believe that everyone who supported the nazi party was a nazi, or only the people who actually did the holocaust.
I dont think "fascist" and "been a very opinionated guy" are mutually replacable. In fact, insistence on euphemisms like that harmed the discussion a lot and overall culture a lot.
They are commenting on Omarchy, not DHH other than as relates to Omarchy.
They also didn't recite a wikipedia entry to define what Arch is, or linux, or what distribution means.
For me, the problem was never the writing of the code. Building something takes care and rigor. Software development got where it is through years of accumulated practice: habits first, then safeguards, then structures that had actually been proven. Now people set the code aside and just describe their problem, and they have no real sense of what comes back, because nobody can review output produced that fast. Nobody is even keeping up with the systems we built to help us keep up. So we ship without quite knowing what we shipped, and the sloppiness follows from that.
Isn't that how it's gone before, though? People used to make beautiful furniture by hand and leave something of themselves in it. Now it comes out of a factory, nobody knows exactly which part they made, they just fit pieces together, and it isn't built to last. Software is at that same point: nobody knows exactly what they've made or how. They describe the problem, assume they've found the solution, ship it, and there is no undoing it. The sloppiness will keep compounding. But that is also the point where people start thinking much harder about how to make it good again. A cycle, I suppose.
If furniture was still built like it was in the past you'd have about 2 pieces of it unless you were fabulously wealthy.
This is pretty true for software, how much have you actually paid for recently? FOSS isn't free either, a massive amount of time and coordination is required to make good software there too and few are willing to give it.
> Nobody is even keeping up with the systems we built to help us keep up. So we ship without quite knowing what we shipped, and the sloppiness follows from that.
NPM left-pad incident was a decade ago. Supply chain attacks have been a thing for longer than that (one of the first proposed SBOM's was around that time).
Source forge was shoving adware into the software from their site.
Asking an AI to write code is not worse than typing in PIP/NPM install (not to slight those tools) if you aren't going to code review either.
Software has neither gotten worse nor become any better. All you're seeing is the cost of writing code approach near zero. As that happens the speed at which you see defects increases. Software is by its very definition "malleable". It is without (or very few) constraints. So it is very hard to get "prefect". That is why IMO Site Reliability Engineering will be one of the few fields that will remain, because until we build an _actual_ goodness to gracious Intelligent System that can think critically, including how systems can fail (which includes humans), software will be what is hat always been "soft".
All of these complaints are about humans making user-hostile decisions, not AI. And software quality is not a reflection of its code quality. Never has been.
Personally I hope to use a lot less software in the future. Anything I want to know or do online I'll just ask an AI and it can wade through the sea of cookie popups or UI redesigns or whatever to get it done.
Complexity + a lack of incentives to take time to get things right.
Imo we know the tools (social, + technical) to make good software that works. But in the face of massive complexity, people just want the next feature, the next thing sales can use as a win
And yeah I agree with the other commenter here - I don't think this is AI. We had terrible software before, even declining quality.
> My banking app requires, on average, three FaceID logins before the 3D Secure confirmation view appears.
That's a different, equally big problem. Security mafia at every company will continue to rule everything and everyone. They do not have goals or constraints that are tied to productivity and user experience.
We are heading to a situation where the security teams are causing much more damage compared to the possible attack vectors. While this damage is real and certain, the damage due to attack vectors is only hypothetical.
Ofcourse, we do need security. But currently no one including CEO can dare to define how much security is needed. On top of that, regulators do their own share of damage, piling up regulations. No one takes any risk. They will ask you to tie yourself down until you can't move. Your mobility is not their problem.
Perhaps its a slight overcorrection but it's better than the past where an online shop I gave my credit card info to would reply to a forgotten password request with an e-mail with my password in it in plaintext. Security used to be awful and people suffered because of it.
I wonder how many accounts have ever actually been compromised by a MITM reading passwords out of plaintext emails. I would guess it's very, very small.
I believe the bigger failure mode in that scenario is the fact that the site was storing user passwords in plaintext (either directly or effectively). Users tend to reuse passwords, so when there's a breach, more than just the user accounts for that site would be compromised.
No site should be able to give you your password because they should never store it. They store the hash of the password and whatever password you provide is then hashed and compared to the stored hash.
That way, when their security is compromised, the attacker doesn't get your password.
Any site giving you your password is doing it wrong because they should never know it.
One thing you can do to fight back is show up at their branches with complaints. You can engineer this intentionally. Have a bank that doesn't support Graphene? Show up with your Graphene phone and be like "it says my phone isn't allowed. Fix this or I'm closing my account" and there's a 50% chance they will turn off phone hardware attestation for your account or give you a physical 2FA token and if they don't it will show up in their metrics.
That’s a hilarious comment in the world where companies are getting hacked left and right and consumer data is widely available from how many pieces of software have piss poor security. You might work at companies as where dumb bureaucrats have a tight grip on things, but in most of the world, security practices are not holding us back, they simply don’t exist.
The the op of this thread is really security clueless. The moment you're in most networks you can move laterally and get whatever you want. Locking these systems down and securing them is very difficult work. After C levels, developers are the worst at security in companies.
Agree with all of these gripes, they are everywhere and none of this golden age of SWE productivity seems to be making products better.
My other biggest pet peeve in this space is the annual iOS updates where Apple arbitrarily moves buttons back and forth between top and bottom of screen.
They really like to screw around with the photos app such that "show me my photos most recently taken in time order" is somehow different set of taps year to year.
You see flavors of this in most other apps/websites.
I'm doing the exact opposite: I'm maxing out my PTO and taking long holidays. I'm pretty sure I'm not going to be in this field in five years time so why bother. It's time to figure out what other passions I have apart from programming.
Programming is going to be like ceramics or pottery: you can grab a nice set of bowls at IKEA for $10. We are doing the artisanal pottery that no one really wants or cares for.
Unlike IKEA pottery, programming has the zero replication cost thing. You can spend years working on a better bowl and still sell it for $10 at IKEA and make money. Heck, if your bowl is so much better, maybe IKEA will hire you as a supplier.
I think you are right in being optimistic. Time will separate the wheat from the chaff. An I personally hope that free collaborative privacy first software built from curiosity, discipline and devotion will be the norm. Hopefully...
If coding is a solved problem, where are all the high quality, open source PRs is what I want to know. Where's the flood of improvements for Curl? SFML? SDL? Godot? Linux? ImGui? VLC? Firefox? GNU tools? Rust? GCC? LLVM? Why can I find *no* evidence of this?
If you look at the open source space and review the contribution of AI in it, you'd think that AI is barely able to create functional code and the people who peddle it are solely slop authors. More than that, you might think it barely exists, because there's simply vanishingly few PRs landing which are AI generated. It seems in open source projects, for some reason, AI is barely able to produce any useful code at all
But apparently for closed source proprietary code its like magic and you don't need to write any code anymore and it is a solved problem. Mhm. Totally willing to believe that
My suspicion is that a lot of proprietary software engineering has become purely performative. It no longer matters if the resulting product works, or has any quality, because its not about that. The system is being burnt down to extract wealth from it instead, as we create the illusion of software development as these companies are asset stripped. Line Must Go Up. There's no simply incentive to make a real product anymore, when the valuation of our economy and management compensation is built solely on hype instead of results
It depends on whose perspective you consider the problem. An enterprise produces software for one reason only: make money out of it. And it works great!
if you are a paying customer, and if you can choose among a few different solutions, then you will get the good stuff. But for the rest...
1. Free apps? They just need to take ads in front of your eyes.
2. Software embedded in cars? You choose the car based on other merits, the software just needs to not by horrible.
3. Automated customare support? When was the last time you choose a fridge over another because of the quality of its customer support?
This is probably going to sound elitist, but it is how I've been seeing this whole LLM thing play out.
I don't necessarily believe in 10x devs, but there is a very clear output difference between various developers. During my career I've been both in a position where I was delivering much higher quality code at a similar pace to other coworkers and also mediocre code at a slower pace. Sometimes at the same time.
Now, AI itself is a force multiplier. Depending on the task, your setup, your skill level (both as a developer and with LLMs), the weather, the model and so on, it can range anywhere from actively hindering you, to solving the entire thing for you. Let's say that on average you get a 20% productivity boost.
If you take a 0.8x developer and give them a 1.2 force multiplier LLM, you get a 0.96x developer. Worse, the axis that has moved is speed, not quality.
All this to say that if you let a below average developer vibecode, you get a much higher volume of slop. You can make an agent create good code, but this developer didn't care before so why should they now?
*Note that this is from experience. I've started getting feature PRs from our devops team. It's been a very enlightening experience.
Since upgrading iOS, my iPhone (13) will:
- sometimes fail to open the camera
- make the bottom half of the screen blank when you do email searches
- use more battery
- become unusable if you turn on any transparency effects.
LLMs are an amplifier. Most software engineers/architects/developers are bad and always have been. We have amplified the bad, and so we have the modern world.
> There’s no denying that these new tools have already revolutionized how we create and use software. They have raised upper management’s expectations for team output. They may have
Expectations is neither about creation not use. "May" isn't a revolution outside of the historic calendar, so on both counts it's trivial to deny an ungrounded statement.
> So why does software keep getting worse across the board?
Because the premise on which the expectation is built is wrong?
Also plenty of the issues are prehistoric with all the past meat bag generations to blame, case in point:
> Just then, the Slack window appeared, stole focus from Ghostty
So who stopped that huge fruit corpo from doing the very basics of managing user experience in the past few decades minus a few AI years?
I don't get this post. It says software is getting worse, and then... gives a handful of anecdotal evidence. That could have been done at any point in the life of the software industry, including in the pre-agentic era. So the assertion behind the post doesn't really have any weight to it. Is there any actual, respectable evidence that software is actually getting worse? Also, what would worse even mean really? More buggy? Less reliable? Less creative, flexible?
> As I’m writing this, we’re in the middle of an AI-induced mass psychosis.
I work in mediation and have recently seen a few cases where I’ve wondered if the participants were suffering from AI psychosis as related to their claims: where they’d constructed their legal cases hand-in-hand with an LLM and had become absolutely convinced despite a contestable set of facts.
People have always been subject to delusion, but in these cases, all documentation submitted was obviously created by chatbots.
That’s why i‘m using claude to literally write everything for myself! I cannot fix software-problems in my car or my fridge or my heat-pump. But I can start by replacing my own infrastructure!
Taken literally, this question just misunderstands what the point of coding is for most companies. The point was never to maximize quality of software, but to make the most money. Coding being "solved" implies it was a problem, and for companies using this framing, the problem wasn't "my software isn't good enough", but "it takes too much time and/or money for me to make software". Viewed through this lens, the "solution" of removing as much need for expensive humans to make the software is almost entirely unrelated to the quality of the output; if companies with this mindset could have released software cheaper or faster at a reduced quality before AI, they almost certainly would have.
None of this is to say that I think this is a good thing, or even that it's necessarily an accurate viewpoint. Considering who decides how much to spend on LLM products in companies that are potential customers for the ones saying "coding has been solved", I do genuinely think this is what they mean though. It's of course nonsense to actual developers, but we're not the ones who they're talking to when they say this.
My assumption is that AI-generated code explodes the flaws in your existing codebase. If your architecture is bad or not documented, your docs are out of date or the goal of the feature request is vague, how should the AI (or even a good human developer) develop high quality software?
A lot of people miss that everything needs documented, even the things that customers don't see. I've seen a lot of things over the years that were implemented but their limitations were not documented. Tags were one thing in particular. The person that thought up the idea didn't specify out how long or how many tags should be implemented. The developer put some wildly huge field in place and didn't state what the field limitations were. So later when a few users shoved massive amounts of data in there other parts of the software that displayed information broke or had terrible performance.
rant first: oh, I recently heard about you from a friend working in a company after I mentioned that I also got into photography. Nice work on pixelpeeper.com
to the article: Yeah, it's different world out there. We need to filter ideas instead of focusing on more features, as lack of staggering revenue growth suggests it might be that more doesn't equal better. The stability of apps is getting worse lately. I couldn't pair my sony camera and it was stuck on pairing screen :(
Why would there be revenue growth when AI should decrease it via competition? I think the revenue growth occurred in the past by companies like Microsoft and Google capturing huge parts of the market, and the market for profits in advertising.
It probably comes down handing over power from the user to capital which is antagonostic in its nature to the users' needs.
Running non free software is essentially giving up our freedom. Before internet connectivity the problem wasn't too bad but nowadays there is always the temptation to squeeze the lusers.
> Until this attitude changes, the great software quality decay will continue.
It won’t change cause nobody cares to do anything other than complain, I don’t see developers quitting en masse from companies that refuse to pause feature churn and focus on quality. Why should they? They get a paycheck, everyone ships crap, the world moves on. The people making the frameworks and now even runtimes are of the same cloth, overworked and underfunded.
If we cared we’d treat software like real engineering. We don’t and therefore we’re quite cooked. Just be happy that airplanes aren’t as bad as your average CRUD. For someone who does care, look at the SQLite codebase, every project should be like that even if development cycles would be 3–10x longer, but that’s delusional to say out loud.
AI just revealed that - with slop being produced at increasing pace and test coverage and verification methods of things working properly across all states and inputs being nowhere to be found.
Especially when you get outside of environment like phones and consoles the environments people run software in can be wildly different too, and the oddest things can cause weird interactions.
In enterprise software you can run into customers that 'use too much' of something odd that the developers don't really think about and QA fails to test right. Things like tags and identifiers that you think "Oh they'll use 5 or 6 max" then you run into someone that uses a thousand tags and report performance explodes.
That's a good description of some roles actually. Instead of describing myself as a developer or maintainer of some backend system I might call myself a gardener of it.
The claim that software has regressed is hard to accept. Compared to the past, we now have far more platforms to support and far more things to memorize. And if you actually try using software from 15 years ago, you'll see it had far more critical bugs than today's software. I think most of this is just nostalgia bias.
It's just that complexity has skyrocketed compared to the past. The same goes for released software. In the old days, even small software could be competitive, but now the minimum level of complexity required to sell a program is completely different.
The best example of this is mobile games. Just look at the structure of early mobile games compared to modern games.
I think the flaws have moved. I remember Mac OS 7-8-9 (”Classic”) fondly and the suite of software I regularly used there.
It crashed, and crashed hard, a few times per week. That never happens today, maybe at most once a month.
However, what has changed in terms of quality is that there are 1000% more smaller bugs. I never felt that small annoyances or problems were even noticeable or even existent back then. Every feature seemed to actually work. Yet just so far today I have encountered over a dozen small problems in my operating system and apps I use.
It’s exhausting in a different way. Two decades ago I felt ”safe” from problems by frequently saving my files. Today I dread having to navigate a UI that keeps giving me a thousand paper cuts of small bugs.
It makes a difference to my experience as an end user and that is what I am talking about.
I work in development and programming and with all the modern tools and testing frameworks and QA engineers and analytics and modern language we seem to only have achieved less crashes and more non-crashing bugs. It annoys me and I am a bit ashamed at my own profession.
> This quarter, we won’t be releasing any new features, and we have no plans to redesign anything — we will exclusively focus on fixing bugs.
IME this happens more often than people think. If you’re leading a team part of your job is to manage the expectations of those around you and explain your choices. If you do that well you can absolutely have quarters where you only pay down debt, it doesn’t require some huge attitude shift in the industry. Just explain why it’s the right thing and then do it.
AI is the private equity of software and digital media, it makes the first 80% way easier and the last 20% way harder so no one bothers with the last 20% anymore. It’s the ultimate enshittification tool.
Remember when they finetuned an LLM to write buggy code and it also started saying humanity should be exterminated and so on? It knows good and evil and is trained to select one.
I'm confident to say that right now, AI already does a better job at turning a well-specified requirement into working code than the average meatbag I've personally encountered.
It's still useless at many other things that make a complete Software Developer, but let's be real: Programming (requirements in, code out) is solved for the stuff I'm involved in.
I have the same impression when I use things that are around me every day. Everything is broken and seemingly nobody cares. It seems that the teams developing software never use it themselves and do not care about bugs and terrible usability problems. It seems the management does not use any of the products that their businesses produce. And it seems that the ubiquitous breakage is just accepted as the status quo.
This extends to any device which has software or firmware: banking websites, banking apps on mobile phones, car firmware, etc.
I find it very depressing, especially when I think of the people who design, develop and deploy these apps. We are talking about large companies and teams of people. Entire chains of well-paid people designed, looked at, developed, tested, and then accepted these apps. And yet they break in the most obvious ways, or fail to be usable, instead pestering us with pop-ups and useless drivel and forgetting their state at every point.
These problems are not subtle. To take a glaring example from my everyday life, in my car there are buttons for moving windows up and down. Sometimes when you press the button to move the window down, it will actually start moving up. We are talking about a simple button that moves a window. And seemingly everybody thinks this is fine?
Imagine you find yourself making TC $1M+ a year owning some beloved piece of software.
Do you A) tell your management hey it's absolutely perfect as is, let's just chill, leave it alone and let the money roll in. Or B) tell management about the need for whatever new hotness and you're going to get it implemented ahead of schedule and under budget. And then you do! Oh but the software is objectively worse because it was already perfect.
It's pretty clear what the overwhelmingly popular answer is to that question.
MacOS contstant trolling with tab switching. I regret each day of life I need to use this shitty OS because of corporate. In linux these things will never happen
> If coding has been solved, why does software keep getting worse?
I mean, he has given the answer in the article: Because "coding has been solved" is from the perspective of upper management, not devs or users - and that cares about software quality and usability (as standalone metrics) about as much as the McDonald's board cares about nutrition value.
Other than techbros and a small group of AI-delirious fanboys, no one is euphoric. Normal people in the industry are between anxious, scared, exhausted, resentful, resigned or just plain sad. People outside our industry? They see the enshittification clearly, and are most certainly the opposite of euphoric.
Use open source everything. If you have the source to something, you can change it. If you can change it, you can fix it. Run Linux and Firefox. Fork every last damn program and have AI fix every papercut that you don't like.
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
Back when I was using IRC from Emacs (with erc) I had written a safeguard in elisp against that. Haven't been on IRC in a while but this helped me prevent sending to the "group chat" (the IRC channel) a great many private infos.
Same for my real name for example: I had a filter where anything containing my actual name would be blocked.
I think a great many software where you "chat" with "groups of people" would benefit from having both default and configurable filters that catch obvious mistakes. Say you probably want a confirmation before attaching a private SSH key, or before sending a password in the clear (which could be filtered by blocking words matching the hash of the password), etc.
Not that it solves the fundamental problem TFA is talking about: nothing works.
But that is a given: that's why we need safeguards.
Those two twitter links with people that got hospitalized might just be people trying to get their 5 seconds of internet fame by (pretending to be) doing something dumb.
So taking it at face value is kinda part of the problem here.
The only way this can get better is by completely suffocating it off attention.
It doesn't exist. It's not real.
I've also noticed so many pieces of software becoming worse and worse, either with useless features (basically any new thing on Slack in the past year) or with a huge amount of large bugs, over the past year.
It's glaringly obvious that poorly checked, AI-written, code is the culprit, I'm just wondering when companies will wake up.
Nobody gives a flying fuck about resiliency, good practices, security or any of that now that AI is there. All anyone cares about is pure output of features.
Any and all "productivity" gains attributed to AI efficiency are actually due to the complete disregard for any care or standard in the software industry in the past 2 years. Yeah you can output more shit when you don't give a fuck, big surprise, AI doesn't change anything here.
At the end of the day it has nothing to do with AI. People have been bitching about bugs in it for a long time. It's companies that give zero shits about releasing bugs.
This comes back to the users. As long as they keep buying the shit software why spend money on QA.
I mean, you're the problem. Did you stop using slack? Are they taking losses because of it? If not, why change?
I think the article misses a bit the main focus. For instance:
> My LG fridge started making weird sounds, so I tried to file a warranty claim, through a multi-step form with countless fields. It failed with a submission error at the very end. And I only found out because I looked at the JavaScript console.
Has that JavaScript code been written by AI? It may be more likely that it was
written by humans. Well, the design of JavaScript really sucks, the language is
both successful and horrible to use, in my opinion. And we have that issue across
the board. Most programming languages really suck. C, for instance - that language is an abomination. But it is even more successful than JavaScript. Today I ran into the issue that I can not compile libpng; I keep on bailing out at it unable to find setjmp. About two months ago compiling it worked fine. I most likely did screw something up on my local system but ... the compiler is an idiot. It really does not tell me WHY it can not compile it anymore. Yes, it shows on the commandline that it assumes setjmp to exist but it can not find it. The error messages are pure and bogus. And the whole design of C cascades this horrible crap downwards. The languages that supposedly try to replace C also suck. Go? Yikes. Rust? Even more verbose. C++? Trying to replace C since decades. There is a ton of inertia.
The whole stack is utter gutter trash really. Everything is build up atop layers of complexity that in turn are not really well designed at all. Meanwhile more and more software is added. Now I need python due to meson, and meson is better than what came before. But it adds complexity. And has its own problems too. AI does not really fix anything here, it just AI slop spams on top of this. We kind of lost big at engineering. People are in general also not critical anymore. The design of most programming language shows that - including ruby, but ruby is barely used, so really the issue is mostly about C. The fact that C is so successful makes this even worse, since nothing replaces it. We just keep on adding more and more. Or we go the C++ way - and make it about 50x as complex. Or Rust - that syntax is even worse than C syntax which is also horrible. Of course even with great syntax and a great language, horrible software will be written. Companies want to offer a billion useless features. Many years ago I thought it was cool if my fridge tells me what I should order. Since the day of companies spying on people, I go back to simplicity at all times.
Heh, the support form failing want a bug, more like a feature. Look how much money they are saving not providing support. Also, the product is better than ever, nobody is returning them or needing them fixed!
God, those "software is getting worse everywhere" takes are tedious.
Let's have a look at a few rarely quoted examples from the last decade, shall we?
Just six years ago, a big company rolls out a line of new chips so good that geeks and technology experts all get ecstatic and can't stop churning endless raving reviews. Those chips are fast, small and consume little energy. On top of that, the big company reworks their entire OS (OS!), the whole suite of software it has for it, the developer suite with compilers and SDKs and god knows what else and also ensures that everything ever written for that OS for the old chips continues to work and it indeed does.
Then there's another big company that launched a file storage service around 20 years ago. Back then it was reliable and only gotten better over the years. They started offering their storage for a nanocent per gajibyte and twenty years of hard work allowed them to lower that cost to a picocent per gajibyte. They don't lose data, they are highly available, half of the internet stores their data at their servers.
And then there's a -- gasp! -- consortium of big companies (fools would reply to this with an XKCD standards strip) that works on improvements to a shared set of standards for 4G, one of the most widely used technology stacks in the world, agrees on it, calls it 5G and rolls it out across the world and the whole spectrum of hardware and software vendors in a manner that resembles replacing a wing of an aircraft mid-flight so that not a single pasta strand falls from the forks of the business class customers.
And here we have someone who thinks that a customer support page for his fridge (fridge!) thrown together by a low-paid second-grade developer in a third-world country is indicative of the whole industry decline.
> So why does software keep getting worse across the board?
The issue is only partially within those who code. They get directions from those in charge, and they are just making idiotic decisions. And those who code, for some reason don't stand against those idiotic decisions in defense of a common sense and a great UX.
A blatant, exaggerated parallel would be: you are designing your kitchen and you've chosen a place for your washing machine such as that it will be unable to open its door. When inviting a professional, you expect them to correct such wrong decisions and explain to you that it won't work. But in programming, those who program, calling themselves "software engineers", would just place this washing machine where they're told, because it's "not my job". It's not a feature of an "engineer". It's being a coder lemming.
People get promoted, get bonuses based on some shiny new tool they developed. Every year, they create something 'new', claim lots of features. Their managers/directors/VPs also encourage this because they need some 'winning' and 'automation' slides to brag about. Nothing gets solved. In fact, things get worse. The new tool and old tool and oldest tool all coexist with 20 other tools developed for the exact same thing in a different org. Each org (SVP reporting to CEO) is MASSIVE and everybody wants headcount and success stories. All these things will be happening at the same time. Those who are capable of making the biggest mess get the biggest pay and bonus, they get promoted and they move nearly year 1 - 2 years, within the same company or to another. Repeat. The ICs (individual contributors) who have values and explain why this is a bad idea are usually moved to Support or Ops roles or migration projects from old to new.
I've seen perfectly working systems continuously being replaced with worse and worse tools. Most of the new tools require a lot of people from several departments, just a guy who understands business and develops a perfectly working PHP/CRUD is a no-no. It has to be replaced with a complex monster with react, apis, mongo crap. And on kubernetes. Hybrid cloud.
AI is an enshittification accelerator. And the enshittifiers (individually as people and collectively as companies run by scumbags) are richly rewarded for this 'success'.
I actually relate to that. It used to be cool and exciting to update to see what new things are coming for free. I was just looking up what Fedora Workstation 45 might bring.
Updates on phones, TV's, cars and non-Linux operating systems on PC's/laptops are downright scary to me now. What will they add that I don't want? What more connectivity to the external world are they going to wire in?
MacOS lost everyone's trust by ruining the experience, but even before it happened that trying to resize a window makes it feel like life will be at 80 years-old, hunting a tiny invisible border, even before that there wasn't anything exciting.
What Microsoft I think did (and I can't prove it), before I moved off of Windows 11, was to bundle all changes in "required security updates." So you have no choice but to update (or go through special settings to turn it off, or just defer it), but when the machine comes back you have a new Welcome prompt to some new connectivity to something nefarious. AI features I never asked for, that's the most recent dark pattern here.
Not universal though. Besides your example, even for single player games patches can be basically malicious. I've had Fallout 4 locked on updates for like 3 years at this point, everything Bethesda has added has degraded the experience for zero upside. But I can't think of any software besides a game where I have been anything but dreading an update in years. Slack wants to update? Great, it'll probably break/degrade my work flow in some minor way, and they're one of the lesser offenders on my work machine.
[0] https://steamdb.info/patchnotes/23914554/
(This of course is excluding things like the big “Flattening” of data structures that happened around 1.13 or so)
You know what software doesn't fill me with dread to update? FOSS.
Proprietary software isn't built for users anymore. But (some) FOSS still is.
speak for your clearly non-pulseaudio-using self (:
I'm honestly surprised how often in Linux PA with WirePlumber just does the right thing most times, IME.
On contrast, my linux laptop does not have any issue with the same headset and it gets connected instantly.
I'll take a Linux distro any day of the week.
Relatedly, systemd stopped breaking a while ago. Either distros stopped keeping it up-to-date or people can learn.
If they haven’t been executing a plan to make it extremely painful to maintain a distro that differs significantly from whatever Red Hat’s preferences and ways of operating are (so, making it harder to justify anything but “screw it, we’ll just use red hat, everyone else is just the same thing but with less ability to steer the direction of the OS”), damn the effects on UX, the traditional modular nature of Linux systems, and general open source ecosystem health… well, they’ve sure done a great job of it, so it’d be pretty crazy if that isn’t what they’ve been doing.
As someone who's been burnt several times with CachyOS (Arch) updates, I don't think this is true.
Thank you for your service.
Kind of...Cumulative Security Updates on Patch Tuesday still do not contain new OS features, and on pro editions of windows you can at least, last time I used Windows (maybe this changed?), still skip quality updates & feature updates.
What Windows does do is tie all the "connected experiences" crap to out of band updates via the store/AppX packages which background update automatically, so when you reboot after a patch windows will run its post update OOBE and push all those features agian/turn them on. So technically not bundled with security updates, but a dark pattern that disrespects users nonetheless.
But on the title, yes software is not even close to “solved”.
There's even a big button that says "Start Self Driving" in the valuable visual real estate where the speed limit once was.
These days she's swearing up a storm whenever an update breaks or removes things.
The AI we have in 2026 cannot do that or it'd have already been done. I use AI daily: it saves some time. But it produces an infinite amount of insecure, unnecessary, sloppy-pasta.
And that sloppy-pasta doesn't make software any better.
But as soon as you have real, complex project is falls apart. Perhaps when we reach 10M tokens context this will change.
It turns out that the lower the barrier to creating "high quality" code is, the worse the software is on average.
Who remembers the Photoshop lens flare?
It's not that the effect sucked - it did lens flare perfectly. But who used it sucked.
Instagram and the Nashville filter - "we're all photographers now"
Code quality not equaling software quality gets at the fun part of the modern AI-labor debate. Where does talent and efficacy really reside in terms of software? Surely not in the (apparently unworthy?) mind of a human? Surely it can be extracted, distilled, automated – liberated! - unto a reactive web interface for some middle manager to invoke (at some expense to some account this folk loses zero sleep over), because it is after all this flimsy, transferrable - not worthless! Not worthless! I have a stock portfolio to maintain for God's sake. But mine. Nonetheless.
Code quality doesn't equal software quality.
The people who notice broken or degraded behavior (devs and power users) and conceive of good designs are not in charge of what goes into the product. So you shouldn't expect it to get better, only to continuously change so that the imposters can point to a difference that they were responsible for, knowing that upper management also has no idea whether that difference was actually an improvement.
The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
All of this was obvious decades ago, but now everyone wants to have a do-nothing job at a tech company, and to help their friends get one too. The result is imposters everywhere; "imposter syndrome" was brought into the vernacular to normalize a lack of expertise. "No one knows what they are doing, it's okay to not know how to do your job". That's what your (product) manager tells themself in the mirror each morning. Turns out: skill predicts quality, and an org ships quality proportional to the skill of the decision makers.
It’s not surprising that this sentiment is popular on a message board filled with engineers but I’m not so convinced by it. Nor do I think the current state of tech companies is acceptable, to be clear. But there needs to be some level of management outside of the engineers themselves. A lot of talented lead engineers I know are terrible people managers, or ineffective project managers. And that’s fine, because there are other people to do those tasks.
If your utopia is a bunch of engineers given freedom to do whatever they want, however they want to do it… I suspect the dream and the reality will not match up. In the scenario you’ve outlined I strongly suspect you’ll have infrastructure on its third rewrite, full of power user features and tweaks… and near-zero adoption from newcomers. Product fit is a thing that needs to be managed!
That being said lots of good OSS exists purely built by engineers so I think it’s really the case that good product people help a lot and bad ones hurt a ton.
It's not really any different to the old arguments when continuing a career beyond senior dev level meant moving into management but there was no guarantee that just because someone had been a competent developer they would also be any good at managing anything. Some were and produced great results - in some cases informed by their understanding as former developers about what would be possible and what it would realistically cost - but in other cases the Peter Principle hit early.
I feel like there's this one random comment on HN that should be adopted on its merits alone, but everyone will ignore for no good reason. This will never happen because entrenchment and bureaucracy will strangle every product organization and every organizational reboot attempt.
It's probably the right solution, but the resistance built into organizations assembled by bad decision makers cannot be overcome. Maybe the best you can do is try to find a legal way to spin-off a competitor with a truly fresh start.
Having them around is like 100000x better than having just random engineers be doing product design. And "oh just listen to your power users"... come on folks, surely we know about designing our software into a corner right?
I'm saying all this but am very sympathetic to the pain brought by bad product people (or just like ... mid product people. It's a hard space)
Lots of other people had their opinions on it (“you’re doing it wrong and everyone wants it this way,” “you must have this feature” which barely anyone actually uses… the power users), but I held fast with my opinion (did usability testing to prove the it was easier to achieve the goals to back up my opinion) and I’m glad I did. It changed an industry for the better.
Excellent usability and functional design that achieves a goal better and easier will win people over.
I also built it with an API so that people can build their own versions of it with the same data, because others also have strong opinions, and I whole heartedly respect that. Some interesting things have come from it that are more targeted for specific users and situations. Pretty cool to see what others make.
While I don’t know how opinionated the guys that created Dark Sky were with it, I would guess that it’s a good example. It was different from all the other apps in their category in the way it surfaced information. Their new app is good (not quite as great as the original), but they’ve really spent a lot of time making a really usable and functional system.
Edit: About that same time in my life, I also realized that I no longer just wanted functional, I wanted both functional and form. I wanted well designed functional stuff. Turns out that people like that too.
This will just lead to massive selection bias. If all you care about are power users go for it. Otherwise you end up with a complicated system that is going to put off new users.
You can even have different power users who likes different parts of the software. Now it's totally possible to end up with extensive subsystems that don't really gel with each other
My anecdote for this is the the recentish redesign of Musescore. Tantacrul, the ux designer/product manager for Musescore has an hour long video on how he redesigned the interface and UX of the software. He is also a musician so you can call him a power users if you want but that was not the users he had in mind when redesigning the UX
https://youtu.be/Qct6LKbneKQ
For the most part these are not strengths for devs and power users.
The reality is most people actually like the stuff Apple and such are putting out and like modern UX more. The only bad stuff is deliberate enshitification which is pushed by financial incentives rather than product people being incompetent.
It’s happened with finance, law, management consulting, and now software.
On top of that software has to be build with more users in mind so you are often going to get bloated software. That why enterprise software is often horrible because they have to support multiple industries that all need different types of workflows and UI.
I have been using software for decades and there has always been horrible software. Like I'm mind blown that people think human always wrote good code, and that AI is somehow worst than human code. AI writes better code then the vast majority of programmers that's a fact. Yes, including you. Yes there are certain areas of programming that it sucks at but 99% of programmer aren't writing that code.
One of my absolute favourite features on KDE Plasma with Wayland is the global setting to control what can steal focus. It works wonderfully, and I always miss it when I have to use my work mac or windows computers.
See here for docs, under "Focus stealing prevention" - https://docs.kde.org/trunk_kf6/en/kwin/kcontrol/windowbehavi...
NixOS has a longstanding issue where library loading (and therefore program start, particularly GUI programs that load a lot) is n^2, but programs still all start in ~1 second or less on my n100 minipc. I still found that to be annoying enough to look into why it seemed so slow (and learned about the loading issue). Can't imagine things taking so long that you actually switch to another task. The same minipc can easily handle my 4k 240hz HDR monitor as well, and the whole experience is completely smooth.
The computer also just obeys me. It does exactly what I tell it to, and nothing more.
That's a pretty good description of it, I even have KDE laid out the same way I did on Windows 7 (or more accurately I guess on KDE going back even further since Linux has been my main OS since the 90's with Windows relegated to gaming).
To this day - Taskbar shows window titles, only shows window titles for windows on that screen, there is no grouping, there is no ordering except order opened etc.
I think autonomously in terms of which physical screen a window is on and when it was opened relative to others so I know exactly where to look/it'll be - the Mac style (and Linux/Windows style at least out the box) defaults of hiding all windows for an application behind it's icon in the dock never made sense to me, I have widescreens why do I want a doc that only takes up 40-50% of the horizontal space?.
Not that it's a better workflow, but macOS does make a distinction between hidden and minimized. You can "hide" an app, and all windows will be hidden, only the dock icon showing. Minimize will move that specific window into a separate area onto the dock since macOS treats apps & windows as separate entities.
What I absolutely hate though is you can cmd+tab and bring out a hidden app (but it restores all of its windows which drives me nuts), but you can't for a minimized app without holding option before releasing the keys.
> The computer also just obeys me. It does exactly what I tell it to, and nothing more.
Is the biggest benefit and point. You can toss whatever UI/workflow style you want on top of pretty much any distro. I absolutely cannot stand the loss of user agency on modern software/operating systems. I have to use both macOS and Windows at work and I hate them almost equally (I hate windows a little more than I hate macOS, but because of Microsoft's behavior, not because of the UI).
I feel like every piece of commercial software and OS now is like Blizzard "You think you do, but you don't"
The idea that I need to have window decorations and the “GTK window decorations” configured separately is just …
Anyway, the point is it’s never going to be consumer friendly. Office systems managed by IT teams can switch to Linux no problem. People just complain about “weird work computer setup” and move on. But personal laptops aren’t going to be an attractive proposition.
Outside Internet places like HN, most consumers aren't going to Tuxedo, System 76, or building their own Linux PC.
Thus commercial OS platforms keep winning, and the owners are anyway the ones that sponsor most FOSS projects.
Miss Windows 7 by the way, it was when I gave up on The Linux Desktop.
8.1 also ran faster than 7 on a lot of machines, they did a lot of work to optimize it for the crappy tablets which translated well to desktop.
Also the last version of Windows that you could opt-out of telemetry with (until Microsoft backported 10's telemetry engine to 7 and 8.1 via optional update)
[1] https://www.lenovo.com/gb/en/configurator/cto/?bundleId=21NS...
[2] https://www.dell.com/en-us/shop/cty/pdp/spd/xps-13-9350-inte...
I don't understand the plasma desktop though. Why can't I just drag a shortcut to the desktop.
The other side of the news is that the desktop abstraction has been made more and more useless on every OS for a couple of decades already. In any other OS your life will only improve if you abandon it too.
But I will say I've had a ton of failure to wake up from power saving issues (resolved by just disabling pretty much every power saving feature, which I was gonna eventually do anyway because I want to be able to remote into the machine), and VLC can cause the UI to lock up because of some XWayland nonsense that they're still trying to fix (I just use Haruna, KDE's default mpv-based player, and it's mostly fine). It's a little silly and was quite frustrating that Linux is still dealing with this shit. A more minor (but still irritating) issue is that each taskbar has its own set of pinned applications (instead of just being identical like in Win10/Win11), so if I change the order on one I need to manually go change it on the others.
Overall, I like it because it's good for development and creating other stuff, the filesystem is fast as fuck (way better than WSL) it's obviously less actively antagonistic than Windows 11, Photoshop has gotten worse so I've switched to Krita which works great in KDE, and I've not been surprised negatively by anything after dealing with the previous paragraph's issues, but a non-technical user might struggle to deal with maintaining it.
I still prefer it over the bloated pile of upsells that Windows has become, but I think there’s still space in the Linux desktop world for a legally-distinct clone of Windows (sans the bad parts). KDE isn’t that, it’s its own thing and is best fit for long time Linux veterans.
I grant: The process is much more enjoyable than doing similar things on Windows. Kubuntu treats you like an adult and will tell you what's going on, and being able to copy the sometimes esoteric nonsense in those logs into Claude and get actionable information while not remotely understanding the underlying tech is fan-bloody-tastic.
That said it was death by a thousand cuts. Some friends I hadn't heard from in awhile asked if I wanted to get on Warhammer Space Marine 2 and luckily, I had it installed! ... and was able to play after a mere 35 minutes listening to other people have fun on the call, while I was trying to figure out why the game would only launch to a black screen.
So yeah, I wussed out and went back to Windows. I'll probably try again in a few months, and hope the GPU support is better. But that's also explicitly riding on nvidia to do, and they're busy selling shovels to the AI gold-rushers.
So far in 6 months I ran into a single issue: On day 1 of the new Subnautica early access I had to do some debugging and downgrade nvidia drivers to a previous release. But this was fixed after about a week.
No other game gave any issue what so ever. I run everything on the cachy proton version. 4090, 5070 Ti, 5090. All work perfectly. DLSS, Frame gen, older titles too.
If you want to there’s convenience flags to auto upgrade things like DLSS to latest versions etc. It’s not something you have to use, but I found it really nice compared to the Windows equivalents.
I’m so beyond happy to have zero Windows left in the house. :)
That is for games specifically. For video with mpv it just works in my experience. Browser support is still a quite hit or miss.
Games on Windows just work. It's not even a question. I don't remember the last time I had to fiddle around to get a game to work properly, but it was probably 20+ years ago.
On Linux? Might as well play a slot machine. You might score a jackpot and the game has a native Linux port that works flawlessly out of the box. You might have a decent win with a non-native but works well with Proton. But there's a good chance it either won't work at all, or requires significant fussing to make it work.
Counterexample: I was locked out of Destiny 2 a couple times as they shipped new updates that simply didn't run on Windows 7, even as they continued to claim it was supported.
I don't mean subtle bugs either, I mean stuff like an immediate error on startup for a "missing" DLL, which persisted for weeks.
This means so much to me in the modern era. Contrast with the SaaS approach that's also been leaking into Electron apps, etc:
- "Something went wrong"
- "It's not you - it's us :-("
- "An error occurred"
- "Uh-oh..."
- "Too many penguins are in the defrobulator" [or whatever "lol so random" 2010 corporate mascot in-joke is applicable]
People used to make jokes about cryptic error messages with alphanumeric codes but cryptic beats cutesy and completely uninformative every day of the week. The days of people being intimidated by computers have been over for a while now so I'm sure I'm not the only one who feels this way.
[0] https://x.com/cherrikissu/status/972524442600558594
Oh, I wish...
We have a couple of applications where we used to show useful error messages that users could copy-paste to us when they opened a ticket. We had to remove them because they scared some users. Now, per our customer's request, we sometimes only show "ERROR". Yeah, that's better...
Also, in the ticketing system we have to hide technical messages when passing the ticket between teams because the user would interject telling us they don't understand (which is ok, to a point: they have all the context they need to understand we're not talking to them, but ok...) but some would get really angry and frustrated and complain to our customer's IT that they don't want to see the technical stuff.
Also, my parents that get scared if something in red with numbers shows up on their screens.
(Spent some time last year supporting students online - noone was going to take a screen shot of their laptop so we ended up with them emailing photos off their phones)
I just switch devices depending on context and needs. If it were me, I'd just use the gaming PC as a console.
What? That has nothing to do with KDE. And Ubuntu is one of the happy paths for driver support. The problem is squarely on either NVidia or overly pretentious commitment to FOSS and only FOSS.
Yep. I, too, get more productive by spending a PhD worth of effort on choosing a window manager.
Sure, you can drive yourself nuts picking a window manager, but that's for the hardcore nerds who want to optimize everything about their WM. For a different example of the same pattern of behavior, here is the BITOG forums: https://bobistheoilguy.com/forums/
Thousands of pages and millions of words dedicated to choosing precisely the right oil for a specific motor. Does any normal person need to do this much research into what oil to use in their car? No, but if you want to optimize you can spend weeks going down a research rabbit hole involving lab tests.
For most people, just buy any oil that isn't the cheapest available. Same goes for window managers. I've never got into optimizing or customizing them, but for any mainstream distro the default will be absolutely OK. You can definitely invest thousands of hours into customizing and tweaking a WM, but you could also spend that time customizing emacs and making that your 'WM".
I've never understood why people present selecting a desktop environment/window manager as this huge hurdle. Just go with the default for your distro, if you want to get super nerdy you can change it but most people won't need to.
I kind of settled towards e. g. fluxbox or icewm. Mostly because I don't want to spend too much time configuring anything and these are faster than KDE at all times. Plus, KDE goes into the systemd-dependency and "no more xorg" anyway under Nate-lets-add-more-donation-daemons-Graham. Oldschool KDE was not as opinionated.
Not an option if you have to deal with iOS ecosystem of crapps.
IMO, nothing should ever steal my keyboard focus. As soon as I've typed a single character, whatever happened before, too late for you.
Nevertheless, the OS could conceivably track whether there was any focus change since the process was launched or since it received the last key-press or mouse-click event, and only allow the focus change when there wasn’t (and otherwise use a non-focus-stealing notification mechanism).
It’s too bad that the art of building lightweight applications is becoming a lost art.
The single most soul-crushing experience I have on today's tech is the whoopee cushion.
I type this on a touch device that randomly Cheevers the words. (It literally changed "changes" just now. Henceforth, my word for this shall be Cheevers.) it Cheevers the words. It offers suggested words that you can tap to complete the word you're typing, and milliseconds before your finger makes contact with the screen, the suggested word flips to Cheevers and your finger taps that.
Now with the new improved iOS Liquid Glass, and possibly with janky web app development kits, buttons can move as you try to click on them. UI animation was supposed to help the user. But helping the user is hard.
Pop ups. The web needs more pop ups. More "Are you enjoying this app?" in your face.
But on the desktop, I recall complaining to a Windows (the OS) developer about stealing focus... in 1995. At the time, classic macOS tended not to do this, but it happened quite often multitasking on Windows, and I couldn't offer any constructive feedback, no obvious solution.
The sheer unpredictability, at 100 millisecond time scale... a few hours of this and I'm literally shaking. Because it affects muscle response, a startle reaction. Keeps firing away at the limbic system.
If I wanted slot-machine online gambling levels of simulation, I'd go to a casino. I hate this stuff. I hate where "engagement" metrics and the quest for more clicks has brought us.
Make it stop. I'm trying to work, here.
Yes, it has the magical setting to fix all of your problems and frustrations, and yes it’s a finicky broken bitch to actually get working for your use case.
I say this with love.
That was annoying, but it let you finish doing what you were doing until you were ready to switch focus.
Dock icons bouncing are usually the result of the app opening a modal alert window. Those can’t foreground the host app and they used to be what devs reached for 9 times out of 10.
These days though everybody and their dog has a menubar item or daemon running in the background (whether such a thing is actually necessary or not) and the only way windows spawned by apps like that (which have no Dock icon) can get the user’s attention and not have the windows they spawn get lost in the shuffle is for the app to call the foregrounding API, and so that’s exactly what they do.
Contrast this to years ago when almost no apps had menu items or daemons and were standalone.
There’s also been a staggering loss of decorum when it comes to these things. Companies have become shameless about pestering the user’s attention, and so there’s probably some regular Dock-icon-having apps that call the foregrounding API when they shouldn’t be too.
In my opinion menubar items, daemons, and foregrounding are all being abused by devs and Apple needs to get them under control. Apps shouldn’t be able to add menu items or daemons without the user’s explicit permission and foregrounding should he treated similarly to push permissions.
For example for this case, the taskbar icon would blink three times and then remain highlighted. So it would grab your attention, but not hold it, and then you could still easily see at a glance which app it was
At some point, like many other things, it looks like this either was changed or broke/doesn't work consistently. But I thought it was a nice design
Between that and this insane thing MacOS does where when I click an app in the dock any random app opens up (and, per above, begins barraging me with things designed to "direct" my attention) I'm ready to switch to something whose primary feature is not acting like the dev team spent the last ten years trying to arbitrarily bump the number of features up and ending up with a giant pile of buggy features that nobody asked for.
And for my final gripe, at least for the next 15 minutes, trying to teach a computer how to do what I mean instead of what I say was a mistake. I learned computers back in the day where there was no attempt at interpretation of intent and instead the machine did exactly what I told it to, and that's how I prefer it because it simplifies the problem space when the machine is misbehaving. I told it to do the wrong thing. That's the only possible answer. But now there seem to be so many layers attempting to interpret meaning from actions that the problem space expands to make room for the idea that I told it to do the right thing, but it guessed that I meant something different and then did that instead. As an example, just trying to highlight something in my Mac's terminal app so that I can copy/paste it. I click the terminal app on the dock, and focus switches to that terminal app but also docker desktop, which is on top of the terminal and doesn't go away when I click into the terminal. Instead I have to interact with docker desktop. So I minimize the app I never asked for, and actually have access to the terminal. I'm using the built-in touchpad and have to select an entire line, so I start from the right with one finger, click and drag. But another finger, or perhaps the heel of my hand, gets close to the touchpad and MacOS is SO EXCITED TO HELP that it decides to interpret that as a right click which results in my selection getting interrupted halfway to bring up the right click menu, whereupon I'm presented with the option to do several things with this approximately 40% of a CLI command including: search for it in webster's dictionary, convert it to spoken word, convert it to Chinese (my choice of traditional or simplified), or try to open it in finder despite it being a portion of a command and not a file.
All of this points to a Goodhart's Law situation where someone decided the size of the pile of features was the measure of the quality of a piece of software, rather than how elegantly it does the job the user bought it for. AI has also significantly increased the speed with which a feature that no one asked for and that doesn't work correctly can be delivered.
Is this workflow part of the Kwin settings? It's not interrupting typing part of the settings?
No I don't. We recently switched to Zoom at work. Meeting notifications steal my focus (Windows 11 device) and it's fucking terrible. Nothing should ever steal focus.
You most likely want to return to the main task as soon as possible because that scrolling is just a time filler because you can't do anything productive. So you don't need any notification and extra action, just switch back asap and continue work with as little interruption as possible.
But even in the specific example that depends entirely on what you're switching from and to and for what reason. If it's for something quick non-interactive (I don't know, switch to a file browser to check the file name or something), then yes, you'd prefer to seamlessly be switched back to the main app to do the thing you launched it for.
But if it's not an important app, then yeah, you just want it to be ready for you and switch to it whenever you decide to avoid the launching delay later
"you'd prefer to seamlessly be switched back to the main app to do the thing you launched it for"
Would I? How do you know? Why do yo think so? This is such an odd thing to be sure about.
> Would I?
You would
> How do you know?
By being the omniscient being that came up with the conditions in the first place
I don't care how important the app's developers think their app is. It's my computer, it's my decision how "important" something is.
Let's take the real example I've made up (which is also a situation that happened many times to warrant an automated solution to limit distraction), not a totally different one you've made up because you can't point how the original fails withotu changing the conditions. Also, I've specifically mentioned typing as a different workfow/use case because that obviously requires different handling.
Also, no one else needs to be deciding how my "distractions need limiting" on my computer. I can handle that myself. Provide settings, an extension framework, whatever to allow people to manage their distractions, but don't force that on me and my device.
No, you're committing the exact same error again. You stopped checking in the first 0.5 sec while the app took 1 sec to start. If you're not capable of imagining a situation where this happens like some other commenters, that's ok, but that's a different argument.
> I don't get it, are you not capable of imagining a situation where
You're the one deciding that!!! That's what a properly designed system would allow you to do. But the system you advocate for does NOT. If decides for you that you'll never need it. Just like the current dumb systems decide for you that you always need it
> Provide settings
So we agree again?
Why do you presume to tell me how I perform a task? Do you know how many files I have to scan through to check? Do you know how far the Finder scroll has to move to show me what I want? Maybe it takes a glance. Maybe it takes ten seconds.
I don't particularly care what kind of activity you might be imagining, but nothing that steals focus should be happening without my consent. You have been arguing that it should and then later changing your argument to allowing configuration for such things.
> > I don't get it, are you not capable of imagining a situation where
I don't know where this came from, but it's not in my comments. I think your emotional response to this discussion has you conflating commenters.
If you want to advocate for configuration to allow focus stealing that's fine. But you've been arguing as if it's silly that anyone would want it any other way than you.
Why do you keep presuming you can make up your own example when arguing about a different one??? The original premise "depends entirely on what you're switching from and to and for what reason", so of course if you change your conditions you'll have different outcome re. focus stealing!
> You have been arguing that it should
No, you've been missing the point this whole time.
> I don't know where this came from, but it's not in my comments
It is, I suggested you imagine the case where you'd like the change of focus to happen in response to some conditions you find favorable, yet several times you faield to address it as is and kept bringing up different conditiosn.
> I think your emotional response to this discussion has you conflating commenters.
I think if you're that bad at reading literal text you shouldn't attempt at trying to read emotional state of that author.
> If you want to advocate for configuration to allow focus stealing that's fine
So why do you keep arguing that it's not fine because you can't imagine a situation where it is?
> But you've been arguing as if it's silly that anyone would want it any other way than you.
Nope, that's you misreading again. I have no issue with people who want a dumbed down "never steal" config.
Maybe the silly part here is people ostensibly supporting computers respecting user choices arguing against being able to better configure your computer to respect user choices.
In the real world, where it's impossible for the OS to distinguish between the "You stopped checking in the first 0.5 sec while the app took 1 sec to start" scenario and the "you're still busy with the current task and don't want to switch to the other app yet" scenario, the safe choice is always to not steal the focus because the cost of switching too early is significantly higher than the cost of not switching.
For that it suffices if the window comes to the foreground, but it does not need to steal the focus.
Microwave's ding is also bad UI, especially when it's repetitive as it's just useless noise. But even the first ding - what value does it have if you already have exactly the same notification category - audio cue - built right there in the process: the machine noise disappears when it stops working.
Maybe you do. I don't. With this setting we can both be hapopy.
Also, the presumption that I'm going to wait around for 5+ seconds whilst an opens is unrealistic.
Let’s say you’re controlling a piece of machinery with an app in the background and the machine starts on fire. Wouldn’t it make sense for the app to steal focus so it can show you some alarms (in addition to audible alarms which you may not hear because they’re in another room).
This was true already before AI code generation, but AI code generation means the definition of “fast” has shifted like crazy. An experienced engineer can now build in an hour what would have taken them a week.
But it (right now) does nothing for the confidence about being correct - you still have to put in the extra time to ensure the software is correct to your desired degree of confidence.
Unfortunately for people who like their software to be correct (stable, performant, bug free, etc), it seems like way too many software developers right now are happy to take the gains of the former but ignore the tradeoffs of the latter.
(at the same time software quality for mainstream consumer goods like the kind of thing OP complains about in their post has been down the drain for a long time now, and it seems likely many of the examples they give are pre-AI)
From what I've seen, I don't think so if we're talking about like-for-like quality. Maybe as an absolute best case scenario, but more typically it's more like you can build in an hour with AI whereas without AI it might take you 2 or 3.
Even thats highly task dependant, and doesn't scale as you'd expect (eg 1 hour == 2 hours, but 1 month =/= 2 months), and at times even using AI can slow things down, at its worst case more severely than at it'd speed you up at it's best.
Now if you're willing to throw like-for-like out the window, that 1h==1w could be achieved easily, maybe even more. But then again, I feel like I could do a lot more in an hour if I didn't care about quality either, not as fast as AI but much faster than I am currently.
> ...
> But it (right now) does nothing for the confidence about being correct - you still have to put in the extra time to ensure the software is correct to your desired degree of confidence.
You're partially correct - what gives confidence is duration in the field. No matter how long you take to build something, seeing it work in the field for 3 months gives me more confidence.
You have to release, early and often.
I still don't understand how a full focus stealability debounce is not the norm. If I am in the middle of writing, or interacting with one UI bit in any way, no other app should be able to steal focus, full stop. Add an annoying popup if you want, make angry computer noises, flash icons, I don't care. 99.9, if not 100% of the time, it's completely unrelated to what I'm doing and can absolutely wait. While some OSs have something along these lines, they also give the tools to bypass it (I'm looking at you, Cisco AnyConnect! Being connected after clicking on connect is not an emergency!)
Imagine you're working in a terminal and an app decides to steal STDIN. Why do we accept that for a GUI?
You don't know that until you ask users. That would be a much more useful question than those boring "tour guide on first login" or "please activate cortana/copilot" or "do you want to sync to onedrive" stuff one gets notified on some major desktops.
My preference is focus follow mouse, no focus stealing on new window opening.
I do, this is also pretty bad. User focus is more valuable than that
Today, developers assemble a Tower of Babel built of libraries they do not understand. Those libraries were largely built the same way.
There is “no value” in a company maintaining their own purpose-optimized HTTP client, database, GUI framework, or anything else.
Each layer adds features but subtle crappiness in the details not understood.
I shudder to think how many string libraries end up in a modern system…
“Practical” solutions like “this WXYZ fails 5%” of the time, let’s add a retry loop. Of course, this the next layer sees random failures that are hard to reproduce, so they add the same.
At some point our modern supercomputers are repeating millions of operations because of a stupid bug. The user just sees a sluggish app and gets annoyed.
We could write simple, understandable, efficient software that is a joy to ship and use. Unfortunately that doesn’t add value so we are extremely careful to never waste resources on such!
And humans possess nowhere near as gifted a talent as God or natural selection or whatever you believe drives the natural world. So it’s to be expected that the systems we produce will be much more buggy than biology! It’s kind of futile to imagine it could happen any other way… we are just not that good.
There is a saying
Any idiot can build a bridge that stands, but it takes an engineer to build a bridge that barely stands
We found the limits of what it takes to make software stand, and what software paper cuts people are willing to deal with
Yes -- but. The market is irrational especially in a time of mania or panic. The AI phase we are in has mania, bubble aspects. There is no rational calculation about what is happening to software quality and is that good for customers or the industry (or individual businesses). We are too far into FOMO. It won't stop until it STOPS. Uh oh.
A friend of mine works in a niche software field at a small company. It was recently acquired and the whole technical team was laid off because the new director of engineering determined that they could replace the whole team with AI. All of the people who wrote the product were dumped as well as the whole cohort they had trained. Everyone.
We as society are choosing to be in that place.
Software is a market for lemons. There are huge costs for switching, and it's typically very hard to tell what is good. That and with the rate software is updated you have no clue if it will remain good. There are high motivations for short term gains with enshittification all over the market.
If you are struggling to pay the bills, you probably could care less about software's 'decline', you're just trying to survive. Maybe if something catastrophic happened it would be enough to put you at that limit, but software could stand to get much worse before then.
If you are forced to interact with technology a lot everyday, then what might be a paper cut for someone every once in a while, could be literally hundreds a day for you. In that case you are probably very near or at that threshold already.
As a society, I don't think we would see cracks until we start to see multiple community scale disasters related to poor software, or small disasters in highly visible areas like healthcare, planes, etc.
My experiences as a user haven't really changed. Streamers fail to cast to TVs. Browsers are devices which reliably and efficiently propagate red console text and 500s from companies to you. I still see bluescreens on public touchscreens.
Uncle Bob nailed one reason why the industry isn't getting better: the growth of programmers is exponential, such that half of all programmers have less than n years experience (5?).
I offer two additional reasons:
Firstly, you hone your skills doing individual algorithms on a single thread, where it's OK to get it wrong and change it as many times as you like.
When you get a job, you don't even realise you're in a distributed system and the getter/setter model you practiced on is woefully inadequate for interacting with partner systems, cqrs, event-sourcing, auditability, idempotency or whatever else is required.
In short, 10 years of practicing writing for-loops and data-structures will not translate into building a system that customers can access via their phone and multiple tabs of a browser, at the same time as a database schema is being updated.
Secondly, while I don't think there is any realistic alternative to agile development, it seems that nontechnical POs have captured the software lifecycle. 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
It seems like the languages have been increasingly targeting the beginner segment (C++ -> Java -> JS -> Python), while the tasks have been getting more complicated (b2b distributed systems, 24/7 uptime, millions of users, resistance to hackers, machine learning, etc.)
And then when the MVP is done, it magically becomes the shippable product. Then just when the team is getting to grips with how to improve the product, management does a reshuffle and moves teams around. "EXCITING NEWS GUYS, congratulation to Jimmy Whatevs for being promoted to SENIOR Director, he will now head-up the cross-functional-operations team which will be folded under the product-support division."
/i'm an old developer but most have no clue their paycheck comes from actually selling things and not just from typing on the keyboard.
It's not even "selling things" these days. It's pleasing shareholders. That's why even productive engineers can get laid off these days. The incentive to type on keyboards or even sell things are not aligned with what the market wants at the moment.
100% agreed on ProductManager-ism/MVPitis is a cause of so much of this.
One can "do agile" a bit less literally & stupidly.
For a lot of software infra or even user facing apps, you really can plan out more than a sprint or two. This might be the MVP, but there is prior art in the space / competitors / devs with experience on the team. You probably should think about what the app should be capable of 3/6/12 months out.
When you follow a GPS for directions, you generally take a look at the overview first, make sure it's not driving into a lake or taking you to a similar address in another state. My car even shows me the next 3 steps on the path as I go, I like that.
Agile should not mean blindly "take 1 step and only then contemplate what step 2 to take once you complete that 1 step". And yet that is how MANY shops implement it in practice.
Common for all these "industry leaders" is that they all write books and give speeches. I'd rather listen to someone who designed successful software such as git or OpenSSH than someone who designed a salary system in the 90s which, it turns out, was scrapped two years later for being a mess. Giving yourself a stage name is not a merit in itself.
There is something to be said for actually understanding the problem first. Did we learn nothing from the TDD nonsense in the 00s?
The famous InfoQ sudoku software design example was chronicled on HN here and should be required reading for anyone who cares about clean code in practice:
https://news.ycombinator.com/item?id=3033446
I was never a fan of TDD, but ironically I think it may finally be a good development strategy now with agentic/LLM coding since LLMs do so much better they they have a verifiable goal like passing tests.
Maybe a corollary to the growth of programmers is that pride/artisanship in the work decreases. Bugs happen more when the engineers dgaf, or aren't as dedicated to the craft. Software was pretty solid when I was a teenager (I'm thinking Windows, MSN Messenger, Flash, CDs, general web usage), complaints about tech/bugs weren't as common (or when they did happen, they were major, like BSOD). But I could just be romanticizing the past... idk.
In any case, say we were master woodworkers and we took pride in handcrafting great beds, but now the machines can make beds 150% faster at a 70% defect rate. There's 3 new problems: 1 is obviously that 30% of beds are shit, 2 is that woodworking as an industry is on the decline (expertise vacuum), and 3 is that the master woodworkers are disillusioned, their motivation and utility is decreased.
I believe that in time, the beds will get better, sure (the machines will improve). But in the meantime, huge numbers of people get shit sleep.
Past software was just as horrible, we just tended to use it for less things and incorporated its failures into our lives transparently. We'd reboot Windows every day so problems wouldnt stack up. We'd use less of the features, and use far less multimedia components like video and sound in the software. Flash was always a giant insecure piece of crap, it may have been better than other similar software but its issues were legion.
But watching large software projects fail over and over again, even when craftsmanship is demanded, often times the only way that good stuff gets in is the unpaid heroics of developers passionate about the project, who want it to be good. There’s so… little space for that nowadays, because there is so little stability in people’s lives.
There's little space for stewardship when LLMs induce psychosis and learned-carelessness in peers, so even though I'm here, I'm still motivated, and I'm still trying to stop crappy software (usually in code review), it feels like it is going to be a losing battle in the long run. The point being that "so little stability" with respect to financial stability may not necessarily factor- stability is threatened from all angles (code, motivation, fatigue, identity, etc).
Because the premise that coding has been solved is false. :-)
Coding is cheap. It has been for a long time. Ten years ago my company was outsorcing all its coding to the cheapest people they could find in India. But most of these people can't solve problems. They can't even identify problems, much less design solutions.
Code is a liability. You want as little as you can to solve the problems you actually have. That takes an engineer. Maybe AI will get there someday, but it certainly isn't today.
Engineers can certainly use AI to generate code when they need it... but in my experience I don't need much code to do my job, so AI coding doesn't help me much. My personal experience is that by the time I've reviewed the output and corrected the mistakes, I may as well have written it myself.
Well said.
It doesn't take a 4 year education to learn how to use loops, functions, and basic data structures. Most of you could probably code by the end of your fresan year of college. Many probably learned at least some coding before college.
I've learned plenty since those days. I can code much faster now than I used to - in the same way an accountant is probably faster at mental math than they once were. But an accountant's value isn't in how fast they can crunch numbers. In the same way, a software engineer's value isn't in how fast they can code.
Not a problem.
But the belief that coding has been solved...
There was a brief stint of UX, ergonomics and HMI getting traction in enterprise, and, imo, the biggest technological achievements in consumer software has been in the realm of UX in twenty first century. But it lost its importance, I suppose, as you don’t need to make good software to make money off consumers.
Whatever capabilities AI gives to programmers in terms of speed of development, etc, doesn’t change the fundamental behavior —- commercial software is not developed for humans. It is developed for investors, markets, around operational needs, based on CEOs whims, developers’ personal itches, relying on approximation of human experience that gets regurgitated through layers of commercial processes of product managers, UX researchers (who, if present at all, often don’t get invited to the conversation until there are buttons to move in a GUI of an already existing product). Where human experience is considered, it’s from the perspective of our natural weaknesses with the goal to exploit them to maximize profits. Hence why 21st century tech gave us all the dark patterns, feeds, social media, LLM chatbots, etc.
Even when I talk to individual engineers who are committed to creating something good, wholesome, something that they can be proud of -— many think and reason about the problem in a way that sounds like they are trying to engineer human experience the same way one would engineer instructions for machines.
It will never get better, IMO. AI only exemplifies what already exists.
I am not super optimistic that it happens fast, but we will end up in a situation that everything becomes tedious, annoying and broken. Companies who will do it right will inspire the whole ecosystem. It will be satirical to see the full circle happening, but it's inevitable if we want to keep going with digitalization, even if it means to bring back more hardware buttons.
You need good experts to do proper research, and those haven’t been able to learn, practice, or improve their craft in any serious manner for a while.
The late 90s is when fashion appears to have started taking over. Apple's logo went flat grey in 1998 and Windows XP was released in 2001 and it's only gone downhill from there. Perhaps it was inevitable. When other people can see your UI, people will start using it to signal things and companies like Apple will cater to that. The designers will then be given way too much power with no accountability and then all evidence-based design gets thrown out the window.
Perhaps this is what you're seeing in academia also?
[0] https://maps-nyc.com/img/0/mta-map.jpg
- URLs commonly auto-link to the things behind them, even including spaces and words.
- Pinch to zoom on the homepage causes the page to reload. Forcing you to lose your place/content.
- I sometimes cannot click to play videos on the feed. I can click through the comments and then click play on the player.
- Comments pasted from perfectly valid markdown render as whitespace deleted garbage
- Clicking "reply" then tapping in the box makes it disappear. I literally cannot see what I'm typing. I have to scroll to the bottom of the page to find it.
- After typing into the comment box the "comment" button to submit it is not visible
- Being a mod: The dropdown for selecting a removal rule will not let me scroll past what shows on the initial dropdown.
- Rare but critical interfaces like banning a user (or managing an existing ban). Essentially cannot be used on mobile.
- When typing responses to people as a mod, depending on the box sometimes I "lose" the comment button.
Are they slowly rolling this out? Did you connect via VPN? I suppose they might finally feel ready to close the doors...
I’m sure it works.
But for me, it drove me to stop using Reddit on my phone.
Obviously you cannot do that for everything. But any software you get from Debian repos (or similar distros) is at least safe from new bugs from all this new code.
I come from sciences, where the problem of AI is more linked to AI-generated papers rather than coding. Again, the real underlying problem is the pressure to publish at all cost and the ranking grant system which rewards number of publication rather than quality.
I'm sure you could say the same of AI-generated images, sound or video used in advetising, or any field where AI generation offers a shortcut. The problem is always that you need to produce as much results as fast as possible and quality is not the objective. The problem is always the KPI.
Optimistically, I think we might just enter a new phase at some point, where businesses make very conscious decisions about what to invest in to differentiate. Like, everyone has support bots now. Where do we invest, absolutely stunning human support? Or is support not that key and we should invest into being the most reliable? The most enjoyable to use?
One can hope.
If developers are producing garbage to begin with, chances are they still produce garbage just at an accelerated rate.
Customers ideally maximize value, which lies on some spectrum of cost and quality. Part of the reasons businesses act with disregard for quality is that the consumer ultaimtely doesn't punish them for it. Whether that's due to true consumer preference or a market lock-in is a discussion left to the reader.
Bizarre experience.
The Role Collapse attack is that LLMs turn out to ignore role tags (input, output, thinking) and identify role using writing style alone.
And bring back change & configuration management processes and documentation reviews. All the boring slow stuff.
Except now make it part of your CI/CD pipeline.
That's a complete non-starter unless you're serving some extreme luxury premium market with absurd margins, and/or your customer interactions already require a lot of human involvement. So 99.9% of digital products are right out.
Good human support is absurdly expensive and will easily make your product 10 times more expensive than your competitor's. But almost no customer is willing to pay 10 times more for good support.
If you create a startup you really want to focus on a small audience that you understand and know really well, instead of chasing everyone. And for that a support team is one of the most important asset you have
my example: A&A — uk internet service provider.
costs like twice as much as a normal service per month. but if i have a super technical query im on the phone with a fully fledged engineer in about 2 minutes flat. the kind of engineer that can discuss complex dns issues. i’ve had one help me debug a dns issue from a work site. it turned out quite quickly it was nothing to do with them but he hung around on the phone for 10 minutes anyway.
the first support person i ever spoke to was michael from wales. if i had to call up he was the first voice i would hear for years. he recently moved on and i was sad. we’d have a decent chat. big up michael from wales.
so, as it applies to at least one existing business — you are dead wrong. it might be twice as expensive as the people trying to maximise their profit margins, but it’s definitely not 10x more.
A month later, no refund. I contacted them again, they said unless the book is sent back, no refund. I told them about the previous conversation and they said that the CSR had lied to inflate his scores, and if I've thrown the book away I'm out of luck, he generated a return label. I complained and they threatened to close my account unless I send verification documents. I didn't, I just sent the book back and the refund processed automatically.
About a year before that I had a Samsung Fold and it cracked down the middle. I told Amazon that it was only 6 months old and it was broken, and Samsung said I need to send it to Cyprus for some reason. Amazon said to send it back for a refund, I did, and I got a warning that I'd returned something "not in original condition" and next time I'll be banned.
Last week a package didn't arrive. I queried it and there was no longer the option to talk to anyone, just a link to phone numbers for the external courier.
So I would say that Amazon having stellar support 15 years ago, building a brand on it, and then choosing to stop doing that mostly proves how wrong you are. Sure, you can still sometimes speak to someone, but it's getting worse.
Surely, they have a mandatory arbitration clause in their customer agreement..?
And which state’s court?
I wonder if there's a way the law could make it so companies can't retaliate against people who seeking redress for problems they caused.
Both you and the other commenter about his grandma's smoking habit are making nonsensical comparisons about things that are extremely rare, to support something that is supposedly extremely common, if you were to believe the parent's comment (or other stories you read online).
At one point I was looking through editions of the Arabian Nights and I noticed that, while the "kindle version" linked from the page for the paperback of one edition was an unrelated book, an actual kindle version of the edition I was looking at did exist elsewhere on the site.
I was annoyed enough that I opened a chat with customer support and asked them which of the two ebooks (one linked as "the kindle version of edition X", but with a different translator, title, cover art, etc; one not linked to the paperback at all, except for the identical translator, cover art, etc...) was the kindle version of the paperback.
A few days later, the links had been fixed, and the "kindle version" link on the paperback's page went to the kindle version of the same book!
It was simpler, better, more stable, _and_ had better UX.
Complexity does not equal quality. In fact, it usually points to poor design. Programs used to be seen as utilities, which enabled the same kind of mentality you have to any specialised machinery: "Here's a thing that can make your life easier. Learn how to use it". Now programs try to be all-singing-all-dancing-all-the-time-changing.
It had less features too.
Now, I do agree doing more doesn't mean that something is necessarily better... but I think the UX difficulty increases exponentially as more features are added.
I wonder how much of that is just what management always wanted. Peopleware (https://en.wikipedia.org/wiki/Peopleware:_Productive_Project...), a VERY GOOD book about software development written in the 80s, talks about managers wanting to sacrifice quality an how corrosive that is. It's just that in the past technology forced them to pursue quality: Software shipped on disk needed to be bug-free, because it made bug-fixes almost impossible. Software written by a human needed a human that understands it, who might have some pride in his work.
But now, with the internet and LLMs, we get to live in the slop-world the management has always dreamed of. More tickets, closing faster! Less headcount, less talk! Artificial workers that don't talk back! Who cares about all the rest?
Everything is a minimum viable product that is constantly in flux these days. The decision makers and money movers are prioritizing rapid results and turnaround over quality product, maintainable codebases, institutional knowledge (debatable), etc
The incentive isn't focused on "Good" software, it's on making "profitable" software as fast and cheap as possible.
If it's open source and I can review it before compiling and installing, and I can modify it and recompile if I want to remove/change/add something, then I feel like I have some control
This is one reason I like relatively smaller software, less code
It is little appreciated how USB has regressed. If you have a full-size top-of-the-line desktop machine with plenty of I/O channels you have a huge number of USB 3 and USB C plugs and will have mostly a "just works" experience -- like you can plug in an external hard drive and not regret it. Try a laptop or a pint size machine (say a Mac Mini or a Dell Optiplex 1.5 l) and you'll discover there is no reliable USB 3 hub on the market Maybe you can plug in your keyboard and mouse, maybe, but plug in a USB DAC and a memory card reader and an external drive... "BONG!" "BONG!" "BONG!" Windows starts screaming that devices are dropping out and reattaching and God forbid there is a filesystem you care about on one of them. (MacOS is too smart for that shit, it just assumes the hub is crap and won't reconnect until you reboot)
Plug a cooler master keyboard into you dev workstation and you'll find it overloads the interrupt handling system and causes everything to be janky.
Probably the worst thing about Electron is that the #1 applications use it, instead of making a web application, is that they can't stand that you might be able to find the application and start it the way you start a usual application (or web page) or be able to find the window when you are using it or be able to close the application or move the application window like a normal application window or resize the application like a normal application window or that you might be able to see anything in the tray -- so applications like Slack automatically become crapplications by virtue of inhabiting your tray. It makes everything worse. It reminds me of the later 90's when every crapplet for your printer had to have a completely custom widget set and window chrome.
USB-C ones (that actually give you more than 1 additional USB-C port) are still more challenging, but they do at least exist now (after having been virtually non-existent for years). Caldigit, Plugable, Sabrent, and probably others all have models that will go 1 device port to 3-6 USB-C ports now, and are powered with decent power per-port limits.
I do agree the landscape is far more confusing than it was a decade ago.
The smaller the org, the better the chances of having only reasonable levels of misalignment... but without taking on high risk, it's just better pat to work on a large, worse org. Frustrating.
Neither one really understands the other’s component.
Cooperation is almost impossible since such would derail one project manager’s unrealistic schedule and demean their authority.
The hard part of programming almost is never how ONE function or ONE class works. It's how they all interact in a much larger picture. You can try to mitigate this, but it's a pretty fundamental concept that software is big and just too large for an LLM context window.
Until that's solved, coding has not been 'solved' by '''AI'''. They're useful for greenfield stuff, but new software was always easier to smash out quickly than working on older code.
Plus, it's not like they're building understanding like a person does regardless, even if the context window was somehow enormous.
Microsoft didn't need AI to make windows 11 as bad as it is.
The incentives are large companies are fundamentally not in align with making high quality software people actually enjoy interacting with.
I dunno what they needed, but Windows 11 was a lot less bad before they started using AI.
If you're making a Linux distro, please don't do this. I will not watch your video. I was interested, and now I'm not.
So good marketing? Hell no.
What is "a fascist" (in context of being labelled that on the interwebs). That could mean a lot of things.
As a reader, you learn basically nothing about DHH other than that some people might not like him.
___
So to fix that:
DHH has always been a very opinionated guy - with not all of those being agreed on, but there being usually some kind of point to them.
Starting somewhere late-ish last year, however, he seems to have dropped deep through the alt-right pipeline and started babbling talking points basically copy-pasted as-is from other talking heads.
So, in essence, he kinda stopped being opinionated, because that would require having an own opinion, and instead started just being yet another person not doing all too well mentally on the internet.
I mean the guy suddenly started talking about "body counts". What's his age again?
__
Of course, moral outrage happened but achieved absolutely nothing, because it's not the right tool for the job here.
I do not disagree with what your said, but I think it just boils down to that.
Sorry to say, but that word probably has an equally low impact on regular people by now. Worse if we look at what people actually think/vote/etc.
People by now at large seem to be rather fine with both being called racist or just.. well.. being racist.
We do not actually want that, because (big surprise upcoming) racism is bad. But I think we might need to remind people why that whole cluster of ideas is bad.
This shouldn't be too hard, given that it's objectively worse in many many aspects, but for that to be seen, I suppose we need to point out what makes it objectively worse.
The shorthand is unfortunately dead and got killed by twitter dot com.
__
How that could be done is how I've demonstrated before you've regrettably dismissed it and tried returning to the shorthand
> People by now at large seem to be rather fine with both being called racist or just.. well.. being racist.
I disagree. I do not get that feel at all in real life (in the UK, BTW). On Facebook you get that feel because it is full of ragebait and attracts nutters.
There are some people like that, but most people would be deeply ashamed to think themselves racist or be thought racist.
Edit, to add: DHH also seems to have a weird obsession with the UK. At least two of his racist blog posts about the UK. His first racist post that I was aware off is essentially "two many non-white people in London".
Doesn't match what I am seeing outside of the Internet.
But, regardless of that, I still believe that shorthand terms and indirection are a less clean solution, and, if possible, the cleaner one with less dependencies should be used.
Where are you? It makes a big difference. I am talking primarily about the UK, where I have lived in different areas and know a variety of people in many different places. It is, in my experience, a society where racism is relatively rare: https://pietersz.co.uk/2023/08/racism-culture-different
https://en.wikipedia.org/wiki/2024_United_Kingdom_riots
https://www.dw.com/en/racist-riots-break-out-across-united-k...
But glad to learn that there is actually nothing to worry about I guess.
However, I think its very much a minority view. Even Tommy Robinson's "Unite The Kingdom" protest which DHH blogged about and Musk backed etc. and was supposed to be the far right's big show of support was much smaller than many other protests for many other causes over the years (for and against Brexit, Gaza, etc.) in recent years. I also think it likely even a lot of those who joined the protest have far narrower causes (e.g. anti-illegal immigration) than being fully alt-right.
Repeatedly!
I mean I get it. This is terrifying. But that's exactly my point.
As a visible ethnic minority person in the UK I can say I am not terrified. Concerned, yes, but its not even a major issue in my life.
You're talking about a gang of a few hundred people roaming around and burning down Muslim places.
Those people are the ones who are talking about rape gangs (which don't exist), right? How big are the rape gangs they talk about?
For example in his latest blog post he first describes problem of growing populations of wolves that are killing sheep and cannot be shot because they are protected by the state. And then starts to compare the situation with danish gypsies (Romani) in danish cities.
That's as close to fascism as you can get... it's pretty out there on the edge of legality.
I mean I used to respect his (at the time mainly technical) takes and I recommended Basecamp to so many organizations. How has this table turned so much I have no idea.
Fascist is not just a silly label. The political collapse of neoliberalism made a lot of closet fascists emerge and they seem quite common among what was earlier thought of as "techno libertarians". E.g. the VPN provider owner (forgot which) just lately.
If there was too much crying wolf 15 years ago, doesn't really matter now anyways.
I guess so, but that's abstract and hard to grasp for most people.
"The guy has clearly lost it and thus is probably not making sensible decisions" otoh is pretty easy to understand, signals effectively the same and side-steps basically all the drama.
It is really hard to keep your cool.
That isn't the problem though. Fascism isn't mental instability, it's an ideology. Someone going off the deep end and making bad decisions does so essentially at random, while someone driven by ideology messes things up in very specific ways. In the case of Fascist ideology, the specific ways they ruin things are specifically intended to harm specific groups of people, so I think the distinction matters. Writing it off as the guy having "lost it" obscures the specific goal he is working towards.
We should probably ask ourselves why there aren't more Mullvads. I think the answer is twofold - first, developers can't business, and second, running something like that carries massive political risk which that type of person is more willing to shoulder. If one doesn't feel afraid to help found a Nazi party they sure won't be afraid to run a VPN service.
There was not. I used to think they are crying wolf, but imo, it turned out they were correct all along.
They were paying attention to what these people were saying and doing. They then concluded these people are fascists. Then a bunch of us, not paying attention crowd, came in accused them of crying wolf.
Maybe, crying wolf is about a boy who sees a wolf, causes commotion and protects the village. Then they dont feel like going in one time, wolfs eats them. But, village just wont admit they were obviously wrong and blames the boy.
so it depends if you believe that everyone who supported the nazi party was a nazi, or only the people who actually did the holocaust.
https://blogs.gnome.org/alatiera/2025/11/06/dhh-and-omarchy-...
https://jakelazaroff.com/words/dhh-is-way-worse-than-i-thoug...
Isn't that how it's gone before, though? People used to make beautiful furniture by hand and leave something of themselves in it. Now it comes out of a factory, nobody knows exactly which part they made, they just fit pieces together, and it isn't built to last. Software is at that same point: nobody knows exactly what they've made or how. They describe the problem, assume they've found the solution, ship it, and there is no undoing it. The sloppiness will keep compounding. But that is also the point where people start thinking much harder about how to make it good again. A cycle, I suppose.
This is pretty true for software, how much have you actually paid for recently? FOSS isn't free either, a massive amount of time and coordination is required to make good software there too and few are willing to give it.
NPM left-pad incident was a decade ago. Supply chain attacks have been a thing for longer than that (one of the first proposed SBOM's was around that time).
Source forge was shoving adware into the software from their site.
Asking an AI to write code is not worse than typing in PIP/NPM install (not to slight those tools) if you aren't going to code review either.
I think that points do the solution. We should not make stuff more complex than we can the level of complexity at which we can make it reliable.
Imo we know the tools (social, + technical) to make good software that works. But in the face of massive complexity, people just want the next feature, the next thing sales can use as a win
And yeah I agree with the other commenter here - I don't think this is AI. We had terrible software before, even declining quality.
That's a different, equally big problem. Security mafia at every company will continue to rule everything and everyone. They do not have goals or constraints that are tied to productivity and user experience.
We are heading to a situation where the security teams are causing much more damage compared to the possible attack vectors. While this damage is real and certain, the damage due to attack vectors is only hypothetical.
Ofcourse, we do need security. But currently no one including CEO can dare to define how much security is needed. On top of that, regulators do their own share of damage, piling up regulations. No one takes any risk. They will ask you to tie yourself down until you can't move. Your mobility is not their problem.
That way, when their security is compromised, the attacker doesn't get your password.
Any site giving you your password is doing it wrong because they should never know it.
On top of that any takeover of a device like an ISP router or BGP misrouting is now an automatic compromise.
> What Andy giveth, Bill taketh away
This is hilarious.
My other biggest pet peeve in this space is the annual iOS updates where Apple arbitrarily moves buttons back and forth between top and bottom of screen.
They really like to screw around with the photos app such that "show me my photos most recently taken in time order" is somehow different set of taps year to year.
You see flavors of this in most other apps/websites.
Programming is going to be like ceramics or pottery: you can grab a nice set of bowls at IKEA for $10. We are doing the artisanal pottery that no one really wants or cares for.
XFCE has worked more or less the same for me for the last 20 years.
Sure, nothing lasts forever, but XFCE has been rock solid and absolutely works as expected.
I've used it successfully on both FreeBSD and various Linux flavors.
A product isn't necessarily designed by someone who cares about, or even understands, the problem at hand.
If you look at the open source space and review the contribution of AI in it, you'd think that AI is barely able to create functional code and the people who peddle it are solely slop authors. More than that, you might think it barely exists, because there's simply vanishingly few PRs landing which are AI generated. It seems in open source projects, for some reason, AI is barely able to produce any useful code at all
But apparently for closed source proprietary code its like magic and you don't need to write any code anymore and it is a solved problem. Mhm. Totally willing to believe that
My suspicion is that a lot of proprietary software engineering has become purely performative. It no longer matters if the resulting product works, or has any quality, because its not about that. The system is being burnt down to extract wealth from it instead, as we create the illusion of software development as these companies are asset stripped. Line Must Go Up. There's no simply incentive to make a real product anymore, when the valuation of our economy and management compensation is built solely on hype instead of results
It depends on whose perspective you consider the problem. An enterprise produces software for one reason only: make money out of it. And it works great!
if you are a paying customer, and if you can choose among a few different solutions, then you will get the good stuff. But for the rest...
1. Free apps? They just need to take ads in front of your eyes.
2. Software embedded in cars? You choose the car based on other merits, the software just needs to not by horrible.
3. Automated customare support? When was the last time you choose a fridge over another because of the quality of its customer support?
I don't necessarily believe in 10x devs, but there is a very clear output difference between various developers. During my career I've been both in a position where I was delivering much higher quality code at a similar pace to other coworkers and also mediocre code at a slower pace. Sometimes at the same time.
Now, AI itself is a force multiplier. Depending on the task, your setup, your skill level (both as a developer and with LLMs), the weather, the model and so on, it can range anywhere from actively hindering you, to solving the entire thing for you. Let's say that on average you get a 20% productivity boost.
If you take a 0.8x developer and give them a 1.2 force multiplier LLM, you get a 0.96x developer. Worse, the axis that has moved is speed, not quality.
All this to say that if you let a below average developer vibecode, you get a much higher volume of slop. You can make an agent create good code, but this developer didn't care before so why should they now?
*Note that this is from experience. I've started getting feature PRs from our devops team. It's been a very enlightening experience.
Expectations is neither about creation not use. "May" isn't a revolution outside of the historic calendar, so on both counts it's trivial to deny an ungrounded statement.
> So why does software keep getting worse across the board?
Because the premise on which the expectation is built is wrong?
Also plenty of the issues are prehistoric with all the past meat bag generations to blame, case in point: > Just then, the Slack window appeared, stole focus from Ghostty
So who stopped that huge fruit corpo from doing the very basics of managing user experience in the past few decades minus a few AI years?
I work in mediation and have recently seen a few cases where I’ve wondered if the participants were suffering from AI psychosis as related to their claims: where they’d constructed their legal cases hand-in-hand with an LLM and had become absolutely convinced despite a contestable set of facts.
People have always been subject to delusion, but in these cases, all documentation submitted was obviously created by chatbots.
None of this is to say that I think this is a good thing, or even that it's necessarily an accurate viewpoint. Considering who decides how much to spend on LLM products in companies that are potential customers for the ones saying "coding has been solved", I do genuinely think this is what they mean though. It's of course nonsense to actual developers, but we're not the ones who they're talking to when they say this.
to the article: Yeah, it's different world out there. We need to filter ideas instead of focusing on more features, as lack of staggering revenue growth suggests it might be that more doesn't equal better. The stability of apps is getting worse lately. I couldn't pair my sony camera and it was stuck on pairing screen :(
Running non free software is essentially giving up our freedom. Before internet connectivity the problem wasn't too bad but nowadays there is always the temptation to squeeze the lusers.
It won’t change cause nobody cares to do anything other than complain, I don’t see developers quitting en masse from companies that refuse to pause feature churn and focus on quality. Why should they? They get a paycheck, everyone ships crap, the world moves on. The people making the frameworks and now even runtimes are of the same cloth, overworked and underfunded.
If we cared we’d treat software like real engineering. We don’t and therefore we’re quite cooked. Just be happy that airplanes aren’t as bad as your average CRUD. For someone who does care, look at the SQLite codebase, every project should be like that even if development cycles would be 3–10x longer, but that’s delusional to say out loud.
AI just revealed that - with slop being produced at increasing pace and test coverage and verification methods of things working properly across all states and inputs being nowhere to be found.
At the end of the day, fixing bugs, especially those bugs only happen in certain environments, is a very tedious and thankless task.
In enterprise software you can run into customers that 'use too much' of something odd that the developers don't really think about and QA fails to test right. Things like tags and identifiers that you think "Oh they'll use 5 or 6 max" then you run into someone that uses a thousand tags and report performance explodes.
It's just that complexity has skyrocketed compared to the past. The same goes for released software. In the old days, even small software could be competitive, but now the minimum level of complexity required to sell a program is completely different.
The best example of this is mobile games. Just look at the structure of early mobile games compared to modern games.
It crashed, and crashed hard, a few times per week. That never happens today, maybe at most once a month.
However, what has changed in terms of quality is that there are 1000% more smaller bugs. I never felt that small annoyances or problems were even noticeable or even existent back then. Every feature seemed to actually work. Yet just so far today I have encountered over a dozen small problems in my operating system and apps I use.
It’s exhausting in a different way. Two decades ago I felt ”safe” from problems by frequently saving my files. Today I dread having to navigate a UI that keeps giving me a thousand paper cuts of small bugs.
I think it's a two part issue.
If you build a software with the same features as a '96 piece of software I can imagine it would be exceptional fast and stable.
I also imagine that almost no one would use it as features are what bring in the users.
I work in development and programming and with all the modern tools and testing frameworks and QA engineers and analytics and modern language we seem to only have achieved less crashes and more non-crashing bugs. It annoys me and I am a bit ashamed at my own profession.
IME this happens more often than people think. If you’re leading a team part of your job is to manage the expectations of those around you and explain your choices. If you do that well you can absolutely have quarters where you only pay down debt, it doesn’t require some huge attitude shift in the industry. Just explain why it’s the right thing and then do it.
A lot of this is about bureaucracy
> They have raised upper management’s expectations for team output.
That is the worse part, it's not great at all dealing with this kind of expectations
I'm confident to say that right now, AI already does a better job at turning a well-specified requirement into working code than the average meatbag I've personally encountered.
It's still useless at many other things that make a complete Software Developer, but let's be real: Programming (requirements in, code out) is solved for the stuff I'm involved in.
This extends to any device which has software or firmware: banking websites, banking apps on mobile phones, car firmware, etc.
I find it very depressing, especially when I think of the people who design, develop and deploy these apps. We are talking about large companies and teams of people. Entire chains of well-paid people designed, looked at, developed, tested, and then accepted these apps. And yet they break in the most obvious ways, or fail to be usable, instead pestering us with pop-ups and useless drivel and forgetting their state at every point.
These problems are not subtle. To take a glaring example from my everyday life, in my car there are buttons for moving windows up and down. Sometimes when you press the button to move the window down, it will actually start moving up. We are talking about a simple button that moves a window. And seemingly everybody thinks this is fine?
I don't know what to do about this.
Making legacy code however is now very fast. So fast you can practically ship it straight to production.
Hint: mid-level engineers in tech hubs wouldn’t be getting 500K salaries if that was actually the case.
Do you A) tell your management hey it's absolutely perfect as is, let's just chill, leave it alone and let the money roll in. Or B) tell management about the need for whatever new hotness and you're going to get it implemented ahead of schedule and under budget. And then you do! Oh but the software is objectively worse because it was already perfect.
It's pretty clear what the overwhelmingly popular answer is to that question.
Name and shame! I'm in the market for a car. Which one should I avoid?
I mean, he has given the answer in the article: Because "coding has been solved" is from the perspective of upper management, not devs or users - and that cares about software quality and usability (as standalone metrics) about as much as the McDonald's board cares about nutrition value.
Euphoric, who?
Other than techbros and a small group of AI-delirious fanboys, no one is euphoric. Normal people in the industry are between anxious, scared, exhausted, resentful, resigned or just plain sad. People outside our industry? They see the enshittification clearly, and are most certainly the opposite of euphoric.
Now AI tests? Except not really. It claims to perform testing. It’s still up to us to review and remediate.
Back when I was using IRC from Emacs (with erc) I had written a safeguard in elisp against that. Haven't been on IRC in a while but this helped me prevent sending to the "group chat" (the IRC channel) a great many private infos.
Same for my real name for example: I had a filter where anything containing my actual name would be blocked.
I think a great many software where you "chat" with "groups of people" would benefit from having both default and configurable filters that catch obvious mistakes. Say you probably want a confirmation before attaching a private SSH key, or before sending a password in the clear (which could be filtered by blocking words matching the hash of the password), etc.
Not that it solves the fundamental problem TFA is talking about: nothing works.
But that is a given: that's why we need safeguards.
So taking it at face value is kinda part of the problem here.
The only way this can get better is by completely suffocating it off attention. It doesn't exist. It's not real.
It's glaringly obvious that poorly checked, AI-written, code is the culprit, I'm just wondering when companies will wake up.
Nobody gives a flying fuck about resiliency, good practices, security or any of that now that AI is there. All anyone cares about is pure output of features.
Any and all "productivity" gains attributed to AI efficiency are actually due to the complete disregard for any care or standard in the software industry in the past 2 years. Yeah you can output more shit when you don't give a fuck, big surprise, AI doesn't change anything here.
This comes back to the users. As long as they keep buying the shit software why spend money on QA.
I mean, you're the problem. Did you stop using slack? Are they taking losses because of it? If not, why change?
> My LG fridge started making weird sounds, so I tried to file a warranty claim, through a multi-step form with countless fields. It failed with a submission error at the very end. And I only found out because I looked at the JavaScript console.
Has that JavaScript code been written by AI? It may be more likely that it was written by humans. Well, the design of JavaScript really sucks, the language is both successful and horrible to use, in my opinion. And we have that issue across the board. Most programming languages really suck. C, for instance - that language is an abomination. But it is even more successful than JavaScript. Today I ran into the issue that I can not compile libpng; I keep on bailing out at it unable to find setjmp. About two months ago compiling it worked fine. I most likely did screw something up on my local system but ... the compiler is an idiot. It really does not tell me WHY it can not compile it anymore. Yes, it shows on the commandline that it assumes setjmp to exist but it can not find it. The error messages are pure and bogus. And the whole design of C cascades this horrible crap downwards. The languages that supposedly try to replace C also suck. Go? Yikes. Rust? Even more verbose. C++? Trying to replace C since decades. There is a ton of inertia.
The whole stack is utter gutter trash really. Everything is build up atop layers of complexity that in turn are not really well designed at all. Meanwhile more and more software is added. Now I need python due to meson, and meson is better than what came before. But it adds complexity. And has its own problems too. AI does not really fix anything here, it just AI slop spams on top of this. We kind of lost big at engineering. People are in general also not critical anymore. The design of most programming language shows that - including ruby, but ruby is barely used, so really the issue is mostly about C. The fact that C is so successful makes this even worse, since nothing replaces it. We just keep on adding more and more. Or we go the C++ way - and make it about 50x as complex. Or Rust - that syntax is even worse than C syntax which is also horrible. Of course even with great syntax and a great language, horrible software will be written. Companies want to offer a billion useless features. Many years ago I thought it was cool if my fridge tells me what I should order. Since the day of companies spying on people, I go back to simplicity at all times.
Let's have a look at a few rarely quoted examples from the last decade, shall we?
Just six years ago, a big company rolls out a line of new chips so good that geeks and technology experts all get ecstatic and can't stop churning endless raving reviews. Those chips are fast, small and consume little energy. On top of that, the big company reworks their entire OS (OS!), the whole suite of software it has for it, the developer suite with compilers and SDKs and god knows what else and also ensures that everything ever written for that OS for the old chips continues to work and it indeed does.
Then there's another big company that launched a file storage service around 20 years ago. Back then it was reliable and only gotten better over the years. They started offering their storage for a nanocent per gajibyte and twenty years of hard work allowed them to lower that cost to a picocent per gajibyte. They don't lose data, they are highly available, half of the internet stores their data at their servers.
And then there's a -- gasp! -- consortium of big companies (fools would reply to this with an XKCD standards strip) that works on improvements to a shared set of standards for 4G, one of the most widely used technology stacks in the world, agrees on it, calls it 5G and rolls it out across the world and the whole spectrum of hardware and software vendors in a manner that resembles replacing a wing of an aircraft mid-flight so that not a single pasta strand falls from the forks of the business class customers.
And here we have someone who thinks that a customer support page for his fridge (fridge!) thrown together by a low-paid second-grade developer in a third-world country is indicative of the whole industry decline.
"Nothing works", my hairy bum. Get real.
Or two and a half. Can you tell me why having a weak 4G signal sometimes doesn't imply being able to send and receive data packets?
The issue is only partially within those who code. They get directions from those in charge, and they are just making idiotic decisions. And those who code, for some reason don't stand against those idiotic decisions in defense of a common sense and a great UX.
A blatant, exaggerated parallel would be: you are designing your kitchen and you've chosen a place for your washing machine such as that it will be unable to open its door. When inviting a professional, you expect them to correct such wrong decisions and explain to you that it won't work. But in programming, those who program, calling themselves "software engineers", would just place this washing machine where they're told, because it's "not my job". It's not a feature of an "engineer". It's being a coder lemming.