Thoughts on the MacOS X Leopard delay
As the image on the right demonstrates, I'm firmly in the Apple camp when it comes to my computers. I was a Windows/Linux fan until I purchased a 550 MHz Titanium PowerBook using my undergraduate computer subsidy before I graduated college. It took me a while to become comfortable with how the Mac looked and felt, but after I became comfortable using iTunes, I was hooked.
That said, I am disappointed about today's announcement that the next version of MacOS X will be delayed until October. I've really been looking forward to the new release (codenamed "Leopard") on a variety of fronts and I am a bit annoyed that the delay is due in part to Apple using Leopard developers to push the iPhone out on time. (I have no plans to get an iPhone, so I'm understanably annoyed that something I want has been delayed by something I really don't care about.)
I kept convincing myself that while really no news about the new release's technology or features have been released since last summer's MacWorld, a spring or early summer release would be soon enough to make up for the intentional information deficit. Since Apple's making us wait until October for the new release, I'm going to use this as an opportunity to gripe and moan about two things that are currently driving me nuts within the Mac ecosystem.
1. Steve Jobs
I regularly go back and forth on my thoughts on Apple's CEO and whether he deserves the laurels that he receives. On one hand, I believe that the sheer force of his personality is responsible for wonderful things like well-designed and well-engineered software (NextStep / Cocoa) and hardware (MacBook / iPod), revolutionizing the music and movie business (iTunes Store), and generally raising the user experience bar for things like software, computer hardware, and consumer electronic devices.
On the other hand, I debate whether Jobs was necessary for these good things or whether he was at the right places at the right time. Jobs is neither an engineer nor a designer. I think that his effectiveness comes from being very effective at pushing engineers and designers to do their best. I think that this takes a very stubborn and egotistical personality to do this.
While Jobs egotism and stubbornness has resulted in good things, I'm beginning to wonder if it has been taken too far and is beginning to hurt the company and its relationships with developers and customers. As I mentioned before, little new non-NDA information has been released about what the new version of MacOS X will bring. Sure, we have the snazzy pages on Leopard, but in all honesty we see two major new user features (Time Machine and Spaces), two new developer features (Core Animation, Obj-C 2.0), and a whole host of minor tweaks to preexisting Apple applications. Apple itself realizes that this is meager, promising "Top Secret" new features that will be released at an unspecified later point in time. The simple fact of the matter is that Apple is stingy with releasing new information about the operating system and the major reason I speculate is that Jobs is simply unwilling to have the information released until he is on a stage in front of a crowd of adoring Mac fans.
At the last WWDC, Apple famously posted banners basically claiming that Microsoft's Vista was a MacOS X ripoff. Jobs joked on stage that they were keeping some features under wrap because they didn't want Redmond lifting them at the last minute for inclusion in Vista. Well, Vista has been out for a couple of months now. Is there really any decent reason for keeping everything under wraps now? (A cynic might speculate that some of the secret Leopard features might be as vaporous as WinFS.)
2. The slow death of the consistent Mac user interface
When I first began developing Cocoa applications, I loved that the tools I had were the same ones used by Apple and by using these tools (and their accompanying guidelines), I could create just as attractive and usable applications as the ones Apple shipped.
I don't know when this really became a problem, but since the release of Tiger, I have noticed that that as we get further from the last major OS release, the gulf between what Apple tells developers to do (as encoded in the latest releases of Xcode and the dated HIG) and what they ship themselves continues to grow. Pre-10.2, there was the Aqua interface for applications. 10.2 saw the release of the metal theme and widgets. 10.3 faded the pinstripes, and 10.4 introduced the option for unified title and toolbars. During these releases, Apple released a number of new applications and updates sporting new interface layouts, designs, and widgets. What was true in the "good old days" (independent developers were on the same UI field as Apple's developers) no longer holds. If I wanted to make an app that looked like Mail.app or iTunes, I'd be spending quite a bit of time creating custom controls for common widgets like splitview panes and text fields.
This trend wouldn't be annoying if there was some rhyme or reason for the proliferation of new Apple applications that violate the human interface guidelines (HIG), or of the HIG was updated occasionally to provide some explanation about the new looks and feels. However, neither is happening and because of this, one of the Mac's major advantages (user interface consistency) is disappearing as third party developer mimic Apple and release apps of their own that either try and follow Apple's examples or "innovate" beyond it. A great example of this is the much-hyped unreleased screen capture application Skitch. I'm sure that it is probably a decent application, but honestly to me it looks like a piece of Windows shareware. A less extreme example is Schoolhouse, a homework management application. It's a very nice and good looking piece of software, but a quick peek into the application bundle reveals a whole hell of a lot of custom widget graphics that the developer painstakingly put together so that his app looked something like the modern iLife programs. I speculate that the developer of this program spent more time in Photoshop creating his custom widgets and tweaking minor UI details than working on the underlying bits and logic that make his application unique and useful within the Mac platform.
To be completely honest, there is a valuable point that consistency isn't everything, but the amount of wheel reinventing that has been going on within the third party Mac developer community these days is depressing. What's the point of great tools like Interface Builder if Apple won't keep the widget pallet and UI guidelines up-to-date, and the developers feel compelled to reskin and reinvent basic widgets to produce modern-looking applications?