loading . . . Needy Programs If youāve been around, you mightāve noticed that our relationships with programs have changed.
Older programs were all about what you need: you can do this, that, whatever you want, just let me know. You were in control, you were giving orders, and programs obeyed.
But recently (a decade, more or less), this relationship has subtly changed. Newer programs (which are called apps now, yes, I know) started to want things from you.
# Accounts
The most obvious example is user accounts. In most cases, I, as a user, donāt need an account. Yet programs keep insisting that I, not them, āneedā one.
I donāt. I have more accounts already than a population of a small town. This is something _you_ want, not me.
The only correct reaction to an account screen
And even if you give up and create one, they will never leave you alone: theyāll ask for 2FA, then for password rotation, then will log you out for no good reason. Youāll never see the end of it either way.
This got so bad that when a program doesnāt ask you to create an account, it feels _refreshing_.
āOkay, but accounts are still needed to sync stuff between machines.ā
Wrong. Syncthing is a secure, multi-machine distributed app and yet doesnāt need an account.
āOkay, but you still need an account if you pay for a subscription?ā
Mullvad VPN accepts payments and yet didnāt ask me for my email.
How come these apps can go without an account, but your code editor and your terminal canāt?
# Updates
Every program has an update mechanism now. Everybody is checking for updates all the time. Some notoriously bad ones lock you out until you update. You get notified a few seconds after a new version is available.
And yet: do we, users, really need these updates? Did we ask for them?
Iāve been running barebone Nvidia drivers without their bloated desktop app (partly because it asks for an account, lol).
As a result, thereās nobody to notify me about new drivers. And you know what? Itās been fine. I could forget to update for months, and still everything works. Itās the most relaxing Iāve felt in a while.
Even terminal programs bother you with updates now.
There has been a new major release of Syncthing in August. How did I learn about it? By accident; a friend told me. And you know what? Iām happy with that. If I upgrade, nothing in my life will change. It works just fine now. So do I really _need_ an update? Is it _my_ need?
Itās simple, really. If I need an update, I will know it: Iāll encounter a bug or a lack of functionality. Then Iāll go and update.
Until then, politely fuck off.
# Notifications
Notifications are the ultimate example of neediness: a program, a mechanical, lifeless thing, an unanimate object, is bothering its master about something the master didnāt ask for. Hey, who is more important here, a human or a machine?
Notifications are like email: to-do items that are forced on you by another party. Hey, itās not my job to dismiss your notifications!
I just downloaded this and already have three notifications to dismiss.
Sure, there are good notifications. Sometimes users need to be notified about something they care about, like the end of a long-running process.
But the general pattern is so badly abused that itās hard to justify it now. You can make a case that giving a toddler a gun can help it protect itself. But much worse things will probably happen much sooner.
These fucking dots.
Thereās no good reason why, e.g. code editor needs a notification system. Whatās there to notify about? Updates? Sublime Text has no notifications. And you know what? It works just fine. I never felt underinformed while using it.
The ultimate example: account, update, and notification
# Onboarding
The company needs to announce a new feature and makes a popup window about it.
Read this again: The company. Needs. Itās not even about the user. Never has been.
Whatās new in Calendar? I donāt know, 13th month?
Did I ask about Copilot? No. The company wants me to use it. Not me:
Do I care about Figma Make? Not really, no.
Yet I still know about it, against my will.
# To sum it up
Iāve read somewhere (sorry, lost the link):
> `ls` never asks you to create an account or to update.
I agree. `ls` is a good program. `ls` is a tool. It does what I need it to do and stays quiet otherwise. I use it; it doesnāt use me. Thatās a good, healthy relationship.
At the other end of the spectrum, we have services. Programs that constantly update. Programs that have news, that ākeep you informedā. Programs that need something from you all the time. Programs that update Terms of Service just to remind you of themselves.
Programs that have their own agenda and that are trying to make it yours, too. Programs that want you to think about them. Programs that think they are entitled to a part of your attention. āPick meā programs.
And you know what? Fuck these programs. Give me back my computer. https://tonsky.me/blog/needy-programs/