Non-Native UI Sucks

It's common knowledge that Mac users prefer Safari to Firefox. It is the browser bundled with the OS – and we know how that generally works out. But it's not just a monopoly play; there are legitimate reasons for Mac users to choose Safari:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2007/02/non-native-ui-sucks.html

If you want to see non-native look and feel, try using IE7 with the Windows Classic style:

http://img57.imageshack.us/my.php?image=uglyiecw5.png

Buttons are randomly strewn all over the place, the new tab icon is totally invisible unless you mouse over it, classic beveled buttons are mixed with shiny new rounded style buttons, even the tabs don’t match. Compare it to Firefox 2.0 using the Whitehart theme:

http://img230.imageshack.us/my.php?image=nicefirefoxdv3.png

Unintrusive, consistent, clean. The IE7 UI feels like it’s trying to jump out of the screen and hit me in the face, but the Firefox UI just sits in the background letting me focus on the websites I’m looking at. A good illustration of this point: the screenshot of IE7 is 21.3KB, but the screenshot of Firefox is only 13.9KB, despite having larger dimensions.

Yes, I am using a theme that has to be downloaded and installed separately from Firefox, but from what I recall it looking like before installing the theme, I think the same argument can be made out-of-the-box. Firefox beats IE7 when using the Windows Classic theme.

Dead-on… except that a well-designed replacement UI can do awfully well. The trouble is what you get to in the second half - that most UI is not well-designed. The example you point out about Java is glaring because all of their UI has been complete and utter trash.

But then, look at Eclipse. Really, look at it:
http://images.google.com/images?q=Eclipse%20Java

It’s not quite native, and not quite… not. Eclipse is actually a very good example of how universal UI can actually succeed. For the most part the Eclipse UI is consistent cross-platform, and not gorgeous, but usable and non-ugly. And, there are portions of the UI that are platform-specific; for example, on Windows it’s easy for a Visual Studio developer to switch into the Visual Studio shortcut keys.

So, it can be done, and Eclipse is an ironic example of it somehow being done in Java no less. That project has had a LOT of work done to get it to where it is. But it can be done.

Generally I agree, but really who cares? Desktop applications are going the way of the dodo, pretty much all the OS does for most people these days is run a word processor and a browser, and in a web context we are used to non-native UI.

“It seems really silly (and, yes, shallow) to pick a browser based on the aesthetics of the the buttons.”

Jon, the buttons that Safari (and Camino) use are more than just aesthetic. The functionality of the buttons is different between Windows and OS X. So using the built in buttons gives a more consistant look AND feel for your app under OS X.

Personally, the functionality of the select box under OS X is broken for me. You can’t tab to them on forms (at least browser forms) and the keyboard selection doesn’t work the same as Windows or other platforms.

“Desktop applications are going the way of the dodo” - All that is changing is the way we develop desktop apps. Now we develop them more like web apps, using markup and distributing them over the web.

IE 7 on vista (or XP) is appalling. Its implementation of tabs is a joke and its layout is terrible. Buttons thrown all over the place, ugly GUI, fixed layout etc. (Nearly as bad as the Office 2007 GUI.)
Makes IE 7 unuseable for veteran IE users.
Firefox is far superior on Vista and runs extremely well. (Its never crashed on me yet!, not like IE 7)
Picking an app because you like the buttons or its color is ridiculous. What about functionality and useability?

I use Camino on my Mac, a Cocoa native application using the Gecko renderer from the Mozilla project. A pretty good compromise, I find. I found the same things as you did when I was trying out Firefox on the Mac, there were just small details off everywhere (the preferences are particularly out of place, as I remember).

@Mike:
Both Ruby and Python have bridges to cocoa on the mac. See: www.rubycocoa.org for example. So you can use native widgets. (Actually Python supported native widgets on the even before OS X).

I only use firefox. I also recently got my first mac, and downloaded fire fox after two days of strugling with safari talk about native UI. Nothing feels more native to me than fire fox and we can thank IE for being so shitty, and driving me to it. Nothing beats searching for text one letter at a time at the bottom of the window, so in invasive, unlike IE6 where you get a big box in the middle of the window and no option at all in safari.
However my keyboard does on occasion stop working when i have flash loaded with fire fox. Bot there is a simple fix ctrl+tab or apple+tab and then back into browser.

I remember thinking the same thoughts when WinXP just came out and apps did not use the native look and feel. I kept seeing those ugly win2000 buttons spoiling my view.

I actually prefer a minimal UI to dropshadowed gelatinous animated cellophane flying all around the screen. Most users really care more about speed, ease of use, and reliability. A successful UI is simple and highly functional. Cuteness can be charming but the charm wears off quickly when simple and highly functional aren’t there.

Most users are probably already used to a non-standard mismash of UI design and could care less about how buttons look today. iTunes on Windows, any IM client, and modern CD writing software are great examples. Everyone wants to reinvent the UI and look like the next big futuristic whatever.

Regarding the Firefox complaints, I wonder if the commenters here having issues with Firefox are:

  • Using the latest (or event recent) version
  • Using some addons that might be causing trouble.

I haven’t had memory leaks in FF on Windows for some time now. And the last few times I had trouble, it wasn’t Firefox per se, but a buggy addon. Addons are great, but its rash to blame some third-party addons’ bugs on the whole browser, take responsibility for evaluating them if you’re going to customize your browser!

But this works both ways… I still run Win2k on most of my machines and Firefox looks better than Internet Explorer v6 on that OS. And of course, it has more functionality too.

I suppose this sort of thing will happen less and less now that operating systems have become so rich in graphical bells and whistles.

The beautiful thing about firefox is that it is completely customizable. I’m sure with a little bit of tweaking the UI buttons could be changed. Hell, I’m sure a quick google search would find a theme or extension that does this for you already. Firefox isn’t supposed to be robust on its own, that’s why it has extensions.

I use Camino on my Mac, a Cocoa native application using the Gecko renderer from the Mozilla project.

Ditto, and the nightlys (using Firefox 2.0’s engine) are stable enough for my usage.

I’m a new Mac convert and I won’t even consider using Safari until it has a Google toolbar. Plus I do a lot of work on Windows and occasionally Linux. Having one browser that I can use everywhere is more important to me than native Cocoa controls on my web pages.

A lot of people focus (or write off completely) on the ‘Look’ part of ‘Look and Feel’ to the detriment of ‘Feel’.

Feel is much more important than look. Behavior is more important than appearance. When you use a Java application on Mac OS X - even if it has the native ‘look’ and managed to figure out where to draw the menu bar - it still feels different. The behavior of text input, the sluggishness of tabs, the awkward feel of drag and drop… Eclipse behaves better than most, but it still feels a bit ‘off’. But as looks become more stylized and unique per application (witness the clubbing iTunes 7 took from the ugly stick), it’s going to be the feel of things that matters. I don’t mind so much if your app draws slider bars in a cute and funny way. I do care about what happens when I click in the empty space. If it performs a “scroll to here” move when I expect a “scroll down one page” move, I get pissed. I remember getting so frustrated with WinAmp skins over issues like this.

But what’s really important about native widgets is the fact that the Cocoa text system has some pretty powerful features, reaching back into the NeXTStep days. All Cocoa apps can share these features automatically: spell checking, auto completion, some emacs style movement and kill-yank key bindings. Safari and OmniWeb’s text fields all pick up these features. And you can install Input Managers to get even more power out of all text managed widgets. I use “Edit in TextMate” all the time. While writing this comment, I hit ‘control-command-e’ after the second paragraph so that I could write out my thoughts in a full text editor, giving me more space and focus. Every time I hit ‘save’ in TextMate, it’s saved back to this comment box in Safari. This is very useful with web apps like GMail and Basecamp where one can use the Mail and Textile bundles while writing a message. And this feature extends to other applications like Mail.app, TextEdit, even the filename field in “Save As” dialog boxes. What’s the point of being able to bring a filename into a full text editor for a few seconds? Being able to fix gremlins, apply a uniform case, etc.

Native Cocoa text widgets get a lot of power. Firefox can’t take advantage of this at this time.

But also, Carbon text widgets don’t get this behavior either. And I believe that Camino, while rendering native Cocoa widgets for windows and toolbars, renders Carbon widgets in the HTML… At least, that was the behavior in some of the 0.x versions. I haven’t used it in a while. And yes, this is another weird little inconsistency within the Mac OS stemming from its union of many legacies.

I use firefox on vista and have had no speed problems at all (much less with scrolling). Sure, firefox still has the memory leaks it has always had, but it works fine for the most part. I’m also using this skin: http://www.deviantart.com/deviation/44508564/ which looks pretty nice I think.

And I really can’t stand IE7. The new UI is horrendous and far less usable than IE6 or firefox. The tabbed ui implementation sucks.

That is why Firefox sucks on Windows as well. The location bar, all the toolbar buttons etc just simply look and feel WRONG. GTK tries to mimick the native stuff but it fails utterly. It should be considered a BLOCKER level bug on the Windows port. The usability is just plain trash.

Other “hyped by engineers/nerds but actually horrible applications on Windows or Mac” are Gimp, Gaim, Thunderbird and Audacity.

That is why Ruby and Python btw suck majorly too. They don’t come up with any GUI library in the standard libraries. All they offer commonly is TK. And TK looks and feels wrong not only on Mac/Windows but on ALL platforms. Sheesh, what retards.

I really prefer native UI, but why can’t anyone do that now on a webpage? They are always limited to using either custom buttons, or custom browser settings.

Last I checked, IE could not:
Configure itself by typing in about:config (to turn that nasty D/L window off)
Right-click on a word and select "search google for “word”"
open a new tab with one click from the middle mouse button.

I’ve had CPU usage problems with Firefox (when it runs in the background), but it’s not bad enough to make me go back to Mozilla either.

Is it about native UI, or just good UI? If the native Firefox UI was beautiful, consistent, and had the same level of attention as a world class operating system UI, would this be a moot point?