Matt's Mind

Thursday, December 29, 2005

Mac: one year on

I've now passed my one year anniversary of switching to a Mac PowerBook as my primary home computer, and I'm still loving it — this is still by far the best computer I've ever owned. But, as they say, familiarity breeds contempt, and although I certainly haven't developed contempt for the Mac, it does seem that one year of use has been enough to learn about the Mac's warts as well as its beauty.

One of the deeper problems that has been bothering me about the Mac interface is how much the look of the desktop is becoming muddled with differently-themed applications. It's worrying because it seems that the applications on the Mac may have started to move towards the visual hodgepodge that is the norm on Windows, where I spend most of my working time. And, worse, it's often the developers at Apple that are the worst offenders in violating their own Human Interface Guidelines.

Just a few trivial examples:

  • Safari in brushed metal, just wrong.

  • Finder, either brushed metal in one mode, or Aqua in another, more than wrong, just stupid ... "what were they thinking?" stupid.

  • I won't even comment on Mail's toolbar changes in Tiger.

Don't take it from me: this is not just my personal insight, many more experienced Mac-heads out there have been bagging Apple about this. The Woz himself (Steve Wozniak) commented in a recent interview that he believes much of the original Mac ethos is gone:


... the big companies, Microsoft, Apple and AOL, they tend to turn out the crappiest products, you know, software-wise. The ones that have the most bugs, the most items that are supposedly in there but don't work. The most things that are left out because they aren't finished. The most things that are inconsistent with the way they did their last program. I get the worst, worst software almost always from Apple.
... It's like, there was such a cleaner, good approach to it and they did this stupid thing. But remember, the people who wrote the OS X weren't the people who developed the Lisa and Macintosh. Those guys are gone.

The original Mac purists aren't at Apple any more: they've been replaced by Job's cohort of ex-NextStep developers.

John Gruber has also written about this in several articles, pointing out various questionable design decisions (e.g. "poofing") that are very much against the Mac ethos, and noting that Apple now have introduced at least four OS X application themes. This was before iTunes 6.0 introduced yet another one.

Bottom line: consistence, elegance and usability have always defined the Mac platform &mdash that's something that even recent switchers to the platform like myself understood was the reason for its existence. I'm not against Apple developing new user interface approaches, far from it, but I am against them randomly applying changes with no common underlying logic. These decisions, while they may seem superficial, mark a turning point if they indicate the platform's champions no longer care about the "ethos" behind the Mac. The Mac interface [1] seems to be slowly deteriorating.

I'm hoping Apple is aware of this, and have plans to renew the look and feel in OS X 10.5. OS X 10.0 loudly debuted with colourful, lickable, stripy Aqua which was visually striking and perfect for rapidly making a splash — it turned everyone's head. Since then Apple have gradually toned things down — e.g. they've all but removed the stripes and transparency — but kept the colourful buttons and added a muddle of visual styles.

Colour has never been used well in the OS X interface IMHO. For example the red "close window" button is overly distracting and the blue Aqua buttons also stand out too much over the important content. But Aqua has at least avoided the overload that many Windows apps inflict, bristling with colourful buttons on all window edges and floating palettes [2]. And Apple provides the "Graphite" option for those who find the colours distracting.

I would like to see Apple start to back off from colourful, transparent and gaudy and go for modern, minimal and sleek. At the same time in 2006 as Microsoft, in a bid to look modern, is stuffing Windows Vista with arrays of gaudy icons, gratuitous glassy transparency and animated everything, Apple could outflank them by simply redefining "modern" as it did in 2001 with OS X 10.0 making Windows XP look like a Fisher Price knockoff.

One way they could go is best embodied by a theme I saw being used by one of my favourite Mac bloggers, drunkenbatman, in screenshots of his desktop. What intrigued me was how minimal the theme was and how it erased Metal and tamed Aqua while looking elegant and letting the content in the windows take precedence over the frame decorations. I tracked this down to the "Milk Chrome" theme for ShapeShifter by Max Rudberg and installed it yesterday and have been absolutely loving it. It's erased a whole array of visual irrits that have been bugging me for a while, including banishing Metal for good. Unfortunately it can't fix Finder: only a bullet to the head could do that.

Here's a screenshot of my desktop with the new theme (click to enlarge):



Note how it erased Metal from Safari and the Calculator and even brought Mail into line somewhat. The white buttons and background get out of the way without being harder to access — the shading, shinyness and outlines of the controls are enough. The whole feel is actually a little like an iPod in fact: solid white rounded plastic controls.

There are some minor rough edges: the button press animation could use some work — it makes the button appear to recess into the background, but isn't quite noticeable enough; and the theme messes badly with iTunes 6, which I guess is not surprising since iTunes apparently has its own custom look and feel.

As far as I'm concerned, this one's a keeper until Apple can do better. It doesn't do anything to fix the various functional issues highlighted by Gruber et al, but cleans the visual appearance nicely. It does disturb me that I feel I need to go hack Apple's look and feel: after all they're supposed to be the masters. It will also concern me if Apple does not take the criticisms of well-respected pundits like Woz, drunkenbatman and John Gruber into account. Apple have been very quiet about OS X 10.5, so I can only hope that, disregarding the usual Apple fascination with secrecy, it's because they have something great in store.

Footnotes:

[1] That's "user experience", for any Microsoft marketdroids who might be reading this.

[2] What is it about Microsoft's button fetish anyway? Since they "innovated" the toolbar on Office some years ago they've gone utterly nuts with little nobs and buttons. When I first got the Mac and ran Entourage I could immediately tell it was a Microsoft app, with tiers of horizontal and vertical toolbar buttons stuck everywhere. This was one of the reasons I switched to Apple Mail: it appeared they'd done some work on making the interface easy rather than busy. It's like those remote controls that actually have fold-out flanges to hold extra arrays of obscure buttons.

Wednesday, December 28, 2005

AppleScript ... argh!

I just spent more than an hour wrestling with AppleScript, a language that is supposedly easy to use. Well maybe it is easy read, but it's not necessarily easy to understand.

Quick quiz - what do you think the following prints?:

set ch to "."

if ch ≠ "." then
log "not a dot"
else
log "a dot"
end if

A cigar if you went with "a dot". Now, what will this print?

repeat with ch in characters of "a."
if ch ≠ "." then
log "not a dot"
else
log "a dot"
end if
end repeat

You'd think that since I just wrapped the previous example inside a repeat statement over the characters of "a." that you'd get "not a dot" and "a dot". I'm sure that by now you will have guessed that this is not what you get, or I wouldn't be whinging. In fact you get "not a dot" twice. After reading the AppleScript docs regarding characters, strings, loops and boolean operators I'm still stumped.

The solution? Add this after the "repeat":

set ch to first character of ch

This makes me think that this is some sort of variable type issue, but I really can't be assed spending any more time on this.