> "UI designers", on the other hand, are more interested in creating software that looks "pretty", even if it's damn impossible to use productively
That should not be correct, it that is the case, then fire the guy! The objective of an UI designer is to make the UI intuitive and quick to use. We are talking about testing how fast people grasp the UI, how fast they can get certain things done. We are talking about making use cases, and see how those use cases are met. Eliminating clutter. Evaluating if is it easy or confusing to get from A to B.
Where this often go wrong is in the evaluation of who the users are. There should be use cases for each kind of user we expect should use the system. For an online shopping site that might be "unregistered users", "registered users", "inventory manager", "content editor", "translator", and so on. But when it comes to a "Desktop" application this become MUCH harder...
Try defining all the types of users of a Desktop... What does it mean? In real life, a carpenter or a metal worker would have a clearly different desktop than an office worker, but does those roles translate into computer different kinds of desktops in a computer? Should an accountant be considered a different kind of desktop user than a Java programmer? What about a gamer? Or a sales representative? Does the kind of desktop we have depend upon these distinctions? If not, what is it that does define distinct users of a "Desktop"?
I believe the problem here is that the "Desktop" in general was only an virtual illusion created to make people have a concept to easier associate things in the virtual world to the real world. We create archive folders, drop down indexes and so on. Virtual illusions to make us to associate with things we can take and feel. In several ways we are beyond this now too: we now have use cases for desktop as an assistant for example: get me file X in any of my folders, e-mail, document or whatever. Find me application Y. Read this text loud. Inform me when someone calls or sends a message. Call person Z for me. I mean - do you really want to select the phone application before asking the machine to make a call? - In other words, you do see that this is a newer role of a "desktop", right?
It is indeed confusing and complex, and I truly do not think a group of programmers would do better if they to design the interface by without input from others. I do think it will be UI designers that will eventually figure out of the confusion - maybe realizing that a cell phone is more or an mobile assistant than a desktop - I mean - you wont sit down with your phone and think of it as your desk anytime soon. The question is, how much of the old computer desktop today should resemble a desk, what should now be more as an assistant, and what else?
I can't say I have any modern favorite desktop; as for now I prefer Gnome2 or XFCE on Linux, the early interfaces on Mac OS X 10.4. Hopefully we get the right balance soon.