Developer Jonathan “Wolf” Rentzsch kicked off his annual C4 indie Mac developer conference in Chicago on Friday night with a provocative claim cribbed from Steve Jobs: He showed a slide of the AppleScript logo in a coffin and declared it dead.
As with Jobs when he declared Mac OS 9 dead back in 2002, Rentzsch was making a point to a group of developers. In this case, Rentzsch was using JSTalk, a JavaScript-based method of scripting applications implemented by Flying Meat Software’s Gus Mueller in his image-editing app Acorn, as a call to arms for developers to embrace a new system for scripting applications and to stop focusing on AppleScript.
It’s an interesting point of view, and one that was tailored to Rentzsch’s audience, since adding AppleScript support to apps is hard and professional computer programmers are comfortable with more formal languages like, say, JavaScript.
I will admit that I’m deeply skeptical of the entire suggestion, not because I think AppleScript is a great language—though I use AppleScript every day, I am painfully aware of how difficult it can be to use—but because I’m concerned that programmers might not truly grasp that their customers aren’t as comfortable writing complex syntax full of brackets and semicolons as they are.
AppleScript, for all its faults, is a language that most power users can understand if they open a script and stare at it for a while. (Its great failing is that this is basically the only way to learn AppleScript.) I can stare at perl or JavaScript for a while and still end up not quite understanding what I’m looking at.
I talked to a bunch of developers after Rentzsch’s presentation, and it was interesting to get their perspectives on this topic. One message was clear: implementing AppleScript support can be really hard. But as one developer told me, “Yeah, implementing AppleScript is hard. You should do it anyway.”
The big questions to me are: Who exactly uses scripting? And what are the best tools for those people?
The vast majority of users of most applications will never automate anything, ever. Then there’s the group of people who want to automate but don’t want to code—the target audience for Apple’s Automator utility. But Automator, as cool as it is, is limited by the number of actions available for it—if you need to do something not supported by an action, you’re simply out of luck. Then there are people like me, who are willing to hack something together in AppleScript, but aren’t comfortable using JavaScript, let alone Objective C. And then there are developers themselves, who are quite comfortable with those languages.
What percentage of the population do those groups fall into? If Automator is made to be more robust, does that mean that AppleScript is no longer necessary? Should we toss dirt on the coffin of AppleScript and embrace JavaScript? And is this really something that should be undertaken by a rebel alliance of indie Mac developers, or is there a core issue about the future of scripting and automation on Mac OS X that should be addressed by Apple itself?
I’m struck by a comment made on Daniel Jalkut’s Red Sweater Blog about this topic earlier this year. “JSTalk is very much by a programmer, for programmers… AppleScript is for normal people,” the commenter wrote. I’m not sure I’d classify AppleScript users as entirely normal, but the larger point stands: people who are not computer programmers but who are power users need some way to control their applications and, most importantly, use scripts to weld disparate applications together in order to save time and improve productivity.
I’m not convinced that Rentzsch’s suggestion that we bury AppleScript and replace it with JSTalk is a good idea, but I do think the conversation is worth having. Scripting might not be a feature used by most users, but I know that my Mac life would be much less productive if I didn’t have access to the slew of scripts I use every day.