Behind Technological Representations
This is how a programmer thinks. They've got this technology they're using, these "applications" and "windows" and "tabs" and "scroll bars". They've got these resources, these "web pages" and "files". And they've got their limitless self-centeredness and self-concern coupled with a total inability to judge good versus evil.
It doesn't matter to them that you don't care about files or pages or windows or tabs. It doesn't matter to them that your hard disk has more than enough gigabytes free to hold cached copies of several million pages. It doesn't matter to them that after reading a "page", you might secretly desire to forget about it entirely. It doesn't matter to them that you don't want to have to worry whether to "save" or "bookmark" or "close", or even to know what these things mean. Never mind "naming" and "organizing".
None of that's important to a programmer. None of it CAN BE important since your mind, your wants and needs are an impenetrable black box to them. What's important to them is the stuff they're dealing with. It doesn't matter to them what YOU are dealing with in your mind. It doesn't matter to them what YOU would LIKE to deal with. It doesn't matter what OBJECTIVELY would make YOUR day easier. The only thing that matters is themselves. And the notion that this is evil is utterly beyond them since the whole concept of objective good and evil is beyond them.
Technology is what they're dealing with and to them it's perfectly obvious that THEY will impose IT upon YOU. And if you squeal and suffer and are in pain then [smack] [smack] SHUT UP!! DON'T YOU KNOW TO BE GRATEFUL FOR WHAT YOU'VE BEEN GIVEN YOU UNGRATEFUL MENTALLY RETARDED IDIOT?! WORSHIP THE TECH GODS!! WORSHIP THEM!! PRAISE THE ALMIGHTY LT!! PRAISE THE GLORIOUS RMS!! PRAISES BE!! And goodness save you if YOU get angry at THEM.
So what's behind technology metaphors? Egotism, evil, and total moral blindness. A lovely mix of mental artifacts that yields such lovely results.
What Sustains Metaphors And Icons
Now, the "better" sort of programmer thinks much differently. They know that you matter. They know that technology metaphors suck. Well no they don't. What they know is that technology metaphors are only okay FOR THEM. They are keenly aware that you don't give a flying fuck about their technology. Let's all have a round of applause for them being aware of this most basic and obvious fact of life. [applause]
The problem is that your mind, your wants, your needs, your desires, and especially your goals, and thus by implication the entire hypothetical space of possibilities that would be useful to your goals ... remains utterly impenetrable to them. They don't have a single clue. They are entirely and forever totally fucking clueless. BUT that won't stop them. No sir, it won't!
You see, they are superior beings. I mean, it's self evident! They're programmers who can program, who can deal with the technology. And you ... can't. Yes you don't give a flying fuck about files and closing and naming and windows and tabs but there's an obvious and self-evident reason for that. It's so obvious even a fool could understand it. YOU ARE AN IDIOT.
The reason you don't care about technology isn't because it has absolutely fuck-all to do with your work or your goals or anything else about you. No, it's because you CAN'T deal with it. If you could then you'd be a programmer, wouldn't you? It's so fucking obvious! ANYONE would become a programmer if they. only. COULD.
But you can't because your name's Cletus or Jimbo and you've got an IQ south of 80. But don't worry your little head Cletus [pat on the head] the programmers will save you! See, we're going to make this "deletion" object into something you're familiar with. Hmm, a trash bin. Yeah, you're familiar with that, aren't you? If only as something the city folk use. And see these "folders"? Just like the ones your cousin Jed the high falutin lawyer uses in his "office"!
No Cletus, it's not "patronizing" because we all know you've always had a problem with lerning. There's no way you could lern what the "deletion object" does or how to recognize it if you weren't already totally familiar with it from the physical world. Your mama always said to leave the thinkin' to the bright folk.
So what's behind metaphoric representation? Hubris, disdain, condescension and false humility. And it creates such lovely results too! After 10 years on a computer, you're still dealing with a "desktop" and "folders" and a "recycle bin". Not you know, a 3D space with orbiting objects and a time machine. You don't need that! Do you? Umm, really? And your name's not Cletus? It's Sir Isaia Throckmorton?
What Powers Idiomatic Representations
Idioms are arbitrary so they can provide no inspiration nor guidance to structuring an interface to software. And software itself can do literally anything since a computer is just a machine that imitates other machines so there's no guidance to be gained from that either. The only guidance can come from the mind of the user itself.
Idiomatic interfaces aren't made by programmers. They can't be made by programmers since coming up with the ideas requires fathoming the unfathomable mind of the users. You have to be able to figure out what the user is thinking when they're refusing to tell you. You have to figure out what the user wants and needs. You have to figure out if their wants and needs further their goals. You have to figure out whether their goals make sense. And if they don't then you have to figure out what their goals should be given objective facts of society and psychology and morality.
And figuring out all of these things when the user won't tell you, when they CAN'T tell you because they don't even know ... well, that's a bit of a pain. But if you have synthesis, if you're spontaneously and effortlessly creative, then you will just barely be able to figure them out. It helps if you've studied human psychology, a bit. It helps more if you actually know the human mind better than any psychologist. But in order to be any good at it you need to be an intellectual who'll play around with pure ideas, for fun.
In order to design an idiomatic interface, you need to figure out human minds and then extrapolate them to entirely hypothetical situations. And in order to do that, you're going to need to possess in your own mind every cognitive faculty which human beings are capable of. You're going to need to be capable of logic because some human beings, some of them your users, are capable of logic. You're going to need to be capable of synthesis because your users, some of them, are capable of synthesis. You're going to need to be an intellectual because some of your users are intellectuals. You're going to need to be able to think anything because you need to be able to outthink EVERY human being. Good luck.
There aren't many people who fit the profile of systems designers. But that doesn't matter. It doesn't matter how few or how many there are. What matters is that we need them. We NEED them to design our complex software systems. We need them to design our user interfaces. And above all, we don't just need systems designers. We need systems designers desperately.