Perhaps the problem is, as you allude to, that software is hostile to the user now. There's always something more than simply being a tool that you buy, use, and close. Now most programs are merely portals for "services".
That’s because the application would straight up lose the files without prompting.
Also pretty sure text editors had something similar 50 years back, that’s why you :q! from vim, :q would tell you that you have unsaved buffers (or whatever the lingo is) and refuse.
TFA is literally abusing a crash-resistance feature out of laziness, and will no doubt complain when it fails them. 20 years back we’d all trained ourselves to save with regularity to avoid issues, that feature would be considered manna from the heavens, and tfa absolutely mental.
Completely stupidly too, I must add:
> This is the dialog that I see every time I want to close the Preview app to clear my desktop of all that clutter in a hurry for a video call.
MacOS has a shortcut to minimize all windows! It even has a shortcut to hide all aplications but the current one! You don’t need to close anything to “clear your desktop in a hurry”!
However this was never brought to the desktop, largely because native desktop APIs are dead and none of the companies that fund them are interested in improving them. We get the web and if it sucks, well too bad.
Funny, because I think the exact opposite. "Hide" means, "stop showing it for now, but keep it around". "Quit" means, "I'm done with you and I expect you to not be doing any work until I start you again". It's a very significant usability difference.
> On mobile it doesn't happen, and we can thank Android for that
To this day I consider it to be the worst, most dumb idea Android ever had. I hate it. It's the reason I hated my first smartphone. It's the reason why, from the second phone on, I only ever buy top-of-the-line most overpriced flagships available - I have to overprovision resources to ensure the phone works smoothly, because there are countless of background processes doing god knows what, that cannot be killed and prevented from restarting.
I know best when I'm done with an app. I want to be able to kill it, and all its background processes, and I want them to stay dead until I change my mind. If I were designing a mobile OS, I'd make the distinction between "hide" and "quit" as clear as day, and make it an app store policy violation for an app to execute anything in the background after being "quitted" by the user (polling for notifications would be handled by the system).
1. There are times I want to make sure an app is not running (think zoom/hangouts with video access), or a work app that records location
2. The single best way to fix a problem, any problem, is still 'turn it off and back on again'.
I don't want to kill the current activity and hope that the background jobs stop at some point in the nearish future with absolutely no feedback or insight. I want "killall <root app process>" then give the app 5ish seconds to cleanup and if it's still around "killall -9 <root app process>".
Too many apps abusing resources and affecting UI speed is a separate issue, and mobile OS's developed a lot of techniques and technologies to allow apps to work in the background without bothering the user, and without overloading the device's resources. It's a nice set of systems, really, and I would be happy if desktops worked the same way. Nobody would be taking force quit away from me, even if such a system were to be implemented.
Yes, and this turns my phone into an amnesiac the moment I have a hundred tabs and fifteen apps open. Switch to a different app, switch back... Oops, all gone! Enjoy recreating the state from history manually, if that's even possible.
There are no words to express how unhappy this makes me. We've got gigabytes of memory on our handhelds these days, why can't the phone just deal with it?
More like three legs on that stool. The sale price, the services upsell, and then they leverate insights gained from capturing telemetry about you.
Eg Windows is all three.
Jonathan Blow did a talk similar to this a few years ago, about how "software is terrible".
In a part of it, he double clicked on a .psd file to open in Photoshop and timed how long it took to open the image. It took around 8 seconds for Photoshop to display that image on screen. But the first thing the app did was show a splash screen image, almost instantly.
His argument was, "Why, when I double click this image file that I want to view, does it instantly load an image which isn't the one I want to view, and then take 8 seconds to load the one I do want to view. If it can instantly load an image when I double click the file, why isn't that image the one I double clicked?"
Maybe some applications could have an alert mode, similar to logging levels. But then it will probably get more buggy.
Honestly, I rarely get annoyed by the number of popups in most of my software. I’ll happily take a few extra dialog boxes for extra control.
How did we update software in the 80s? Simple, by taking an action: inserting the floppy with the new software, starting the update program, etc.
Why can't it be like that? (Except the floppies replaced by opening a menu and clicking "update")
Why do updates have to be performed at a pace controlled by the vendor of the software and why do I need to be reminded about updates?
I'll just install them when I think I need them, thank you.
Though setting aside practicality for a bit I wish we would design software to be more backwards compatible so old versions of things could continue to work for longer. I shouldn't have to buy a new phone every three years, for example.
Also for a tool like Audacity, I rarely need to update it. It doesn't depend on a service, so I don't need to worry about an API falling out of support and he security risks are much lower. I wish we could design more of our software to work this way.
Obviously for internet connected things like browsers this isn't possible as the security impacts are significantly higher, but why should I need to update Word every month if I don't plan to use the online components, for example.
I also wonder if there is a liability component to this that makes force updating a common pattern.
I'm imagining some automated tooling where changelogs are tied to specific git commits, and when you go down a code path that has a changelog entry tied to it in this way, it pops up the dialog. The program downloads the changelogs in the background (if the user chooses), but doesn't pop up a notification unless it's relevant to the user.
I think what we need is another way of architecturing software. I'm thinking of Erlang's actors and hot reloading: the whole language and its environment were built to allow upgrading parts of the app without turning the whole thing off, thanks to actors that compartmentalize state and minimize the places where it can change. That's extremely useful for servers, but why can't I have the same for desktop apps ? For your example again, maybe have some "actor" that can give me a sort, and when updates come the old instance is killed and the new instance takes its place. No need to turn down the app, to lose my current work, to waste dozens of minutes.
Unfortunately desktop apps are pretty much dead for the masses, and webapps solve both the problem of not updating (next time you come it'll be updated) and atomic updates (a client side app can load some javascript when needed). If we want desktop apps to come back (I do) we need to find a way to do the same
It might, if you did it like GP posted:
>> a little note pops up informing me that there's a bug in sorting non-ascii characters that was fixed recently
>> The program downloads the changelogs in the background (if the user chooses)
Note the stark deviation from standard practice: GP would like the popups to actually tell you what's in the update.
In my experience with both techies and non-techies alike, the main reason everyone hates updates is that it's always a cat in a bag. You'll likely get some bug fixes. You may get some new features. Some of those may even be useful. It's more likely the app will become slower instead of faster. It's quite likely there will be disruptive UI changes. Often completely gratuitous ones.
Random recent example: I noticed my wife has an OS update on her phone pending for the past three months. I asked, she agreed, I did the update round. Told her, "wow, you're getting a version bump, I envy you". I immediately noticed some user-set icons were wrong[0], but quickly corrected it without saying anything. I though that's the worst of it. Couple hours later, she comes back to me complaining that the update messed up notification sounds and the new keyboard has changed scaling, breaking her muscle memory for touch typing. Also the battery life dropped significantly.
Updates today are like loot boxes in games, except most of the "rewards" make your life worse.
One solution to this problem would be to have a separate stream for feature updates, and a separate one for bugfixes and security updates - and only ever bother the user about the latter. But that would increase the costs for the software vendor, and we can't have that. Who are you, the user, to complain about what your lord does? SaaS stands for Serfdom as a Service.
--
[0] - The ones you assign to your SIM cards in dual-SIM use scenario. The update added new icons to the set, and apparently the OS must have been storing user choice as an index into that set, instead of using icon ID.
> SaaS stands for Serfdom as a Service
It's interesting that the SaaS term was born from the Cloud, but its tenets still apply to desktop applications
I'd agree in most cases, but I'd still leave some grace period for updates that require rebooting the app or the OS. Nag and cajole the user all you want, but don't ever lose their data, or interrupt them during a meeting.
> SaaS term was born from the Cloud, but its tenets still apply to desktop applications
There are two main facets of SaaS - a nice one, and a nasty one. The nice one is that it outsources ops/maintenance. You're just using the software, someone else is keeping it running and up to date - and it's more efficient this way. The nasty one is, the party controlling the software is in position of power - they can make you pay rent, lock you in and hold your data ransom, and exploit your data in ways you don't want - and you can't do anything to stop it.
Desktop apps relinquish most of the benefits of SaaS, but the drawbacks were backported to local software by means of normalizing subscriptions and automatic updates.
Grandpa goes: Sorting? Wha? Non-ASCII? What's ASCII? Characters? Like on TV??
But that introduces issues where if Google adds some shitty new feature to Chrome I sorta get forced into it instead of having an opportunity to choose, so there's definitely a tradeoff and also a responsibility on the part of the vendor to make sure they aren't abusing their ability to install things on my computer.
I'm a programmer and still this makes no sense to me. Windows and Mac somehow let me use the latest OpenOffice even if I haven't updated my OS in forever.
Well, yes, that's the flipside of updating everything at the same time. You have to update everything :)
And if you're using an LTS version of an OS, you'll usually get a related LTS version of the apps from the same era, especially for the older OS versions. Because they prioritise production stability. If you just use it as a working desktop you'd be better off using the bi-yearly versions.
So naturally when all applications depend on the same shared libraries and configuration files, they need to be updated on a full swoop.
Yeah, when one knows their way around UNIX it is possible to actually install new software that works around this, but that is exactly the problem for most desktop users, "one knows their way around UNIX".
I hate that you are correct, at least to some extent. In that analogy, the / directory is really C:/Windows, with everything attached under that.
What have we done. Perhaps Mac OS got at least one thing right: /Applications and /Users at the top level.
No.
This includes browsers, where I let the auto updates handle it, and programming environments (Python, R, Node), where I often use their specific updaters.
I don’t think it’s realistic to expect a global curated package manager to stay on top of the bleeding edge all the time.
The extreme alternative to "device, please don't ask me when you want to update something, just do it" is losing control of your computer. If you're comfortable, like the author mentions, having your digital "home" be away from your devices, to "live in the cloud", I guess this doesn't matter (at least, while your favorite cloud providers and services don't shut down taking all your data with them, decide to hike prices, or ban you for breaking some ToS rule).
If you want to fully own your computer, it matters. You don't want to give away all control over it.
But what about security updates, though?
A flaw in my browser is extremely high risk and I require it fixed and updated quickly. But a flaw in my SSH server that is only accessible from behind a VPN is lower. And the risk is lower still if it's a flaw in a feature which I do not use.
I don't see an easy solution of course, it's a hard problem. But I wish that I had more granular control over what and when I update, and was given a clearer way to see the impacts of the update so I could weigh risk.
You'd clear away all the stubs of work, and the computer would say "Hi! Did you have a good work day? Here are a few things that would be great for you to do:
1. Upgrade these two apps
2. Do you want to check out how Dark Mode works? No? Ok
3. You've had these 46 tabs open since that one day six weeks ago you got into the idea of building your own treehouse. Want me to save them all in a notebook entry and remind you about it next summer?
My comment above is more of a rant than a recommendation.
But for example Steam updates on boot, which is a (albeit minor) pain when I want to use it. Similar with Spotify. There aren't really any great alternatives to either of them that have equivalent libraries of content.
Or going right to the core, Windows and it's annoyingly frequent updates. Sure I could use Linux (and I do on a few machines), but that isn't possible on my work machines, and introduces incompatibilities on my personal machines.
We don't always have a choice.
I’m sure the author has a point but I’m just distracted by this strange use case.
And since Android is also a Linux distro, then there are alternative forks based on it too (e.g. LineageOS).
It's not that hard to respect users more than W10
Windows 10 isn't even the best Windows, let alone the best software in its field.
Note I'm not saying it's good, but good enough for me. I've been using Arch, as I find the rate of improvement shows in a rolling release distro, and in my experience, Mobian is no more stable.
Source: I own a Pinephone and has tried both Phosh-based and KDE-based offerings, there is also Sailfish though. Out of these Sailfish is the only one close to usable as of now.
Ignoring this advice might lead to application termination.
For whatever reasons, non-graphical software seems to suffer less from this problem.
Forfeiting control of a system doesn't really bite as hard when you didn't understand the system enough to control it much anyway.
Not sure if that’s relevant but it feels like it should be
Indeed. Microsoft Office I'm looking at you! I don't think I've ever actually looked at one of those "Hey cool new stuff for you" popups more than trying to identify how to get rid of it as quickly as possible.
And even worse is "Hey here's a new feature we like so we turned it on for you, good luck figuring out where to turn it off again lol"
> And same when I close a program, as the author hits on very well.
The weird thing is, that is a solved problem. App Store apps (Mac, iOS) will automatically update in the background and, unless the developers build it into the app, the changelog if any will be on the store page. All platforms have something similar. It's just that a lot of developers opt to release and update their thing separately for a variety of reasons.
I agree on the OS updates though, some years ago there were a few... claims? Promises? Something that implied restarting to update would no longer be a thing. Dear reader, they were wrong.
/me clicks the MacOS update thing away again
I like where Windows is now, I get notified of required updates but I can defer it for a few days/week. For non-technical people who don’t know how to setup defers I’d imagine they would also be the crowd before who didn’t update. I’m totally fine with my parents occasionally grumbling about a forced reboot overnight.
Likewise all the software I use, besides online games, let me defer updates. Lots of stuff also now has the update next start, which I also like. I don’t even notice my browser updating most of the time until I open dev tools and see “what’s new”
Perhaps the issue was that we insisted every program be internet connected. If everything were offline a la Battlestar Galactica, security exposure would be greatly reduced - pretty much only the standard USB stick attack vector would work.
Seems like we have a fundamental security issue that results in having to keep fixing vulnerabilities across most software, which sounds like applying bandaids and treating symptoms rather than coming up with a more secure approach.
I especially love when Firefox decides that he really needs to update, and I cannot open any new tab until I do so. Who cares if I am on a crappy connection and the download that I need to finish will take 20 minutes more; it's either restart it or wait until I finish. And that other thing in that tab that I need time to finish but I cannot really save ? Who cares.
Simply don't run system updates during a Firefox session and you're golden.
When I open a program, I want to use that program. I don't want to update it, I don't want to see all the new features, I want to USE it. I opened it because I had a task to complete and all this junk is getting in my way.
And same when I close a program, as the author hits on very well.
Basically, the computer/program/etc always wants me to do something for it, but it never asks for those things at an opportune time.
No, I don't want to update my computer right now, and no, updating overnight tonight isn't good either because I need to keep this program running until tomorrow. I understand that your new UX is better for me, and I'm sure I'll love it, but forcing that on me right now is preventing me from doing what I need to do. I see your error dialog describing some odd issue, but I don't have time to triage that right now and decide to take the time to fix it.
I wish software would respect the human element more. My time and attention is valuable, please don't interrupt it carelessly.