My summary of C4 includes what I think are the main points from John Gruber’s “HIG is dead” talk. (For those who aren’t famiiliar, HIG stands for Human Interface Guidelines, and is a long-lived and ever-violated prescriptive document from Apple). In that entry, I forced myself to (mostly) reiterate what I took away as the intended messages from the various speakers. But these guys got me thinking, and I’d like to expand upon my reaction to some of the most interesting ideas. I’ll start with Gruber.
Is the HIG dead? I don’t know. But Gruber’s talk was thought-provoking, and I’m feeling pretty convinced right now, high on sleep deprivation and freshly returned from the fray. At the very least I think it’s time for us crotchety old engineers indoctrinated by System 7 or earlier values to mellow out a bit. I got so used to defending the party line for so many years, that I stopped questioning whether it was worth defending. Taking a step back now, I have to wonder why none of us, noticing that Apple was “constantly violating its own HIG,” stopped to consider whether we were the suckers for being so hung up about these problems on their behalf.
I’m picturing some Rowan Atkinson character standing alone on a sinking boat, foolishly but adamantly refusing to bail water as his knees, and then waist, succumb to the rising tide. “Queens order! Bailing shall not be performed by officers! Somebody bail this water at once! That’s an order!” He’ll die, but he’ll die having been right. Is that your fate?
Cry all you want, but the ship is sinking. Gruber presented two high-level alternatives for dealing with this situation, so that we continue to produce mechanically and visually beautiful applications (paraphrased, again because I have no notes):
- Synthesize an implicit HIG based on prevailing standards.
- Do your own thing with gusto.
But these are optimistic instructions. They only cover the decisions that lead to a beautiful app. By putting the choices into a context where the ugg-tastic choices are also visible I think we can learn something, and obtain some calm in the face of these “changing times.”
I propose that Mac developers have always been neatly divided into two groups: those who give a damn at all about HIG, and those who don’t. You know which group you fall into! I further propose that this high-level differentiator neatly and naturally directs developers towards either Gruber Choice 1 or 2. And never the twain shall meet:
- Developer gives a damn at all about HIG:
- Follow HIG to the letter (knee-tastically ugly result).
- Synthesize an implicit HIG based on prevailing standards (beautiful result).
- Leveraging X-Windows, Java, and tcl (ass-tastically ugly result).
- Do your own thing with gusto (beautiful or ass-tastic result).
Extemporaneous charts don’t lie. Obviously you can make beautiful applications whether you believe in the HIG or not. But most of us prefer to play it safe, and don’t have the confidence to do our own thing with complete gusto. So for most of us the decision is the same as it’s ever been. We believe in the HIG because it helps us make decisions, but we also recognize that changing tides require changing our own personal rules about these decisions.
If you’re a developer who gives a damn at all about HIG, then you’ve already been either following it to the letter or synthesizing an implicit HIG. The only thing that’s changed now is the sheer amount of adaptation that may be required in formulating this implicit HIG. There’s a lot more work adapting to the current tides. Bail faster, peon!
Those charmed and beautiful people who can do their own thing with gusto and obtain beutiful results … bastards! I mean, more power to them. But they’ve always been doing it and getting away with it. They were doing it on System 7, in their own special way. They’re more resilient to the changing implicit HIG, because they choose not to abide by it. Only those of us (the masses) who rely on some form of HIG advice need to adapt furiously in times like these. And the first step toward a successful adaptation may be, as Gruber suggests, recognizing that the world is comfortable with all kinds of freakin’ buttons. And gradients are good, mmkay?
Feeling glum about the implicit HIG? Don’t worry – unlike the real HIG, this one is a sliding scale arrangement. It’s a sort of “gusto and beauty” plan with a safety net. You only adopt as much from the prevailing standards as you feel comfortable with. And if you mess up and end up erring too much in the direction of “HIG to the letter,” well things could be worse. You could look like an ass-tastic Java app. And when some crotchety old-timer challenges your UI and claims it doesn’t comply with the HIG, you can be Apple for the day and smugly reply: “it complies with my damn HIG!” and get back to work.