Apple released several updates yesterday. Most talked about was iOS 6, but there were also upgrades to Mac OS, Xcode, and other Apple software.
I'd heard about iOS 6 but don't have a device that will benefit much from it, so I didn't bother with it.
I use my Mac for school. It's basically a Linux laptop with shiny hardware and an aesthetically pleasing (if space-wasting) window manager. I use homebrew to manage the software I use from the FOSS ecosystem. So when I checked for updates last night it told me that my Xcode command line tools were out of date. This typically means that Xcode itself is out of date. I'd expected to see the update notification from the App Store, as Apple had just forced me to upgrade a few months ago to get a version integrated with the App Store.
It turns out that although the update was available, the App Store hadn't yet notified me. This isn't a huge problem; it just means that I can't trust Apple to notify me as soon as critical security updates are available. And, of course, I love the irony of being notified by a third party application that my Apple software needed to be updated.
I opened the App Store and checked for updates. I told it to upgrade everything (Xcode and iPhoto) and typed in my password to authorize the process. I quickly noticed that the update was over a GB. Having just been released, this patch was in high demand among developers and the download was painfully slow. I was only somewhat surprised that Apple doesn't use something sensible like BitTorrent to distribute its patches; after all, Apple maintains tight control over its products – even after the products have been sold to customers.
Hours later, I checked to see if the download had finished. For some reason, it was still listed and I instructed the App Store to update everything again. I typed my password again. For some reason, the patch was larger. It's possible I missed a detail somewhere, but I'm quite sure that 1.6 GB is larger than 1.3 GB.
The next time I checked, iPhoto had still not been upgraded. I told the App Store to install the update and authenticated a third time. It quickly reported that it wanted to upgrade but that it couldn't until I updated my operating system. Apple, of course, hadn't notified me that an update was available.
So I opened Apple's update tool and installed the upgrade, which forced me to authenticate (I think – at this point, it was late enough that I may have missed something) and then restart.
After restarting, I told the App Store to upgrade a fourth time and authenticated yet again and it happily complied.
When I launched Xcode, it had an update waiting inside of itself that I had to install before doing anything else. Then, finally, I dug my way through the preferences menu to find a way to upgrade the software contained within Xcode, including the command line tools. It listed four updates but said at the top that no updates were available. After ignoring the message at the top, I tried to install one of the tools. After authenticating (twice), I was told that my Apple Developer account doesn't have access to iOS 5. I have no idea why Apple maintains farcical security around its developer tools, as they're certainly available on the Internet without Apple's red tape. And it wasn't immediately obvious how I could convince Apple to give me the software. So I ignored the iOS 5 emulators and moved on to what I really needed.
The other updates didn't hassle me (although I think I had to authenticate again for each one). I was finally done. The experience left me thinking of the years I spent working in technical support for my department as an undergraduate, installing OEM copies of Windows XP on professors' laptops and doing battle to find and install the drivers they needed in order to operate properly. Apple had actually succeeded in creating its own Patch Tuesday (except that it was a day late, as it all came out on Wednesday).
So, Apple, I pose my questions to you: how do you justify such a horrific experience? Are you willing to own up to the fact that your developer tools are clearly an afterthought? Are you even bothered by the fact that third-party tools notify your users about updates (which could be security-critical) before you do, despite the fact that you control the operating system and applications that can deliver these notifications? And we all know that stealing ideas is how the computer industry works, but didn't anyone tell you to steal the good ideas?