I’ve been using Firefox 3.0 since b1 on my main development machine under Windows Vista and to be honest, I’ve been floored by all of the improvements the Firefox team has managed to squeeze into this release. For starters, performance is improved easily 10 fold over 2.0, especially when dealing with scads of tabs. That alone makes the upgrade worthwhile in my book.
Even beyond that though, the entire application just has a more polished “feel” about it. Beta 3 saw the introduction of an improved theme on all platforms. This new theme was most noticeable on Mac, where it made Firefox suddenly jump from a MacPorts-style outsider to running right alongside the “iApps” in terms of style. The improvement on Vista was a little more subtle, but none-the-less impressive:
It looks a little weird when you first examine it, but after using this UI for a while I’ve come to really appreciate it’s simple devotion to usability patterns. I’ve followed with passing interest the Firefox development cycle since v0.5, so I knew that they were spending a lot of time polishing the UI. I was actually one of those aware of new “keyhole” look long before beta1, so when it arrived I was somewhat non-plussed. Oh it’s certainly slick and a vastly more usable (and more attractive) UI than it’s super-power competitor, IE7. But let’s face it, slick only gets you so far these days. Windows Vista has about the slickest look of any operating system, and just look at how much people malign it.
Returning to Firefox though, I’ve been extremely happy with how well “put together” the whole app seems. It’s really become a coherant power application with a flair for the indulgent user. It’s come a long way since those early releases on Windows. I didn’t realize just how far it had come though until I installed 3.0b3 on my Ubuntu Linux virtual machine (click for larger shot).
My first reaction was, “Impressive, they finally managed to make it look like a real Gnome2 application.” Then I looked down.
I nearly wept when I saw these controls. GTK Linux has been without a browser which could do this literally since the beginning of time. I was certainly aware that the team was working on this, but I had no idea that it had been activated in 3.0. Native controls in HTML are incredibly important to the user perception of how well the browser integrates with the platform.
That’s what it really all comes down to: user perception. Jeff Atwood harps on about this constantly, but just because it’s oft-repeated doesn’t make it less true. It doesn’t matter what your application can do, just what your users think it can do. It’s all an elaborate illusion anyway, we just have to realize how complete that illusion really is. If a user looks at your application and thinks, “Wow! I don’t know what it is, but it looks powerful,” then you have succeeded as a developer. Your application could do nothing more than print “Hello, World!” an infinite number of times; so long as it is impressive looking, it will be a success (think iPhoto 1.0). Likewise, your application may desalinate water and hold the key to world peace, but if it looks wimpy, users will never give it a chance.
Now by “impressive looking” I certainly don’t mean just flashy. Anyone can Photoshop a fancy interface with lickable buttons and endlessly translucent animations, but that doesn’t mean the interface will “feel powerful”. The really important test is in those critical first seconds as the user makes his first few clicks through the application. The user needs to instantly understand the core functionality of the application and why it is better than the competition. Their eyes need to be draw to the critical areas and they need to be comfortable resting there for long periods at a time. They should feel an immediate sense of cooperation and team-spirit in the application. Things should progress as quickly as they can think (but no faster) and transition smoothly from state A to state B. Oh, and the application should look good.
Firefox on Gnome2 isn’t particularly flashy; it isn’t very lickable, and there’s no translucency. It does make a statement however, one which is immediate and unmistakably readable by the user: I can do whatever you need me to, and you’re going to like the way I do it.