Personally, I've never touched Vista. I'm willing to bet though, that nothing on Vista could be anywhere near as slow as OS X Leopard's iCal calendaring application. Calendars that were speedy and responsive on Windows 98 can crush a modern OS X 10.5 desktop.
Here's how to sell a Vista solution using OS X:
- Start with a set of calendars that hav a few thousand events distributed across multiple calendars and iCal subscriptions [1]. (What, your life isn't that busy? Imagine what Obama's calendar looks like.)
- Use the "period" hack to give Leopard iCal a "list" or "agenda" view of events.
- Select a set of, say, 50, events from the list view. Using the context menu, move them to a large calendar with a thousand or so events.
- Go to bed. If you're luck the fifty events will be moved by morning.
That 80386 could have chewed through a few thousand calendar events in no time. Twenty years later a computer with roughly 400 times the power takes over 50 times longer to complete a similar task.
A 20,000 fold decrease in software efficiency is quite an achievement.
Maybe we don't need to worry about the Singularity after all. At the rate we're going the hardware of 2028 will struggle to add single digit numbers.
So what's wrong with OS X and iCal?
There's no easy answer. Apple follows their own set of priorities, and as long as their share price is relatively strong that won't change. In this case I suspect Apple chose a data store architecture that was consistent with Spotlight searches and their own internal aesthetics, rather than a data store that ... you know ... could actually ... perform. Beyond that there must be some nasty OS design constraints and bugs; even the slowest possible data store should be faster than this.
As an Apple customer I'm hoping for great sales of Windows 7 (aka Vista 2.0). Apple needs more fear.
Update 11/2/2008: Bento is just as slow as iCal. I think the data architecture must be the performance killer.
[1] This would be typical of someone migrating from a Palm or Outlook environment. iCal doesn't have the concept of tags or categories, so Palm categories become iCal calendards.