The Big GUI Rant
If you ask a present-day programmer why graphical user interfaces look the way they do, with desktops and icons and windows and menus (what they call the WIMP paradigm), they're likely to explain you how people can more easily learn to use software if it all looks the same and works the same, how they can explore the interfaces and apply their experience from one application to the next. How everyone is familiar with that type of interface by now, even indirectly, and it's what people have come to expect.
And it's all utterly wrong.
I had the opportunity to chat with a software salesman, who made a living getting outfits such as dental work laboratories to buy ultra-specialized business management software. You know the type: hideous Visual Basic applications with a hundred buttons slapped more or less at random over a big window, each in a different color. We had a chat about why her merchandise was made that way, and... wish I could say her answer surprised me.
Ordinary people are frightened by the grey uniformity of Windows apps.
Wait, what? Frightened? Yup... most laypeople are intimidated by computers. I blame decades of portrayal in the media as all-powerful electronic brains that rule the world, but never mind that now. A bit of color and life in a GUI helps a lot to change that preconception. Like in, you know, games. Or web pages. Or... like in Android.
Gee, I wonder why mobile devices are already overtaking PCs in sales.
And that's not all. For years now, I've been trying to teach mom how to use a computer. I tried to teach other people too, but not as extensively, so she's my favorite case study. Kind of a small sample, I know, but read on and tell me it doesn't sound familiar.
Menu bars have been invented to make all the commands of a software program discoverable by the user, right? Joke's on you, because your average computer user has never noticed windows have menu bars, let alone tried to click on them. They claim toolbars were invented for quick access, but I'm pretty sure it was because if it's not on the screen all the time, it might as well not exist for the user. Not that toolbar buttons are that great either, because people never remember what this or that icon stands for. There are tooltips... but see above: you have to hover your mouse over a control for a second for a tooltip to appear. I bet most people never think of it.
There's a corollary to the above: since most people can't remember toolbar icons they saw yesterday, do you really believe they'll recognize them in another application? Because in my experience, they don't. Every single app out there might have New, Open and Save, in the same menu, on the same toolbar buttons and with the same keyboard shortcuts... and people will learn them anew EVERY SINGLE TIME. I'm not the only one who noticed that, either.
You might as well just teach them those key combos right away. They may even find it easier. I know people who still swear by the WordPerfect keymap -- a user interface created some 35 years ago, before Apple decided to make things "easy". Which is an euphemism for sweeping complexity under the carpet instead of mitigating it.
And yes, one of the things that confuse people about computers is having many different ways to accomplish the same thing. Which is a bit of a problem, since people are differently-abled and of different minds, so you need those alternatives. I'm not sure how to solve this particular quandary.
But I do know one thing: modern GUIs based on the desktop metaphor are absurdly complex. The APIs are complex. The code behind those APIs is complex. The result is a bewildering mess that gives most people a headache (programmers are not neurotypical, to be painfully frank).
If we really, really want to help computer users, software needs to be reimagined. Keep apps simple. Take those 20% of commands that do 80% of the work, and put them on-screen at all times -- as text! The rest? Might as well be hidden behind a command line. For the advanced user, that may even be better than menus and dialogs. Less discoverable, yes, but advanced users know to read the manual, too...
Stop treating all people and all applications the same, and we might actually get somewhere for a change.