WWDC'07 predictions

Making predictions what will be announced at Apple's yearly world-wide developer conference (WWDC) seems to be a popular hobby of many Mac enthusiasts. For this years WWDC I decided to make some guesses too:

  • Introduction of the ZFS file system as recommended file system.

A lot of speculation on the integration of ZFS into OS X 10.5 Leopard has been made in the past months. I think supporting ZFS makes a sense for OS X. ZFS is a very modern, 128bit file system developed by Sun. It's main advantages for the average user are: self-healing capabilities (no fsck needeed), addition of new disks to the filesystem at runtime and support for efficient and fast snapshots. ZFS' support for snapshots is assumed to be the underlying technology for TimeMachine. An interesting feature of ZFS is the ability to build software RAID systems denoted as RAID-Z without hardware support, which enables even home users to build an affordable RAID-Z-based backup solution without special knowledge.

Although HFS+ has been around for many years, some important unix tools shipped with OS X handle the advanced features of HFS+ (resource forks, extended attributes and ACLs) only poorly. For example, dump(8) does not support HFS+ volumes at all and the rsync(1) version shipped with OS X frequently crashes with bus errors when enabling extended attributes. I hope that Apple this time took the time to modify all Unix tools to fully support the new file system.

  • Improved Spotlight

    The introduction of system-wide full-text search in Mac OS X 10.4 Tiger was a big step forward in the user experience. The ability to include meta-data in the search improved the search capabilities over previous versions of OS X.

In my opinion, there are a couple of signs, that the implementation of Spotlight was rushed too fast into OS X 10.4, Spotlight simply has too many rough edges. So the upgrade to Leopard is a good time to iron our these wrinkles. Unfortunately, Microsoft failed to deliver their searchable meta-data filesystem WinFS with Windows Vista, this removes some pressure from Apple to improve on Spotlight quickly.

One thing that I expect to be improved is the Spotlight's performance. The implementation in Tiger simply feels too sluggish for my taste. Additionally, the user interface is awkward. The integration of the search field and the search results in a drop-down menu of the menu bar just doesn't feel Mac-like.

  • Improved Support for Meta-data

The meta-data capability of HFS+ is not fully leveraged in OS X Tiger. While it is possible to add arbitrary meta-data to a file using the setxattr(2) and getxattr(2) system calls there are no tools provided by Apple to manipulate this meta-data. Users have to resort to third-party command-line tools for this purpose, e.g. xattr.

A major weakness of the current Spotlight version is it's inability to inability to index user-defined meta-data. By default, only the meta-data extracted by Spotlight importers is indexed.

Indexing user-defined meta-data would enable very interesting applications. For example, imagine adding a user-defined "deadline","project" or "tags" attribute to files. If Spotlight would index user-defined attributes this would allow to defined system-wide smart folders that list all files with a deadline within the next week, or list all files belonging to a specific project. Using "tag" attributes would allow for storing many documents flat in a single folder while classifying the documents with tags. Better indexing capabilities for meta-data would render many specialized tools like MailTags, Yojiimbo or DevonThink that solve the classifying problem for specific kinds of documents at least partly unnecessary.

  • Support for multi-threaded applications

Within a very short time, all Macs have not only migrated from PowerPC to Intel processors, but also from single-processor single-core CPUs to single-processor or multi-processor multi-core CPUs. It is well known, that programming correct multi-threaded applications is inherently difficult, since several threads may concurrently access shared data-structures. These data structures thus must be protected by semaphores, which introduces the possibility of deadlocks in used incorrectly.

When running on a single-processor/single-core machine, these problems may arise only infrequently, since the threads are sequentialized as only one CPU core is available. With many CPU cores available, problems related to incorrect multi-threaded programming are likely to increase.

I expect, that Apple is introducing new frameworks and development tool support to simplify the creation of correct multi-threaded applications. Core Animation will be only one of several frameworks, that make use of multi-threading. I also expect that XCode will be extended with tools to trace and debug the execution of multi-threaded programs.

Written May 29th, 2007