Why Do GUI's Look the Same?
MaxVlast asks: "I was browsing around Helix Code's site looking at their interpretation of GNOME when I found the program that they claim is 'the next step forward in GNOME applications,' Evolution. I was startled and upset--this program is, from what I can tell, a direct transfer of MS Outlook to Linux. It's bothered me for some time that the two major file and desktop managers for Linux are all clamoring to look more like Windows than their competitors, and in the scuffle, are missing some very effective paradigms (like Miller columns). Do people think it is good that Linux seems to be shooting for the 'looks like Windows, but without all the features' market? The popularly available apps seem to say so." Please pause for a moment before saying "But you've done this already!". Before the question was "Do new GUIs exist?", the answer to that was a resounding yes, but now the question is "Why do our applications still look the same?", even across platform boundaries and for two different applications?
Why does Evolution have to look like Microsoft Office? I'll buy the form-follows-function argument to an extent, but there are other alternatives to things like the standard menu/button bar and other GUI elements that could be applied to applications and at the very least, give users more choice in how they operate. Are there any projects looking to bring other not-often-seen UI elements like pie-menus and the previously mentioned Miller Columns [?] to our applications?
Well the people behind these projects seems to want to draw people to linux by showing others that it is as user-friendly as Windoze. However, Linux was not really ever ment to be a desktop platform! It was meant for the server, but people keep trying to use it for the desktop. And since the people writing the code are very familiar with servers, they don't have much of a user-friendly base except MacOS and (shudder) Windoze. If the people from Be or NeXT came over to write some stuff, linux could become a desktop OS. However, I think it rightfully belongs in the server market, where its true power is.
-Leo
1) Most coders are not artists. If you do not have a good sense of asthetics, your 'new' application GUI is going to be ugly and perhaps unusable.
2) Good HCI/CHI specialist are few and far between. They will not usually be found working for free.
3) Business interests. Corporate backers of projects seem to all have this big idea that millions will be made selling support to corporations that switch to Linux. Give the users clones of the defacto standard word processor/email client/office package and away we go.
4) A general lack of creativity coupled with a revulsion at the mere thought of reinventing the wheel. Unfortunatly people forget that the first wheel was actually square until Ogg reinvented it, this time making it round.
5) A lack of consumer commercial application development experience. The needs of users and programmers are very different. Students and former sysadmins often have poor design judgement simply from lack of formal app dev experience.
6) Id, Ego and Superego. Many programmers are quite full of themselves and will do things their way...right or wrong.
7) Reuse, reuse, reuse. The standard widgets are already geared toward cloned windows applications. Creating your own set of widgets prevents the immediate gratification of mocking up a clone of outlook or word.
8) X-Windows. No matter what anybody says, X-Windows is the single most powerful force holding Linux in the late 80s and early nineties. You can dress a chimp in a suit, but at the end of the day...he's still just a crap flinger.
Jeez I could go on for days, but...
I've noticed that MS Outlook and MS Outlook Express behave quite differently in many aspects ranging from featureset to HOW individual features work, even when they share the same feature.
Case in point: How they differ in handling opening messages. Outlook will keep each subsequent opened message maximized after the first one was, whereas Outlook Express doesn't seem to be able to remember such a simple thing, even after several major revisions. Amazing innovation there, eh?
Whether Linux/BSD apps wind up 'looking' the same as Windows apps is not as important as the question, "Will they WORK better than Windows apps?" Even aside from the feature-set, do things make sense? Are they consistent? Are options located in the menu pull-down common sense would suggest, or in the Microsoft 'innovative' way?
I love many of the features of Outlook, but hate how inconsistent many things are, and some of the simple lacks are quite astounding. I don't even use probably more than a third of the features it has, either, and I run into things all the time that bug me about it, which I cannot change. Simple things like automatically moving a particular account's email into a specific folder. Outlook _Express_ has had that feature for a VERY long time (since it's first version, perhaps), yet the supposedly more-robust product, Outlook, does not. WTF?! People say MS is good at code reuse, but you certainly can't tell it from Outlook and Outlook express. Maybe they share crappy HTML renderers, but certainly not many other basic things.
I have high hopes for Evolution and other upcoming email clients on Linux/BSD, simply for the fact that those platforms encourage software that is much more configurable than your average Windows app - Choice is Good, and is pervasive on those platforms.
I think many of the 'look' parts of most Windows apps have been shown to have good usability (the looks of the widget set in particular), and I'd like to see all the GOOD stuff brought over to Linux/*BSD for sure. In particular, I'd love to see that completely STUPID diamond-shaped radio button go the hell away - it's terrible from a usability standpoint. The round one from the Windows world (or wherever it originated) is great, and MUCH easier to determine the state of than the diamond one.
The HTML-as-application-interface idea is, IMO, quite horrible as it's so incredibly slow. It's slow in MS Internet Explorer, it's slow on Mozilla, it's slow on MS's new MediaPlayer (in fact, there's it's AMAZINGLY slow). It's just slow. I don't understand why those developers don't notice it. I'm on a 400MHz machine with 128Meg of RAM and a nice video card, and it's still friggin' slow. "Long live Galeon!" is what I say.
I originally thought the whole XUL thing in Mozilla was a great idea until I experienced it's speed. Or lack thereof. I know there are supposed to be speed enhancements coming up in a few more milestones, but I dunno - if it's THAT slow now, I'm not sure how much faster it could get - I'm quite doubtful it can get up to the speed where I wouldn't notice the difference between it and a regular app, and that's the speed I want. Extensive customization is _fantastic_ in a UI, but not if it comes at such a heavy speed penalty.
I think I measure the sophistication of a good GUI in these areas: extent of customizability, consistency, features, speed and usability. You can skimp on a few of them to some degree, but you need to make it a pretty well-rounded experience if you want to succeed. I'd say features and usability are typically the things that fall by the wayside in most GUIs, and features come in over time (and usability usually goes away over time - see also: Photoshop - too many features in a UI that was never designed to handle that many). With customizability often comes speed-dehancements, it seems, and with many features comes degradation of consistency, unless you're willing to restart your UI from the ground up when it becomes necessary. Photoshop could _certainly_ use that!
Another thing would be meeting the expectations of the target platform. Again, Photoshop is a great example of bad UI design. Photoshop started out as a Mac app, and you can still, to this day, see LOTS of interface weirdness in that application on the Windows platform that you'll never see in any other Windows application. There are numerous examples of weird widgets that have VASTLY superior analogues in standard windows widgets, but you'll likely never see them in Photoshop, I bet. Easy cross platform development is nice, but it should _NEVER_ get in the way of a good and consistent UI. EVER.
Okay, enough ranting for one night.
Because everyone has gotten so used to its interface, developers of other systems mimick lots of Windows tricks and features - some extend it, some strip it down, others improve it, but they all base their system on that well-known system, causing everything to look alike.
Why do they do that?
Because it's easier (not necessarily better) for the users! Learning can be fun and easy, but old habits are hard to break. Most users have grown so familiar with a Windows-like interface that operating such an interface is almost intuitive. The interface itself isn't, but the habit of having used it before is.
This also applies for ATM machine interfaces, mobile phone displays and buttons, etc etc.
I think the Linux and BSD operating systems should be all that we can stretch them to become. Forget the limitations that they show now. If Linux needs some work to become a desktop OS; why not focus on making it one in addition to a server OS?
So what, it doesn't have all the code in place yet to be the ultimate desktop. Doesn't mean we should leave it for dead when searching for desktop OS options. The whole idea of Linux is to implement code as is needed to facilitate applications.
And I sure as hell would prefer to use Linux as my desktop OS over Windows or MacOS (sorry Apple, I don't think your innovative enough these days). And when using Linux as my desktop OS, I want an intuative, feature-filled, and customizable GUI -- one that can rival atleast Windows, then MacOS; although I don't care if it's not all there from day one. So if we start by mimicking Windows type controls and look, so what? If you don't like the Windows look, hack in your own prefered look. Let's add some Mac and BeOS to the mix. For all the Mac fans out there: I hate to tell you this, but you would probably be better not waiting for Apple to implement it.
Better still; let's focus on customization of App. front-ends and window manager menu and desktop interfaces by enabling skinning through a full-feature front-end architecture that is not only lean but actually offers control and window placement options that a user can configure (WinAMP skinning is an example of an unworthy skinning architecture offering very little in the way of position changes of controls or enable/disable of controls). We need something better than basic skinning. We need to take some from what has already been done in AfterStep. What also comes to mind is the Mac and it's resource files and how they interface to the code to create dialogs and windows (DLG, WDEF: that can be edited through ResEdit). Although I am sure we can make a much better implementation of resource defenitions. Also another example of what we need is a Visual C++ style window and control layout tool that a user can use to make a layout preference for the application. The Mac never supported skinning fully, and the hacks that did work to enhance the look and feel, were prone to incompatibility as newer versions of the MacOS where upgraded. But in the Linux world, this shouldn't be a problem due to the nature of OpenSource, if we can agree on taking it to the next level by sticking with a few main standards and building on them. And looks like Gnome and KDE are going in the right direction. But if need be let's hack at X itself and related tools until it is fully capable of what Linux and BSD need: a real and fully featured desktop.
--- Delta0.. makes no difference.
Regarding the point in the above comment about Mozilla being slow. Well, the standard download IS a little slow, but this is currently a work in progress and certainly hasn't been tuned for performance. Would you rather have something that works and runs a little slow or something that screams and crashes all over the place. (yes, I know that Moz runs like a dog and crashes also at times!)
If you take the current (M16) source and compile it with GCC optimizations switched ON then the performance is greatly improved.
While we're talking about non-Outlook email clients that LOOK like Outlook, are there any non-Outlook email clients that WORK with Outlook's corporate workgroup stuff? Or does someone know where the API to build such a thing is?
The reason I ask is that I'm forced to use Outlook at work so that we can all schedule meetings conveniently over the Exchange Server. Outlook used as a personal client is not bad since I could fully manage all 50 billion of my email accounts from 1 program. The corporate networking mode won't allow you to send email from different accounts unless you shut down the program and login again under a different user profile.
Does anyone know of any Outlook compatible email clients that will let you do this? Or point me to the appropriate API's to build such a thing?
I can spell. I just can't type.
What are miller columns?
I did some quick searching, and came up with nothing but a bunch of newspaper columns by some dude with the last name Miller.
Are they a new GUI item? Like the text box, or the drop-down list box? but something new?
Is there a site that describes GUI items, somewhere?
Maybe Evolution looks like OutLook because the OutLook interface works very well. *GASP!* Microsoft puts a *LOT* of money in to GUI development. Not just what looks good, but they have a very large research dept. that does nothing but looks at these things. They test large groups of people and watch how they move through menus and do things. Maybe they just got it right. In my opinion it would be VERY hard to to out-do the OutLook interface. Not to mention a lot of the interface is configurable.
Even though I do have some issues with the way the standard Win32 GUI works, it does generally work. It's not perfect, but it does a job and it does that job fairly well.
As proof if this I'd like to point to the more recent trend of skinable GUI's. Winamp, Mozilla, MS Windows Media Player 7, Sonque, K-jofel, etc. They almost all allow the user to pick a new skin. Which means they get a totally different interface. Usually they have the same number of buttons and those buttons retain the same basic function, but they can me moved and changed in any number of ways. This can be confusing sometimes and, at worst, it can make the app totally useless.
Even slight changes can cause problems. For example, Quicktime 4 Player for Windows has it's own skinned look, but the play button is grey when the video is not playing, and white when the video is playing. This is the opposite of the general standard. i.e. it looks like you can't press the button when you are actually supposed to press it.
Granted there are a number of people that really enjoy making the desktop look a certain way, reguardless of useability. Check out themes.org to see tons of configurations and widgets that are hard to read and understand. Let those people do whta they want, but let me have clean black text on a white background and easy to understand icons and widgets.
My point it, it's more important to be consistant and have a functional GUI than it is to do something "cool" with the GUI, for most people.
fnord
I know that the average UI engineer is afraid to try things that are different for fear of ailienating the user. I have seen where the interface between comptetitors software were different and users customized the UI to look like the package A after moving to package B.
It is so much easier to know what to expect.
BUT...
I have also seen where the UI is the same, but an optional 'advanced' UI exists, such as with A|W's Maya.
Yeah, they have menu bars and drop boxes, but they also have hot-menus. The ability to hold down the space bar and chose with the mouse anything under the title bar menus is nice.
I think that for a new UI to be good it needs to be backwards compatible or be so easy to understand that it becomes second nature in 10 minutes. People drop programs, sometimes, not because of lack of features, but not being able to get to the features easily.
-I just work here... how am I supposed to know?
I suppose it's the old VHS vs Betamax debate. However, someone could design a GUI to break away from the mould at the risk that no-one would use it. Sawmill is a good example of a WM which tries to do this with all sorts of themes without denying the option of keeping with something familiar, and applying similar themability to applications would probably give people the option of inheriting features from their favourite GUI.
The Xerox system that the early Mac team saw bears little resemblance to what we think of as a modern GUI. For better or worse, the creation of the Macintosh Human Interface Guidelines, represents the single most influential event in GUI history. Microsoft implemented poorly what Apple had created, then brought it to the masses.
The idea of a GUI is obvious, but gods live in details, and that is where Windows and the MacOS differ. What's needed now is close study and revision of the "laws" of a successful GUI.
Look at Palm. Brilliant GUI in 160x160 pixels.