This page shows the source for this entry, with WebCore formatting language tags and attributes highlighted.

Title

Mac OS X Tiger - a Promising Future

Description

<img attachment="indextop20050504.jpg" align="left">Now that Mac OS X Tiger has been out for about a month, the next wave of more in-depth reviews are coming out. These provide a more hands-on critique than the initial wave of sycophantic "reviews" that were mostly created by copy/pasting Apple's press releases. Some of the latest reviews sing Tiger's praises, offering workarounds for weaknesses and others are harsher critiques that take Apple to task for breaking their own UI guidelines. <a href="http://www.theregister.co.uk/2005/05/26/tiger_ui_review/" source="The Register" author="Andrew Orlowski">Mac OS X 10.4 - more bling than bang?</a> mentions right off the bat that <iq>[a]s OS X improves, it becomes harder to convince OS X users to make the jump.</iq> Panther already did its job so well for most people that the goodies in Tiger may not be enough to entice upgrades. That's why Apple is selling their "over 200 new features" so hard. The most interesting big features for users are probably Spotlight and Widgets. <h>Spotlight Pros & Cons</h> Spotlight is a way of searching for stuff on your computer that permeates every level of the operating system. The technology is extremely solid and <iq>from a technical point of view, the file system team has done a terrific job.</iq> Re-indexing of files is performed on-the-fly as they are modified, the entire system is easily extensible for new file types and the OS now updates instantly everywhere whenever a change is made: regular folders always have current contents and even smart folders (based on a query) update in real-time. The application that provides access to the search functionality leaves something to be desired: <ul> <iq>Some simple searches are now much harder</iq>, including simply searching for a filename and no other fields. The workaround is to <iq>use an undocumented feature, and wrap the search term in quotes</iq>. Not exactly the user-friendly Apple way of doing things. The spotlight window itself lives halfway in the finder, without a Dock icon and impedes speedy navigation using the keyboard, in that <iq>[i]f it loses the focus, you need to use another undocumented feature: apple-space-space to return the focus</iq>. Though the underlying engine has a powerful querying interface, <iq>the user interface severely hampers what queries can be made</iq>. Apple is still convinced that people can't handle the complexity of an interface that allows "all", "none" or boolean operators other than "and". Finally, though Spotlight results are nicely organized and stylishly presented, there is no Google-like <iq>context provided by the search results</iq>, so it's difficult to distinguish similar results. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/9" source="Ars Technica" author="John Siracusa">Spotlight</a> contains some movies of other UI glitches arising from the introduction of smart folders and spotlight windows into the Finder. <n>There is also a brief introduction to the querying language for the file system.</n> </ul> Many of these problems are probably not something that most people will notice (especially the switchers from Windows). Mac users and especially Mac reviewers do, though. Apple tends to be quite responsive to some issues, having already released 10.4.1, which improves overall speed and usability and drastically improves Widget refresh speed. <h>Big News for Developers</h> Note the distinction above between the technology and the application. Though Tiger has many shiny geegaws and doodads for the everyday user, it is the underlying subsystems that have really improved in Tiger. This is just as much a release for developers as for users. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/1" source="Ars Technica" author="John Siracusa">Mac OS X 10.4 Tiger</a> is a 21 web page (104 page PDF), incredibly detailed investigation of all that is new, good, bad and improved in the latest edition of Apple's operating system. <dl dt_class="field"> <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/4">Kernel Programming Interfaces (KPIs)</a> Apple has finally cleaned up their kernel, and <iq>there are stable, officially supported kernel programming interfaces (KPIs)</iq>. This means that low-level extensions will be more stable between releases and more applications will be willing to take advantage of them for the same performance gains that Apple applications receive. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/4">Fine-grained kernel locking</a> <iq>Instead of restricting access to huge chunks of the kernel, locks can be placed in front of smaller pieces of functionality.</iq> This allows multiple threads to all be executing in the kernel at once, so an application doing file io no longer necessarily blocks network activity. <iq>The end result is less contention, and the ability to scale to a higher number of CPUs</iq> Again, a smart move for the future that brings performance gains today. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/5">launchd</a> Apple has ditched the standard UNIX way of launching processes in response to events and replaced it with their own single-app solution (that's open source, too). That means that <iq>common events [like] system startup, shutdown, and restart, user login, and incoming or outgoing network connections</iq> are now all configured and launched using the same application under OS X. This drastically lowers the learning curve and improves the scriptability of the system. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/7">Extended file system attributes</a> Thanks largely to the efforts of former BeOS file system engineer, Dominic Giampolo, <iq>Mac OS X now includes support for arbitrarily extensible file system metadata.</iq> This feature is used heavily by Spotlight and its indexing plugins, but is also an API that is available to any application. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/8">Access control lists</a> provides an in-depth look at one of the powerful uses to which Apple has put this feature. See the bullet list halfway down in <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/10">Spotlight analysis and potential</a> for a vision of what life with Spotlight and extendible attributes could be like. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/11">Uniform Type Identifiers</a> UTIs are a universal, hierarchical way of classifying file types that is a replacement for mime types, file extensions and creator codes. <img attachment="uti-tree.jpg" align="right" class="frame">The diagram to the right shows a sample hierarchy out of the UTI tree Apple has defines - and which vendors can easily extend by following a naming convention (reverse DNS) that guarantees uniqueness without a central registry. It is this typing system that Spotlight uses internally to decide which plugin <iq>is the best fit</iq> for a particular file. It's a massive step in the right direction and all applications will be able to benefit from it. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/14">Quartz 2D Extreme</a> OS X's 2-D rendering has taken the next logical step and moved all instructions onto the graphic card if possible. The old quickdraw libraries are finally obsolete and many Apple applications have been rewritten to use newer APIs. <img attachment="quartz-10.4.jpg" align="right" class="frame">The diagram to the right shows how an application simply issues drawing commands and OS X maps them to OpenGL and the GPU, if possible (almost always, for most 2D drawing). Naturally, this approach only offers performance improvements if the necessary data is also already in VRAM; if not, there is still the same performance hit as before as memory is swapped in over a smaller pipe. Never fear, though, even applications that still use QuickDraw got major performance boosts in a general cleanup of the rendering APIs. This feature is currently only available for ATI 9600 and above (which explains why the iMacs just got an upgrade, eh?) and is currently disabled for all Macs, pending a service release. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/15">Core Image</a> Staying on the graphics theme, we have the rendering API applications can use to reap the benefits of the GPU without programming to it directly. Core Image allows applications to chain together rendering plugins, (e.g. Gaussian Blur, Sharpen, etc.) and pass them to the OS to render. Core image builds a small "program" out of the group of plugins and executes it all at once on the given image buffer. That means that the speed of the operation is not necessarily constrained by the number of plugins applied at once. It also means that the OS can seamlessly decide whether the operation can be moved onto the GPU instead of executing in software. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/16">Core Video</a> This is yet another API offered by Apple that is based, naturally, on the Core Image API. Quicktime 7 has been completely rewritten on top of it and renders videos to OpenGL surfaces, so that transformations of video can also occur on the GPU. The Video iChat application included with OS X demonstrates this as it shows the chatting heads at angles to simulate a room. Other video applications will be able to use these standard APIs for similarly manipulating video in a high-performance, standardized and stable fashion. <a href="http://arstechnica.com/reviews/os/macosx-10.4.ars/20">Core Data</a> <div><bq>It's a framework for object management and persistence. It allows a developer to define object attributes and relationships, then build an application based on this data model without having to write any code to manage the object graph or serialize objects. The currently supported serialization formats are XML, binary (essentially compressed XML), and SQLite. Applications that use Core Data also get niceties like undo/redo for free.</bq> This is an extremely good thing, as it means that smaller Mac utilities and applications will be able to focus on their task rather than on saving/restoring data like configuration and other things. It also means that it's much faster to develop applications on a Mac, which lowers the barrier to entry. </div> </dl> As you can see, Apple is putting a tremendous amount of effort into making their platform as extendable and usable as possible. Everything from file searching and identification, data persistence, image and video handling to kernel extensions has been made easier and much more powerful. This release may have some usability problems, but inside it's a big step forward for the platform. It's the kind of investment that will pay off in the long run.