I've been using my new Thelio, outside of work stuff, exclusively for the past week, trying to retrain my keyboard and UI habits and trying out apps to replace (or add) to the functionality I had on my old Mac Pro.

In most ways it's been, "So far, so good." However, I've come across a few warts and annoyances.

And most of those warts and annoyances come down to one thing: Linux GUI apps are badly designed from a usability perspective.


Not that they are unusable. And, I'm sure, if typical Linux or Windoze apps all you ever used you're wondering what I'm talking about.

But I just came off of nearly two decades of Mac use. And the difference cannot be more profound.

There's a reason for that and it comes down to the fact Apple focused so hard in the early years on Mac usability.

Some history: In the mid 80's I did a stint of Mac development. My first week was spent reading Apple's 'Human Interface Guidelines'…


A modern version of that document still exists!

> developer.apple.com/design/hum

The HIG did some very important things:

* Provided clear design principles and patterns based on actual user studies

* Put a line in the sand establishing what *was* and what *was not* a true 'Mac' app (the fact Apple itself broke those guidelines [cough, cough, Hypercard] is beside the point)

* Explained the reasoning for the guidelines, so you better understood when they *didn't* apply


One of the big principles in the early version of the HIG I read back in the 80's had to do with modality. Not 'modal dialogues', but when a window or a UI component changes how it looks and acts based on the user selecting a mode. For example, if you switch from 'view' to 'edit' mode.

The modern HIG doesn't delve into this subject quite so much, but the big takeaway I got back in the day was: Don't add or remove things when the mode changes – simply enable or disable them instead.


The point here had to do with how humans learn to do tasks with their hands and relates to muscle memory. If something is always in the same place your hands will know where to find them without needing to engage your brain.

If they are disabled due to the mode? No worries, nothing happens. If they are enabled, then 'goal achieved'.

On Linux you often see the same kind of pattern based on key combinations. Which is great, except:

* They aren't consistent from one app to another


* Learning a new app is still a chore, since the UI flow and key combinations are often not well documented

So, here's my critique of the Linux apps I've been using: Not only do UI affordances come and go based on the mode, they sometimes move around the window and how you interact with common things like lists can vary from app to app.

They lack good guidelines. It's not bad UI design so much as chaotic UI design.

And, coming from the Mac world, this really bugs me.


Related: I've said this before, but I'm becoming more and more convinced app developers shouldn't create GUIs for their apps! Instead they should create command line apps and provide a comprehensive API.

Then others create GUIs for those apps using the APIs and people could choose which they prefer. Such a development model would allow those who are good at UIs to focus on that part of things; allow GUIs aimed at niche users; and eventually evolve better UIs.


Note: OTOH this would mean app developers would need to properly manage API changes and maintain better backward compatibility – something else open source developers generally aren't really good at…

Sign in to participate in the conversation
Rusted Neuron – an Intentional Community

Rusted Neuron is a Mastodon Instance operated by Jack William Bell