It was created in 1992, has been continually updated the past 16 years and is now 402 pages in length. Apple's HIG, short for Human Interface Guidelines, is unique amongst technical documents in that it is seemingly referenced equally as often by application developers on the Mac OS platform as by regular users. Ask a Windows user if the application they're currently using, say FireFox, adheres to basic Windows application design guidelines and you'll be met with a blank stare. Ask a Mac user the same question, and a significant many will sound off about just how poorly (in the case of FireFox) the application adheres to the Mac HIG. But don't take my word for it. Googling for the terms "FireFox Mac look and feel" yields many articles discussing the issue. FireFox developers have even gone out of their way with the latest version of the application to address Mac user's look and feel concerns specifically.
The HIG is an odd beast. It is a wonderful treasure trove of common sense design tactics. The vast majority of Mac applications follow the HIG basics, thanks in large part to Apple's user interface development tools making it easy to do so. User Experience (UX) buffs on the Mac pride themselves in memorizing some of the more esoteric parts of, what to them, is a bible to be literally interpreted. But when it comes to user experience, consistency and technological evolution are often at odds with eachother. On many occasions, the greatest violator of HIG policies has been Apple itself. When the "brushed metal" look started cropping up on Mac OS X, UX enthusiasts decried the break in consistency with Aqua, which the HIG said was to be the one look and feel to rule them all. Tasked with creating fresh new applications like Garageband and Aperture, Apple more often than not chose to come up with new user interface themes that took advantage of the more powerful hardware they would run on. By the time Mac OS X 10.4 Tiger rolled out the door, the look and feel of the OS had been balkanized with several different looks available to any given application. In some cases, the HIG was updated to reflect the new choices Apple had made, thus granting permission for 3rd parties to follow suit. In other cases, it was left as-is, with the UX enthusiasts left scratching their heads looking for the guidelines which allowed for a program like Safari to utilize the brushed metal theme.
If you're a Windows/*nix user that hasn't been exposed to the Mac for any significant period of time, it is a bit difficult to appreciate the anal retentiveness of Mac users when it comes to their user experience. This is a group of people that went berserk over the shape of the iTunes 5 window corners. So much so were Apple derided by this mistake that iTunes 5 evolved into iTunes 6, complete with proper window corners, in just over a single month! There is something about using a Mac and being exposed to a wonderful user experience that turns people into armchair UX critics. Speaking as a software developer with as much design sense as well...uhh a software developer, I would not have believed that I would be writing an entire blog post about the topic of user experience (nor would I have believed that every computer in my house would be a Mac). But hey, Macs have a strange effect on people.
Now, in writing this, I do have a point. That point depends on who you are. If you're a Mac user, try to appreciate that a great many software developers working on your platform of choice do actually take the time to reference this epic document. It's part of the reason you love your Mac. Mac developers love to make software that lets people enjoy their computing experience. This intention, while admirable, is worth nothing if they don't have the tools or wherewithall to achieve this lofty goal. The HIG is a crucial part of why there is such a thing as "the Mac experience". Try also to have sympathy for software developers who unintentionally violate the HIG from time to time. It is a constantly evolving document and it would take most of us a few days to read, let alone understand and memorize. Moreover, as good as it is, it is not infallible.
Now, for software developers; because the Mac OS is achieving considerable growth, a great many of you are starting to develop software for it for the first time. I'll save you some grief and tell you that you will not be met with fanfare if you decide to give your application a custom look and feel. Perhaps you have a wonderful cross-platform application in the making, and you want both to function the same way on Windows and the Mac. You've gone out of your way to develop an application with a cross-platform widget set like QT and you think it'll take you about two weeks to a month tops to port over to the Mac. Forget about it. You are more likely to be met with hostile users developing a Mac application with a foreign look and feel (no matter how much your toolkit vendor tells you it has native look and feel, it doesn't on the Mac, trust me) than you are developing spyware. No, I'm not exaggerating! If you're left feeling a mix of despair and annoyance at having to cater to a whiny, entitled, minority group of users, you just haven't familiarized yourself with the Mac enough yet. Get used to some of the user experience nuances. Give it a month or two. Then delve into reading bits and pieces of the HIG, perhaps the part that speaks of control alignment and grouping in a window. The flipside to having to accommodate this whiny, entitled, minority group of users is that if you do happen to design a proper functioning native look and feel application, they are a loyal bunch.
If you're a software developer but only work on websites and web applications, give the HIG a quick read anyway. It is filled with straightforward and easy-to-understand advice that can easily be carried over to the design of applications on other platforms. The key is getting into the right frame-of-mind and you'll definitely be there after having read a part of the HIG. If your experience is anything like my own, you'll learn the right questions to ask in order to design a solid user interface. Also, you'll have some basic tools in your toolbox to be able to address the fundamentals on your own instead of having to defer to a designer at every step. I still wouldn't trust myself to design an interface I would consider exceptional. But at least now I have a baseline understanding of what it is for an interface to be exceptional and some guidance on how to achieve that, perhaps with the help of a professional designer.