Thursday, August 27, 2015

The Death of Scripting

Graham Lee (comments):

And so it’s sad to see scripting die out as the popular platforms for application development fail to support it. Instead of the personal control of the script – I will take this information from that app, and put this part of it in that app – we have the corporate control of the API. This app maker and that app maker are BFFs, sign in here to let them share everything. After all, they know best.

Ultimately the death of scripting is hubristic. We know how you want to use a computer. If you’re trying to do something that we didn’t sell to you, you must be holding it wrong.

Graham Lee:

There’s bash, and powershell, and ruby, and…even Perl is still popular among sysadmins. There’s never been a better time to be a programmer or other IT professional trying to automate a task.

True, but there’s never been a worse time for someone who doesn’t care about computers to use a computer to automate a task. Apps are in-your-face “experiences” to be “used”, and for the most part can’t be glued together.

Brent Simmons:

There are counter-examples, of course — the apps I work on (Mac versions of OmniFocus and OmniOutliner) are highly scriptable. But the trend toward silos, sandboxing, and highly-controlled experiences is clear.

(First thing I did was look to see if Slack has a scripting dictionary. Of course not. Neither does HipChat. Apps these days.)

Update (2015-08-27): Dr. Drang:

I think Lee’s pessimism is temporally misplaced—at least in the Apple world. While I’d never say that scripting Apple devices is in an ideal state, the situation certainly looks better than it did two or three years ago.

[…]

Things are still more locked down on the iOS side, but we now have app extensions to ease some of the pain and Workflow for more complicated interapp trickery.

6 Comments RSS · Twitter

It's very sad. There's a ton you can do with scripting. Some apps still are extremely scriptable (BBEdit, iTunes, to a certain extent Safari) while apps once extremely scriptable don't have many significant features scriptable (Mail, Numbers). The saddest thing is that scripting seems to be something completely unimportant to most developers including far too many Indie teams who once were the main driving force.

It's rather sad when the best examples of scripting come from Microsoft.

That said, the reality is that for people who don't care about computers scripting never was a realistic choice. That was the drive behind AppleScript leading to some of its less enjoyable features. However for casual scripting Automator is simply a much better solution. Unfortunately few apps support Automator. But at least it really is scripting for causal users and probably far better than other solutions.

While I find this to be true for most end-user applications, scripting in general is very alive and well. The ubiquity of simple code examples and utilities on github, gitlab, bitbucket, etc makes mac automation much more appealing at a more general level. The first thing I install on every machine is homebrew and mackup, then go from there.

Also, apps like Slack and Hipchat replace scriptability with a very useful API. Since these are more "services" with multi-platform clients, it makes sense that they go for a more generic solution.

Perhaps there isn't enough demand. I completely omitted scripting from Counterparts Lite so far, and, so far, nobody asked me about it. There are surely plenty of useful things you could do with scripting if this app exposed its document model for the world to see.

To be completely honest, I almost never use AppleScript myself so it just never occurred to me that this should be part of the app. And even though I never really felt at home with AppleScript, I can certainly understand its usefulness, especially if someone requests it by explaining how it'd be useful. So just ask the developer, maybe you'll get it.

I support scripting in my apps even if no one uses the feature--I just consider it to be a hallmark of a good Mac app.

I think scripting on the desktop used to be way more relevant in the 90s because we had fewer apps back then, and the apps we had had fewer features. Scripting helped. It allowed us to automate workflows that spanned multiple apps.

Today, applications are way more powerful, so we're less likely to need to combine different applications. Also, there are just way more applications in general, so if you need to do something specific, chances are that you'll be able to find a dedicated app that does what you want.

I think scripting would still be extremely valuable on platforms where apps tend to be smaller — iOS, for example.

"I think scripting on the desktop used to be way more relevant in the 90s because we had fewer apps back then, and the apps we had had fewer features. Scripting helped. It allowed us to automate workflows that spanned multiple apps. Today, applications are way more powerful, so we're less likely to need to combine different applications."

I've been a very heavy user of AppleScript for two decades, and two points from my experience that directly contradict your premises:

- Almost all of the scripting I do is within a single app. I'd estimate that well less than 5% of my scripting has anything to do with 'spanning multiple apps', and if you eliminate the Finder / file system as a 'separate app', that percentage drops to very rare edge cases.

- I do the overwhelming bulk of my scripting in complex apps. The more complex the app, the more likely I am to script it at all, and the more likely I am to script it heavily. When I do script simple apps, it tends to be very minimal, and it tends to often take the form of GUI scripting, even if the app has an AppleScript dictionary. (There are exceptions, of course. Simple apps I use very frequently that have an AppleScript dictionary will often get attention.)

Leave a Comment