The desktop metaphor must be restored. It’s under attack! (2020)
8 points by manuel
8 points by manuel
There’s a lot I disagree with here:
[The filesystem abstraction] allows you to understand where stuff goes.
No, the file gets stored in one or more blocks on disk. I guess ‘on my local disk’ is a location, and possibly a useful one, but that’s not a great abstraction. Filesystems have a bunch of UI problems:
They conflate persistence and communication. Filesystems store blocks of data but they also manage a shared namespace. Because it’s shared, it’s a communication channel between different processes. Persisting a document within an editor (where you want transactional updates, history, and so on) is very different from sharing a document with another user or program (where you may want to strip history, and you want a send-like abstraction).
Filesystems use hierarchies for organisation. That’s great for about 10% of the population. When iTunes came out, geeks said ‘why do I need this, I organise my music as artist/album/file.mp3’. Normal people said ‘oh, being able to filter by genre, artist, year, and so on is great’. A lot of things simply don’t fit well into a hierarchical model. GMail was hugely popular because it replaced the hierarchical folder model that everyone else used with a soup of tags and a good filtering UI. BeOS had some nice abstractions here, where the filesystem could store saved searches over metadata as directories and keep them in sync. Their UI recognised that there is normally not one canonical organisation structure that makes sense for user data, that different views are useful, and that searching over metadata is easier than defining the correct scheme a priori.
The original Mac Finder used a spatial metaphor. Folders opened in the same place every time, files within a folder were always in the same place. And this worked when you popped a disk out on one machine and opened it in another. Spatial memory works really well for up to about 20 things and then progressively decays. By the time you have a thousand files, it fails completely. I have 1,402 PowerPoint files that contain the word ‘CHERI’ on my computer. Even with good search, finding the right one is hard. Spatial organisation is useless. In the filesystem, they’re sorted by date and venue, not by content. That’s not a user-friendly abstraction.
Let’s do everything by drag-and-drop in the file manager
And here the author gets so close. The key concept is ‘direct manipulation’. You expose nouns to the user and let them directly verb any nouns that they see.
It allows you to see all commands that are available to you quickly. Today, it even lets you search those commands.
The keyword here is ‘discoverability’. And menus are amazing for this with a small number of tasks, but they eventually become too big to easily review. Search helps.
The Ribbon exists because the MS Office team found that 90% of feature requests that they received from customers were for features that they’d already shipped. They were shipping new features, but people weren’t finding them. PowerPoint has had, for about five years, a big button at the top right of the window that says ‘Present in Teams’ that appears whenever you’re in a Teams meeting. It gives you a presenter view locally and gives everyone else the rendered slides view. It’s a great feature (though the tight coupling and lack of Teams APIs for other people to do the same is probably a violation of the MS vs DOJ settlement terms). In spite of that, I’ve almost never seen someone use that button without being told it exists. And that isn’t something hidden in a menu, it’s something right on the front of the UI.
We can probably do better for discoverability than menus. They suffer from a common problem: you don’t know what you don’t know. To find something in a menu, you have to know to look for it. Menus also have the problem that they’re arranged as hierarchies, with all of the problems this entails, not least of which is that users want things sorted by ‘stuff I use together’ not ‘stuff that does similar things’. The latter is easy, the former varies between users and often between tasks.
The computer is supposed to execute the instructions the user gives it, not the other way around. Notifications are a big distraction, most often designed for the computer to make the user do something
I like that my calendar tells me when I have a meeting. I like that I get badges on my mail client and messengers with unread message counts so that I can just glance at them rather than having to fully switch my attention to check. I like that I get a pop-up notification when I have an incoming call and didn’t set a do-not-disturb status.
I also like that posting notifications requires a permission and so I can simply withhold that from 90% of apps.
I do want whoever decided Signal should deliver notifications for reactions with no way of disabling them without disabling all notifications to be banned from ever touching a keyboard ever again.
Get rid of ads
Okay. Agreed on that one, but it doesn’t seem related to the core argument.
A Start menu with tiles? A Launchpad? Who needs those extra things to launch apps when we have the file system
On macOS I almost always launch apps by hitting command-space and starting typing the app name. Most autocomplete within 2-3 letters, so it’s five key presses to launch an app. Doing the same by navigating to the /Applications folder (which has many things in it, some in subfolders) is much slower. Again, this approach was great back when RiscOS, Apple System, GEM, or Windows shipped with a dozen or so apps, because you could display them all at the same time and use spatial memory to find them.
Get rid of app stores, DRM, signed everything
Okay, so no app store, how do I find things? Just download them from web pages? There was a story recently that putty.org is a web page that looks like the official page for PuTTY, but contains unofficial releases (with malware?). How do I know that I should download from https://www.chiark.greenend.org.uk/~sgtatham/putty not http://putty.org?
Signing is necessary for any usable permission model. Without it, you assign permissions to a specific binary. With it, you assign permissions to an app identity and upgrading the app doesn’t require you to revisit them.
Get rid of everything that is “always on”
Spoken like someone who doesn’t remember machines that took five minutes to turn on and five more to become useable. I like having computers that are usable as soon as I decide I want to use them. I close my laptop’s lid, it’s in a low power state. I open it again, everything is exactly where I left it and I can continue. Why would I want to replace that with a model where I do a full boot when I open the lid and then spend ages reopening the things I was working on?
What if you don’t want an “always on” processor, let alone an “always online” one? Don’t use battery-operated devices.
This is especially odd. Why do you regard being always-on as a property of power-constrained devices?
Good things can be understood. Not just how to operate them at their surface, but how they work.
What does this even mean? How many users (even programmers) understand how a modern NUMA-aware scheduler works, or even how context switches happen? How many understand how a filesystem works? We should remove all of those things? No, the entire point of building usable abstractions is that people can understand how to use a thing without having to understand exactly all of the implementation details.
Users should be able to understand the consequences of UI patterns. Storing something in the cloud means you are protected against local hardware failures. You’re also vulnerable to network disruptions (unless you have a local cache) and to having your account deleted with little recourse and losing the remote copy. Build UI patterns that let people understand that, don’t build things that require that they understand how a 3-way merge over an RPC protocol operated over HTTP/3 with a local cache works.
Filesystems use hierarchies for organisation. That’s great for about 10% of the population
I mostly agree but I think it’s still better to try to store it in a “proper” hierarchy and then make it accessible via LRU/search/tags/whatever, because then you at least have a fallback.
Recent pet peeve on a phone: I download a file via browser and then later (not directly) open it in another app, but no, both apps default to completely different parts of the filesystem, don’t share a history (might we well be a bug on either side) but in the end I can’t find my file and wish for a good old find / -name "foo.pdf"
, which is sad.
The Ribbon exists because the MS Office team found that 90% of feature requests that they received from customers were for features that they’d already shipped. They were shipping new features, but people weren’t finding them.
That’s amusing. My main objection to the ribbon was that it made it harder for me to discover/find features on the Windows version of Office. I actually liked the way the ribbon got implemented in the Mac version of the project. Having both menus and ribbon together has been an improvement over either one alone, for me. (Disclaimer: the only office program I frequently use more than a couple times a week is Excel; I’m not an expert user of the rest of the suite.)
They added a search feature in newer versions. It’s like the Mac one, only completely misses the point. When you search for something in the macOS menu bar, it expands all menus until the item is visible and then draws an arrow pointing to it, so you can find it next time. In the ribbon, it just tells you a button exists, but good luck working out where to find it next time. If you search for it enough, it eventually shows up on the home ribbon.
It did improve the situation with users talking about missing features while the features are already shipped: most of the user comments about MS Office I have heard within ~5 years of ribbon introduction were about features users knew were already shipped (and could not find in the ribbon)
They conflate persistence and communication.
It’s a trust issue. Persist to something I can communicate (at least verbatim) without your involvement, or you are the enemy.
The computer is supposed to execute the instructions the user gives it, not the other way around.
I like that my calendar tells me when I have a meeting.
But in most setups this is about a thing explicitly added or at least approved by the user.
Don’t use battery-operated devices.
This is especially odd. Why do you regard being always-on as a property of power-constrained devices?
This is a trust issue. Cord-operated devices are less power constrained when you let them be, and more power constrained if you yank the cord (or press the outlet switch).
How many users (even programmers) understand how a modern NUMA-aware scheduler works, or even how context switches happen?
Worse, how many users, programmers, or even CPU designers can think through all the implications of the out-of-order execution?
No, the entire point of building usable abstractions is that people can understand how to use a thing without having to understand exactly all of the implementation details.
Well, for the reason above, it’s also a trust issue.
It’s trust issues all the way down.
(emphasis is mine)
The desktop metaphor must be saved. It’s under attack!
Why I set out to build a desktop system operating system true to the desktop metaphor’s roots. One that removes the distractions, clutter, complexities, privacy issues, and encumbrances that have kept piling up.
I start scrolling down a little bit, the screen starts darkening, and a wild modal window appeared:
Be the first to hear about new stories from probono
Join Medium for free to get updates from probono sent right to your inbox.
Your email: [_______________]
This feels like the pot calling the kettle black…
This doesn’t seem to have much in usable or constructive ideas, just reactionary clutching onto 25 year old ideas divorced of the context of when they made sense. Could any other concepts make sense? No, just what the author is familiar with. It also doesn’t make a great case for that reaction, as David points out.
I had the impression that there was some super secret, evil plan to kill the desktop as we know it.
Seems like nothing has changed in 5 years.