Image Comparison in Kaleidoscope (images from LostGarden)

Sofa, the developers of Versions (a rather nice subversion client I don’t use) — among many other things, have just announced a new diff utility called Kaleidoscope. (Of course I was immediately reminded of an old app for customizing Mac OS Classic’s system colors). They’re selling it for €29.

The Mac is not short of perfectly good diff tools for text files. Apple provides a pretty good one (FileMerge) for free, although its UI is a bit spartan, and of course there’s diff if you aren’t afraid of the command line. My current favorites are BBEdit and Subversion’s built-in difference tools. BBEdit’s is not so graphical but has the excellent advantage of showing a list of differences which you can click through. Cornerstone’s is simple, attractive, and has the enormous advantage of being integrated with version control (so you can compare a file against an older version that isn’t actually on your hard disk, or compare two old versions to see where a critical change took place).

This is all well and good, but Kaleidoscope offers what might be a killer feature — image comparison. While Cornerstone lets you view versions of an image side-by-side, Kaleidoscope offers “difference” and “splitter” views. (The “difference” composite mode from Photoshop essentially renders abs( pixel_from_a – pixel_from_b ), giving you bright white where the layers are different and black where they are the same.) Unfortunately, this feature is treated almost as an afterthought and since it’s something any Cocoa programmer could whip up in a few minutes (CoreImage offers this compositing option “for free” — and, look it’s provided as a fully working example from Apple) it’s a bit of a shame.

Kaleidoscope does have a pretty nice UI. It has a tabbed interface and lots of animated transitions. If it actually provided useful functionality, and weren’t ridiculously overpriced, it might be quite tempting.

And finally, it begs the question, does this mean that Versions still doesn’t have integrated diff?