Learning From Kaleidoscope

Back in the heady days of Macintosh System 7.5, Greg Landweber released Aaron, which changed the system's windows and buttons to match the "Platinum" appearance in the upcoming MacOS 8 (codenamed "Copland" after the composer Aaron Copland). Hacked versions of Aaron quickly appeared, with the MacOS 8 images replaced by images of the hacker's creation. Landweber realized he had a cash cow, and released Kaleidoscope, which could switch 'schemes' on the fly.

Apple devotees had learned of a few "Appearances" slated for introduction in MacOS 8: Platinum, Gizmo, Hi-Tech, (and Drawing Board, released only in Japan).

This may have been the birth of the idea of the 'skinnable' user interface; and Kaleidoscope was an early popularizer of the idea. Skins/themes/schemes were implemented by Niji for MacOS, WinAmp & XMMS, WindowBlinds and tgtSoft's StyleXP (win32), Enlightenment, and Sawfish (both X11), and scores of other programs for many different OSes. There now exists a huge theming community, with sites like http://themes.freshmeat.net, http://www.wincustomize.com/, http://www.themexp.org/, and http://www.deviantart.com/ devoted to a rather broadly defined "Theming Community."

Kaleidoscope and Apple were at odds from the beginning, with Apple suing to have (a former Apple employee and Kaleidoscope partner) Arlo Rose's Mekong scheme removed from Kaleidoscope 2.0, and then demanding that the third-party imitations of Gizmo and Hi-Tech never be allowed in the Kaleidoscope-maintained Scheme Archive.

Each new release of MacOS after 7.5 had Kaleidoscope devotees breathlessly awaiting news of whether Kaleidoscope would run on the new OS, and each new point release of Kaleidoscope would introduce support for some new feature of the latest MacOS. Apple's own Appearance Manager, released with 8.5, provided essentially the same theming functionality, although the much awaited Gizmo and Hi-Tech were axed by Apple at the last minute.

Unsuprisingly, Kaleidoscope doesn't work on the completely-redesigned OSX (mac's not Unix!) window manager and widget set. But that's not quite the end of the story.

An Apple employee wrote a tool to convert Kaleidoscope Schemes to OS X Themes, and in retaliation, Kaleidoscope threatened to close its Scheme Archive. If they weren't going to be getting any more shareware registration fees for their now defunct product, why should they provide what could become a resource for the OS that broke it?

Apple has been searching out and requesting the removal of Aqua themes and schemes wherever it can find them, although the determined googler can still find a number of quite good Kaleidoscope, WinXP, and Sawfish Aqua-lookalikes (as well as the old contraband faithfuls, Mekong, HiTech, Gizmo).

A number of new themeing tools have appeared for OSX. Conundrum Software has released Duality. Cliché Software has released as open-source, and ceased development of their ThemeChanger. And Themer 3G is in public beta. None of these appear to provide the full flexibility and window-decoration capabilities (non-square windows and fully-custom buttons and button placement) present in Kaleidoscope, Enlightenment or Sawfish, but most likely something will step up to fill Kaleidoscope's void.

The sad part of this story is the death of Kaleidoscope, the vast number of now useless schemes, the community that will fade into obscurity, and the huge amount of work that will go, ultimately, wasted. It is all to easy to chalk this up to the inexorable progress of software, but it is useful to stop and consider why this community is dying and whether it could have been avoided.

To be as generous as possible to Apple, it is much easier to design a user interface that is consistent and easy to learn if you do not allow the user to customize it. But from the point of view of the power users, that lack of customizability is probably the biggest user-interface failing in the Classic (pre-OSX) MacOSes.This is a reason for Apple to wish that Kaleidoscope fade away; it threatens the consistency of their interface.

But even if you don't buy the consistent-user-interface argument, It's hard to fault Apple too much for perpetually breaking shareware and preventing new features from back-propagating into their old OSes. They are a company, with a brand to protect. I had Platinum on my MacOS 7.5 box. I can now have Aqua on Linux, my MacOS 8.1 install running in the Basilisk 68040 emulator, and under win32. That's one less reason for me to put up the dollars for a new Mac.

The real fault for this wasted work lies mostly with Kaleidoscope. They developers of Kaleidoscope relied on undocumented, unsupported internals of MacOS to make Kaleidoscope work; the continued success of Kaleidoscope relied not only on the continued existence of MacOS as software, but on the Apple's goodwill as a corporation towards Kaleidoscope, and on Apple's level of interest in providing the same features as Kaleidoscope.

This story has been repeated a hundred times over with less-well-known Mac shareware, which suddenly finds itself obsolete or broken in the new OS.

Free software dies too, but the good ideas and the projects that people care about can continue, because the old code and the new code are there for borrowing, imitating and porting. Developing software, even open-source software, under a proprietary system will always run the risk that the proprietary system shuts it down. In other words, even if the Kaleidoscope source had been made available, it would still have relied on undocumented internals of proprietary code, and it would still be dead today.

Hordes of free-software & Unix geeks are switching to OSX, and loving it. It's unlikely that any of the Unix projects being ported to OSX will suffer Kaleidoscope's ultimate fate, simply because their code is open and already runs on other operating systems. But some projects might be in for nasty suprises when new versions of OSX come out that break existing ports in deep and fundamental ways.

I'm sure people will take this in stride; it is part of the very definition of a hacker. Hacking OSX is another very respectable step in a long line of operating systems and architectures that people have been reverse-engineering, just for the hell of it, for decades. But as long as people rely on proprietary software every day, then reverse-engineering it will continue to inconvenience them.

When people get tired of this cycle, there a quite a number of old faithful operating systems waiting to welcome them back.

Posted by matt at 14.10.03 09:45

Subsequently published on freashmeat.net.

Posted by: brainsik at 02.12.03 14:03