Sorry for the mess. I'm moving things around. It'll be better soon.

Sustainable Scripting

8th January 2016

At NSScotland 2015, Amy Worrall gave a talk about how to enable your Mac programs to be scriptable with AppleScript. AppleScript itself, and the APIs around AppleScript haven’t changed much in the last twenty years. As a result, Amy was able to give her talk on a vintage PowerBook running some equally ancient version of MacOS1.

A few of us knew ahead of time that she was giving her presentation on this old computer, and we recognized the fonts and resolution differences. For some, there was an indication that something was amiss from the tap-tap-tapping noise of the harddisk head that could be heard across the entire room. Many people weren’t aware until she switched to do a live demo.

In order for Amy’s talk to work, she needed MacOS to run on her old computer. She also needed Metrowerks CodeWarrior, for the live code examples, and a program to develop and present her slides on. Of course, because software was distributed on physical media in those days, and there weren’t foolish laws that prevented you from backing up your own data, she was able to find what she needed (mostly from her own collections, as I recall). All of these things worked just as well as they did when they were released, and the computer was as fast and reliable as it always had been.

Barring physical deterioration of the installation media (which can be backed up to newer, more reliable media), there’s no reason why twenty years from now, Amy won’t be able to do exactly the same thing on exactly the same computer.

Phoning Home

The same feat will not be possible twenty years from now, with a computer purchased today. A Mac laptop purchased today, will almost definitely require a new disk in fewer than two decades. When the disk is replaced, it will need an operating system. This is where the fun falls apart: current versions of MacOS phone home during installation2. It is unlikely that the server on the “home” end of “phone home” will still exist and work in the same way twenty years from now.

Users of the Mac App Store got an early glimpse of this future a few months ago when Apple let a signing certificate expire. This signing certificate was used in the Mac App Store’s DRM (Digital Restrictions Management) when the application (which was legitimately purchased) phoned home to make sure Apple still allowed your computer to use the software you purchased. For the time that this certificate was expired, users who paid for programs on the Mac App Store were unable to use them. Worse still, the error message displayed was cryptic and non-informative:

Application is damaged and can’t be opened. Delete Application and download it again from the App Store.3

If the user were to actually follow these instructions, they would have deleted the application they purchased and then found that they were unable to download a “replacement,” because the Mac App Store wouldn’t install new software at that time. Yes, the Mac App Store came back, but what happens when the phoning-home endpoint doesn’t exist anymore? In this future, the computer would refuse to run the existing program, and would not be able to download a new copy.

This major gaffe has been mostly ignored or glossed over by Apple, but it points to a larger problem: the programs that are purchased on your Mac today will only work for as long as the Mac App Store functions exactly as it does today, at best. At worst, your programs only work as long as Apple sees fit that you have working programs (that you’ve paid for).

This error message will be seen again, in one of several possible circumstances. The most likely is that Apple overhauls the Mac App Store, and the “home” end of the “phone home” scenario simply disappears. I expect this to happen within a “regular” upgrade cycle (say, three to five years)4 of a current MacBook Pro. At a certian point, maintaining the “old” phone-home endpoint isn’t worth the hassle for Apple, and they will stop.

The Impermanence of Software

I know that in 2016, it might be hard to imagine a time when the world’s richest company doesn’t exist anymore5. But many of the most influential companies, and much of the most widely used sofware doesn’t exist anymore. Not that many years ago, I used computers from SGI, NeXT, and Sun. None of those companies exist anymore. But the computers work just as well as they ever did: the same is not true of the computer you have today.

We’ve been moving to a culture of renting. The computer you think you purchased from Apple, is effectively rented because the software will cease to exist some day. The media you buy from Apple, Google, Audible, and others is rented because the ability to play it can (and will) will some day be revoked. Thanks to laws like the DMCA and its related friends, you aren’t allowed to make unencumbered backup copies of these things, so you cannot keep forever the media you’ve purchased.

Perhaps it’s harder to see with computers that many of us replace every year or two. But anyone who’s been on a farm will have seen equipment that was manufactured by a company that doesn’t exist anymore. A tractor that has been purchased can eventually fail to work, or will be unable to be repaired because of the same forces.

This terrible end won’t come in one obvious change where we are suddenly unable to do the things we used to. It will come a little bit at a time. Our freedoms, and our abilities to use the things we’ve purchased will be eroded a little bit at a time. This is inevitable unless we start paying attention to what we’re buying, which practices we’re supporting, and what we’re willing to stand for as users.

I would like to look forward to a future where the things that I like, whose operation I’m happy with, work just as well many years from now as they do today. But I fear those days are behind us. I fear we’ve already lost, and sustainability is a thing of the past, not just for software but for everything we organize our lives around.

  1. Spoiler alert! 

  2. I know that you can use tools to make a complete bootable installer for your Mac, but you have to do that yourself. And the installer still phones home, and again on first boot. There is an entirely separate set of problems associated with the “must plan ahead to not be screwed over” angle. 

  3. The error message was a blatant lie. There was actually nothing wrong with the application in this instance: there was a problem with Apple’s oversight of the running of this application. 

  4. Yes, I know you get a new Mac every year and can’t imagine owning such an old machine. But I’m talking about normal people. The people who won’t understand why they aren’t allowed to use the thing they paid for. And then blame computers for not working, when it’s actually DRM and copyright law that don’t work. 

  5. Twenty years ago it was hard to imagine a time when Microsoft would be irrelevant and following everyone else.