Register Log in

Infinite Loop / The Apple Ecosystem

Mac OS X 10.4 Tiger



The setup

In February of 2003, Arlo Rose and Perry Clarke released a new Mac OS X application called Konfabulator. Konfabulator is an engine for running small programs called "widgets." A widget is a bundle that contains an XML description file, images and other resources used in the user interface, and JavaScript code to glue it all together.

Although Konfabulator ships with several useful widgets, the important part of the product is the Konfabulator application itself. It's the "widget engine" that reads the bundles, parses the XML files, loads the resources, builds and displays the widgets' user interfaces, and runs the JavaScript code to make the widgets actually work.

When running, widgets are self-contained windows that do not have a menu bar of their own. They can be interleaved with other windows, forced to float on top, or pushed back to the level of the desktop background.

Like Kaleidoscope, the popular user interface theme engine for classic Mac OS which was also coauthored by Arlo Rose, Konfabulator is meant to be an environment for hosting user-created content. There is a large and growing collection of user-contributed Konfabulator widgets.

Mac OS X 10.4 Tiger includes a technology called Dashboard which is very similar to Konfabulator. It too is an engine for running small programs called "widgets." Dashboard widgets are also bundles containing a description file, images and other resources, and JavaScript code to make the widgets actually work. The implementation details start to diverge from there, however.

Instead of purpose-build XML files and a custom JavaScript API, Dashboard uses HTML, CSS, DOM, and all the other technologies used in a modern web browser. Dashboard actually uses Web Kit, the engine that powers the Safari web browser, to run its widgets. The widget description files are actually HTML pages, and the JavaScript code behaves just as it would if it was running inside a web browser. In fact, the Tiger version of Safari (2.0) can also be used to display and run widgets.

Dashboard goes a few steps further. Dashboard widgets can be augmented with compiled Objective-C code. This allows them to interact with parts of the system that are not accessible from within a web browser (e.g., Mac OS X's built-in address book database). Apple has also added a few new features to Web Kit in support of Dashboard widgets. There are two new controls (a slider and a rounded search field) plus a JavaScript interface to a subset of the Core Graphics API.

The new Web Kit features are also present in Safari, of course, and this has caused much controversy in the web developer community. I side with the other web developers here. I wish the new, proprietary Web Kit features were confined to Dashboard where they are appropriate and useful. I see little value, and much danger, in allowing them to work in Safari by default.

I pessimistically predict a proliferation of slider controls and rounded search fields on Mac-centric websites in the wake of Tiger's release. Please, Mac web masters, exercise restraint. Don't make this the MARQUEE tag all over again.

Although Tiger ships with several useful widgets, Dashboard is designed to support user-created content. Apple has already run several Dashboard widget-building contests, and third party widget collections began to pop up months before Tiger was released.

Finally, rather than being mixed with other windows on the system like Konfabulator widgets, Dashboard widgets exist in their own private window layer. The Dashboard layer is not visible by default. When Dashboard is activated, the screen dims and the active Dashboard widgets swoop in from all sides of the screen.

Dashboard can be activated by typing a key-combination, dragging the mouse to a corner of the screen, or clicking the Dashboard Dock icon. (The key-combination and screen corner are user-configurable.) Clicking anywhere outside a widget or re-triggering the Dashboard activator causes all the widgets to swoop back out of view. You can see a movie of Dashboard in action at Apple's web site.

The controversy

There has been a lot of debate surrounding Dashboard. Many members of the Mac community see it as another example of Apple hurting its software developers by creating a product that does roughly the same thing as an existing third-party product, and then bundling it for free with the operating system.

There is no denying that Dashboard hurts the commercial viability of Konfabulator on the Mac platform. The question is, is this good, bad, or indifferent? Is big, bad Apple stomping on an innovative third-party developer, essentially eating its own young and hurting the Mac software market and the whole platform as a consequence? Or should the Konfabulator folks simply accept this turn of events as part of the software development business?

This debate mostly ran its course in the months before Tiger's release. But like many community-wide debates, it produced its fair share of "commonly accepted wisdom" on both sides of the debate, much of which is wrong. Here are the two biggest misconceptions.

"Apple stole the idea of Dashboard from Konfabulator."

This old saw implies that Arlo and Perry somehow "own" the concept of a runtime engine for markup-based widgets with JavaScript glue, and therefore have some sort of automatic legal recourse. They don't. Arlo and Perry do not own any patents on Konfabulator's implementation and do not have exclusive rights to the ideas behind it.

"Konfabulator is actually just a rip-off of Apple's Desk Accessories, a technology released with the original Macintosh in 1984."

This misconception stems from the fact that many widgets perform functions similar to those of some well-known Desk Accessories. There was a calculator Desk Accessory and there is a calculator Dashboard widget. (I don't recall seeing a calculator Konfabulator widget, but one probably exists somewhere.) Of course, there's also a calculator application bundled with Mac OS X.

How about the clock? Alarm Clock was an early Desk Accessory. Dashboard and Konfabulator both have clock widgets. But there's also a clock application that's part of the Date and Time preference panel (of all things) in Mac OS X.

Clearly the idea of an "accessory" application is very old, and has long since spread beyond the bounds of any one application technology—if it was ever really so confined to begin with. Dashboard and Konfabulator owe nothing more to Desk Accessories than the Calculator and Stickies applications do.

Well, how much is that? It's not the quantity, but the significance of the intellectual debt that really matters. At a certain point, ideas simply enter into the public consciousness. The concept of little "accessory" applications has long since passed that threshold. In the same way that new word processors are not seen as "WordStar rip-offs," Konfabulator's historical debt to Desk Accessories is not a significant part of the product's identity.

When Konfabulator was introduced, it was (rightfully) seen as a new kind of thing on the Mac platform. This identity was based on Konfabulator's "big idea," its "primary innovation," if you will. Here's a quote from Arlo Rose's journal.

My idea for Konfabulator was born from wanting to have a really simple run-time environment for people to develop small specialized applications that could look and behave however they wanted. The key point being that it is up to the user to make the cool Widgets. The user would know what they needed, and the user could then create that. [...] It was about empowering the user to make their own little apps that did what they wanted.

This couldn't be more different from the "big idea" that spawned Desk accessories. Arlo agrees.

The [Konfabulator] concept had nothing in the slightest to do with Desk Accessories

Desk Accessories were a technique for launching and running multiple applications on a single-tasking operating system (classic Mac OS). The importance of this idea has disappeared in the modern age of multitasking operating systems. It began to disappear as far back as System 7, when the Mac operating system finally became multitasking by default. Things that were once Desk Accessories shipped as weird little "mini-applications" in System 7. The place where Desk Accessories were traditionally launched from (the always-available Apple menu) could contain any kind of item in System 7, and Desk Accessories could be launched from anywhere that a regular applications could be launched from. In Mac OS X, Desk Accessories disappeared completely, replaced with plain old application (e.g., the Calculator and Stickies applications).

While Konfabulator's primary innovation has nothing to do with Desk Accessories, the "big idea" behind both Konfabulator and Dashboard is the same: to provide a runtime environment that enables the creation of simple applications using widely-known "Internet age" technologies: XML, HTML, JavaScript, etc. No compiling is necessary, and widgets have a completely open format that encourages users to learn from the work of others.

Again, this doesn't necessarily mean that either Konfabulator or Dashboard was the very first product to be based on this idea. What's important is that Dashboard and Konfabulator are both barking up the same tree, and that the Desk Accessories ancestry is about as significant to either of them as it is to the Stickies application.

The worst part of the misconception that Konfabulator and Dashboard are both obvious derivatives of Desk Accessories is that it adds nothing to the debate, regardless of its validity. The not-so-hidden agenda of the Desk Accessories connection is that "Apple did it first," therefore Dashboard did not copy Konfabulator, therefore Arlo and Perry have no reason to gripe.

(Incidentally, posing the question of who copied whom already has the built-in (and correct) assumption that Konfabulator and Dashboard are basically the same thing.)

To assess Arlo and Perry's "right to gripe," a different question has to be asked: Was there a reasonable expectation that Apple would bundle a Konfabulator-like product for free with its next major operating system release? If you (incorrectly) believe that the "big idea" behind Konfabulator originated with Apple's Desk Accessories rather than with Arlo and Perry, it might seem more likely that Apple would build a product based on "its own" idea.

In reality, Apple's likelihood of building an OS feature has little to do with the source of the idea upon which it is based, whether it's an existing third-party product like Konfabulator or an already well-known application genre. It has everything to do with the value the idea might add to the OS.

Of all the possible product ideas floating around the software market, I would never have guessed that Apple would choose to add a Konfabulator-like feature to Tiger. Konfabulator is so far outside the mainstream of Mac OS X software, so far out in left field, that I'm still surprised Dashboard even exists. I feel for Arlo and Perry since they seemed just as surprised as I was. Does this give them the right to gripe? I think it does; everyone has the right to be upset in response to unexpected bad news.

I'm not sure what Arlo and Perry should have done differently. They created a quirky, fun, user-friendly shareware product that made the Mac platform look good. They were poster children for Mac OS X development. They embraced the unique features of Apple's new OS and used them to do interesting things (e.g., using Quartz to create oddly-shaped translucent windows). While I believe Apple was perfectly within their rights (legal, moral, and ethical) to create Dashboard, I can't help but wonder if the next Arlo and Perry will be discouraged after seeing what happened to Konfabulator.

Apple's creation of Dashboard lit a fire under the previously stagnant effort to produce a Windows version of Konfabulator. It was completed a few months ago, and future Konfabulator development seems to be leaning heavily towards the Windows platform. While I hope budding Mac developers will take a lesson from the resilience of the Konfabulator team, I can't help but think about how Apple's actions have caused a previously Mac-centric development team to spread its talents to other platforms.

In the grand scheme of things, a widget engine is small potatoes. I just hope that Apple remains aware of the consequences of its actions. It's not always easy to differentiate between the inconsequential widget application and The Next Big Thing.

The product

Dashboard has visual frills and thrills galore. In addition to the Exposé-style activation, there's an extremely cool water ripple effect when a new widget is activated. Closing a widget causes it to be sucked back into the tiny "x" button like a piece of transparent taffy. The "widget drawer" on the bottom of the screen, activated by the slightly larger "x" button in the lower-left corner of the screen, pushes the entire screen background upwards as it appears. The widgets it contains slide in from the left. Dragging a widget icon out of the drawer causes it to do a cross-fade "morph" into its full-sized form.

If the Dock was the "ooh, ahh" demo in Mac OS X 10.0, Dashboard is it in Tiger. Here's a screenshot.

Dashboard widgets in action

The ripple effect looks nice in screenshots, but even better in motion.

The resource (memory/CPU) usage of Dashboard widgets is (unsurprisingly) similar to that of Konfabulator widgets that do the same things. Both products will eat CPU time if one or more widgets choose to poll frequently. Thankfully, none of Apple's bundled widgets suffer from this.

Dashboard benefits from using the Web Kit library, which will already be in memory if Safari is running. Unfortunately, it still takes several seconds for widgets to "become live" the first time Dashboard is activated. On the bright side, this means that Dashboard widgets are not running at all (and therefore not using any memory or CPU time) until the first time Dashboard is activated.

The bundled widgets are useful (you can see the full list of widgets at Apple's web site), but many suffer from "widget stiffness"—they are not resizable. This is fine for something like the calculator widget, but the Stickies widget really needs to be resizable if it ever wants to replace the Stickies application.

I have one big complaint. Apple has unnecessarily linked two good ideas in Dashboard: the widgets themselves, and the Exposé-style layer where they live. While I really love the idea of a separate window layer for infrequently used items, I'm extremely disappointed that only Dashboard widgets can live there. To a lesser extent, I'm also disappointed that Dashboard widgets can't be interleaved with regular windows, float on top of all windows, or be embedded in the desktop like Konfabulator widgets can.

I'd like to be able to put any application in the Dashboard layer, and I'd like to be able to pull widgets out of it and place them anywhere I want. This would require rethinking the Dashboard UI a bit (e.g., providing an active menu bar in the Dashboard layer) but I think the benefits would be well worth it.

The Dashboard interface itself is pretty wacky: the widget drawer that seems hidden "under the screen," the weird, twisty "x" button, the strange's all very odd. Cool, but odd. Even the Dashboard Dock icon is strange. It's the only application that can actually be dragged out of the Dock while it's "running" (i.e., while the little black triangle is under it). Try that with any other application and it'll get sucked back into the Dock. Try it with the Dashboard activation application and it goes "poof" and disappears. Like I said, odd.

The summary

Dashboard is a surprising and interesting addition to Mac OS X Tiger. What happened to Konfabulator is a shame, but I don't condemn Apple for it. I only hope Apple made the choice to develop Dashboard with eyes wide open. When I read about Apple executives trying to claim primal ownership of the concept behind Dashboard, I wonder. Then again, it could just be PR fluff and damage control.

The classy thing to do would have been for Apple to at least acknowledge Konfabulator in some non-legally-binding way. (Please sign these papers indicating that you did not save Itchy & Scratchy, yada yada.) But there was nary a mention of Konfabulator from Steve Jobs when he introduced Dashboard in front of an audience full of developers, many of whom must have immediately made the connection. It was the elephant in the room. To me, Jobs's silence speaks of a guilty conscience.

I expect to see a huge number of useful, fun, powerful third-party widgets produced in the months immediately following Tiger's release. I'm not so convinced about the long-term prospects for the technology. Konfabulator widget development tapered off very quickly after a big initial burst (yes, this was before Dashboard was public). We'll see if the same fate awaits Dashboard.

Even if this widget stuff doesn't pan out, Apple has an easy escape plan: make the Dashboard layer open to any application, or perhaps even individual windows from applications. I'm sure the virtual desktop mavens can think of plenty of other interesting ideas.

Even if you never had any interest in Konfabulator, the Exposé twist of Dashboard may be enough to get you to take another look. At the very least, you can impress friends and neighbors with Dashboard's whizzy special effects. Why a water ripple when a widget is activated? Apple answered the same question about the cube rotation effect for fast user switching in Panther: "Because we can."

Expand full story

You must to comment.

You May Also Like

    Need to register for a new account?

    If you don't have an account yet it's free and easy.