Ten Big New Features in Mac OS X Snow Leopard
June 23rd, 2008
Daniel Eran Dilger
Apple is marketing the idea of there being “no new features” for Snow Leopard and instead promising an overall improvement in how Mac OS X works under the hood, thanks to a diligent code optimization and refactoring cycle discussed in the previous article. At the same time, there are plenty of significant new features coming in Snow Leopard to look forward to. Here are ten big new features (plus a few minor ones) that you probably haven’t heard much about from anywhere else, including my previous articles on the subject that already described QuickTime X, Grand Central, and OpenCL.
Pulling Invisible New Features into Snow Leopard.
Apple’s increasing collaborations with the open source community have pulled back the veil of secrecy on several new but mostly invisible enhancements that will be showing up in Snow Leopard.
One relates to LLVM, the Low Level Virtual Machine compiler architecture project originally founded at the University of Illinois. Apple began contributing to LLVM development in 2005, and started using it Leopard to expand support for OpenGL hardware features. Lower-end Macs that lack the silicon to interpret that specialize graphics code can now do it in software.
LLVM is also working its way into Apple’s Xcode IDE, initially as a highly efficient optimizer and code generator that works as a bolt-on upgrade to components of GCC, but eventually as a complete compiler replacement. That project, known as Clang, was opened up last year. LLVM compiler technology not only makes developers more productive, but also results in code that runs significantly faster on the same hardware.
Another openly hidden secret in Mac OS X is CUPS, the Common Unix Printing System. Beginning with Jaguar in 2002, Apple adopted and licensed CUPS from its developer as Mac OS X’s printing engine. It then purchased the project outright. CUPS is also the de facto printing system for Linux distros and is available for BSD and other commercial Unix systems.
That means Apple owns the project that develops the printing architecture for Linux. That’s not an issue because Apple has established a reputation in open source as a strong contributor and open sharer. According to a review of bug fixes and improvements in CUPS software, 24% of the enhancements came from Apple while 76% came from free and open source software contributors working with Linux, OpenSolaris, and other projects. Of course, 100% of both sides benefited from that sharing.
CUPS collaboration has resulted in high quality code and the advancement of new features. CUPS 1.4, the version sources say Snow Leopard will use, adds performance enhancements and a variety of security improvements that use sandboxing to prevent malware attacks on the printing system from being able to read sensitive documents that may be in use by printers.
A third significant new feature originating from an open source project in Snow Leopard is ZFS support, portions of which come from the OpenSolaris project (along with Sun’s DTrace technology, which Apple uses in its Instruments performance profiling tool). Leopard debuted read-only ZFS features, but Snow Leopard and Snow Leopard Server will provide both read and write support for Sun’s new 128-bit file system. ZFS was designed to provide “simple administration, transactional semantics, end-to-end data integrity, and immense scalability.”
ZFS hype during the development of Leopard helped the new file system reach buzzword status as news of the three letter acronym swept through blogs and the tech media. It is frequently described as being the imminent replacement for the Mac’s native HFS+. However, the benefits of ZFS including as storage pooling, data redundancy, automatic error correction, dynamic volume expansion, and snapshots all apply primarily to servers and higher-end workstation users who deal with multiple disk drives.
ZFS isn’t going to replace HFS+ outright in Snow Leopard, and has limited relevance today to desktop and laptop users, particularly those who never move beyond the single disk drive installed in their system.
Pushing Visible New Features in Snow Leopard.
Apple’s extensive work in developing push support for Exchange Server on the iPhone will also be included in Snow Leopard’s Mail, Address Book, and iCal. Push support in those client side apps are also being used to power MobileMe’s push messaging subscription service and Snow Leopard Server’s push messaging services. Apple will be offering both in parallel as alternatives to Exchange, thanks to smart planning on the part of Apple’s engineers to develop an interoperable push architecture in Mac OS X and on the iPhone.
There is also a fourth application of push that has developed alongside push messaging: Apple’s new Push Notification Service. PNS allows iPhone and iPod touch users to set up server side notification alerts that don’t require mobile applications to stay running in the background just to update users of the external events they track. Along with Bonjour discovery, PNS will keep iPhones wirelessly connected in all sorts of sophisticated ways that third party developers can imagine in their applications.
Whether Apple will integrate a listener for the same PNS system into the desktop side of Mac OS X remains to be seen, but it would allow a single, unified interface for alerting client users of new events. I proposed a system wide, Growl-style notification system in the Leopard Wish List published back in 2005.
With the strong push into push messaging, Apple will make mobile devices even more tightly integrated with its desktop products. Leopard delivered Back To My Mac as a novel way to use Wide Area Bonjour’s dynamic service registration as a mechanism for sharing resources served from home to any location without configuring static naming services for address lookups. Because any software can register itself with .Mac/MobileMe, this opens the door to third party developers with the vision to exploit the potential of these enabling technologies.
Among the technologies profiled earlier in Myth 3 that have been trickling from the iPhone into Mac OS X, there’s at least one idea I proposed for the iPhone that will be in Snow Leopard’s Safari: self contained web apps. The new feature will allow users to run web applications as a local app in its own window, essentially making the web platform into a native-looking app that can run outside of Safari.
I proposed a similar feature as a possibility for the iPhone prior to the announcement of the Cocoa Touch SDK: web apps packaged up into a set of files that could be run on the device as a Dashboard widget-like standalone app, even when off the network. Why Apple hasn’t pursued such an obvious strategy is a little hard to figure out, but it seems they’ve got the ball rolling on the desktop.
Microsoft’s Application Features in Mac OS X, System Wide.
Microsoft’s business model of tacking on features hasn’t been a total wash. The company’s desperate efforts to invent novel marketing features for every new release of Windows and Office have pioneered a number of ideas that have later found their way into Mac OS X. One example is the idea of Fast User Switching, which Apple added to Panther. Windows XP pioneered the trick, but built it upon the kluge that is Terminal Services.
Microsoft also helped originate the basis of Ajax web apps by inventing XMLHttpRequest in order to make its Outlook Web Access 2000 web app work decently within Internet Explorer. Today, standards-based web apps are eating a hole into Microsoft’s monopoly on the proprietary desktop platform, and tools such as SproutCore and resulting products such as MobileMe are poised to tear down interoperability barriers and level the playing field. Microsoft may now regret having opened Pandora’s Box in terms of standards-based web applications, but its efforts to seal the web back up with the proprietary Silverlight plugin, which turns web apps into .NET programs, will now be next to impossible.
Another example of a Microsoft innovation are the fancy text features in Word, such as red underlining to highlight spelling mistakes and the green squiggle for grammar errors. Word also features a variety of word auto correction, smart dash insertion, and text replacement features (such as typing TM to get the ™ character). The former have already become system-wide features in Mac OS X, while sources indicate that the latter text processing features will find their way into Snow Leopard, and therefore every application that runs on it.
Super Size Me.
On top of injecting Word features into its OS for the use of every application, Apple will also expand the use of its own Data Detectors, a technology it invented in the mid 90s for identifying useful bits of text and making it actionable. Leopard introduced Data Detectors in Mail as a way to extract contacts and events for use in Address Book and iCal, but Snow Leopard will expose Data Detectors everywhere it draws text.
Sources also indicate Snow Leopard will expand upon Font Book to provide full Auto Activation of any fonts requested by any application, using Spotlight to track them down. Snow Leopard is also suggested to have a new set of frameworks specifically for working with multitouch trackpad gestures, patterned after those introduced with the MacBook Air.
Speaking of the ultra-thin Air, sometimes less is more. However, the high cost and relatively low capacity of Solid State Drives like the $1000, 64 GB SSD option offered for the Air means that one Microsoft feature Snow Leopard could do without is bloat. As one reader noted, “Currently, Leopard requires 9 GB of available disk space for installation and iLife requires an additional 3 GB. This means that a product such as the [SSD] MacBook Air comes with the hard drive 20% full.”
Snow Leopard aims below the bloat to accommodate the coming wave of SSD-based systems. In the latest build, sources say Apple’s own apps are losing weigh dramatically across the board. The apps in the Utilities folder all drop from 468 MB to 111.6 MB, for example. Other apps are similarly svelte, as the graph below indicates.
Is this the product of just code optimization and shared resources? One factor likely relates to work on Resolution Independence, which substitutes bitmapped raster graphics (which define every pixel) with smaller vector graphics files (which draw GUI elements and controls by recipe).
Vector graphics can be scaled to any size while retaining a high quality appearance, while bitmapped graphics can quickly look blocky when scaled up. Adding larger bitmapped versions can solve that problem, but at the cost of consuming more disk space. Apple earlier told developers it would be providing a library of shared, high quality vector graphics they could use instead of each packaging their own bitmapped art into every app.
The dramatic size reductions in these apps must also involve more efficient Localization. For example, Mac OS X Leopard’s Mail currently weighs in at over 285 MB, but the majority of its bulk comes from 18 language localizations inside the application bundle that consume 276 MB. The actual Universal Binary code is only a few megabytes and even its associated graphics and other resources only amount to 2.8 MB.
Why does Apple default to dumping support for 18 or more languages in every app without providing any simple, centralized way to get rid of the unnecessary ones? Perhaps that question is answered in Snow Leopard, where Mail is reportedly just 91 MB. That’s too big to simply to be an English-only, stripped down version for developers, but still far smaller than than Leopard’s. Across the board, it appears Snow Leopard apps are about a third as large as their Leopard equivalents.
And so while Snow Leopard paradoxically gains more useful features through code improvements and under-the-hood retooling rather than from a Microsoft-style new feature focus that aims to deliver “wow” with flashy marketing gimmicks, the system is also getting smaller and tighter. There must also be some other subtraction, right? Will Snow Leopard scrape away the old Carbon API? That’s the next myth.
Like reading RoughlyDrafted? Share articles with your friends, link from your blog, and subscribe to my podcast! Submit to Reddit or Slashdot, or consider making a small donation supporting this site. Thanks!