One recurring theme in Windows software is the operating system putting its needs paramount to the user’s needs — treating the user as an annoyance rather than a reason for the whole thing to exist. This isn’t something you can “friendly up” with a better icon set.

Here’s the example that brought this to mind: when editing web pages in Visual Studio, you can switch between HTML code view and “design view” — a pseudo-WYSIWYG mode. But when you switch from code view to design view, it often loses the spacing I’ve added to make the HTML more readable. The code editor does the same thing: it wants to automatically align my code, but won’t let me easily override its sense of order.

In both cases, the software is putting its needs ahead of mine. I like to put test code out to the right, rather than aligned with the hierarchy. VS won’t let me. Because that would make the code untidy, from the computer’s perspective.

The worst-case version of this: crashes. The absolute worst thing a computer can do at any given moment is lose what you’ve been working on. Yet for decades Windows users just accepted this as a fact of life. (Just did a select-all copy here, in case the browser goes down while I’m writing. For example.)

It’s a legacy problem, too. The more years you treat your users like crap, the more likely the users are to expect that’s just how it is.