QuicKeys X3 at the Crossroads
CE Software, after some years of financial losses and questionable acquisitions, sold off its QuickMail product (to Outspring Inc.), and then went private in April 2004, under the name Startly Technologies, LLC. Its most significant remaining product is the venerable macro utility QuicKeys X; version 3.0 for Mac OS X ("X3") is the first major revision to appear since the reorganization.
QuicKeys X3 is a decidedly mixed bag. On the one hand, the interface is greatly improved – in fact, this is without a doubt the best interface QuicKeys has sported in its entire 15-year lifespan. Back in my 1996 review of the "Classic" QuicKeys 3.5, I complained bitterly of the wretched modal dialogs-within-dialogs that had to be tediously navigated in order to configure each step of a sequence. Those days are gone. In its use of ordinary non-modal editing windows, helpful secondary inspector palettes, tooltips, and sequence steps that expand in place to reveal their details and can be reordered by dragging, QuicKeys is now a superb showcase of the best Cocoa widgets and practices. Colors and shadings are gorgeous, clickable items highlight as the mouse passes over them – it’s a delight to look upon and to work with. Recording a sequence by demonstration is particularly cool: as you hover the mouse over a button or menu, QuicKeys shades the rest of the screen and shows, by highlighting, that it sees the bit of interface you’re about to click.
On the other hand, QuicKeys fails to take full advantage of Apple’s Accessibility API, on which it depends for its capability to see and click various interface widgets. Thus, ironically, it is blind to widgets that you can detect and control easily using AppleScript and GUI scripting. An example is the list of services in the Sharing pane of System Preferences; AppleScript (as I quickly determined with a little help from PreFab’s UI Browser) can see that this is a table with eight rows and two columns, and can report what the first row says ("Personal File Sharing") and whether the checkbox in that row is checked or not; AppleScript can also click the checkbox if it isn’t. But QuicKeys sees nothing in that pane but the Start button.
This version of QuicKeys also re-introduces a feature present in the "Classic" version of QuicKeys from years ago: decision-making. This is crucial, because you might want your macro to do different things under different circumstances. For example, to turn on file sharing, you want to click the Personal File Sharing checkbox if it’s unchecked, but not if it’s checked (because that would turn it off). Unfortunately, QuicKeys’s idea of decision-making is either to stop or else to skip from one step in the sequence to another – that is, to use "goto," the clumsiest programming construct of all time. QuicKeys X3 also introduces variables, but the manual warns that "variables are one of the more advanced features" of the program, a certain tip-off that something’s amiss. Variables should be the simplest thing in a programming language, the basis of everything else, not (as they are here) something arcane and difficult to use. What’s amiss, clearly, is that CE and Startly, perhaps from a desire to keep QuicKeys simple and dialog-based, have decided not to endow it with a true programming language – which is what it needs if the user is to accomplish anything really useful. (This is exactly why, exasperated, I abandoned QuicKeys in 1996 in favor of WestCode Software’s OneClick, which, alas, never made the jump to Mac OS X.)
The consequence is that QuicKeys X3 occupies a dubious niche. At $100, it’s more expensive than competing macro utilities like Script Software’s $30 iKey and Stairways Software’s $20 Keyboard Maestro, and it lacks the Accessibility API power and programmability that you get for free with AppleScript. Users must decide whether QuicKeys X3’s excellent interface alone can justify its premium price.