The desktop metaphor must be restored. It’s under attack! (2020)

8 points by manuel


david_chisnall

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.

acatton

(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…

calvin

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.

FedericoSchonborn

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.