A version too far

There is something profoundly reassuring about classic technology: steam trains, old tractors, cars with engines that are tuned using manometers or a stethoscope rather than a computer.

Much of this reassurance arises because of the visibility of their mechanisms, a property that has become somewhat uncomfortably termed transparency. You can see the drive gear and steam of a steam engine, inspect the engine block of an old tractor, and observe the response of carburettors when someone opens the throttle.

Such reassurance becomes tangible when you come to fix things in the middle of nowhere, as eloquently illustrated by Elleston Trevor in The Flight of the Phoenix. Many whose cars were flooded during the torrential winter of 2013-14 discovered that once the electronics of a modern car have been written off, the vehicle itself may as well be scrapped.

Until recently, iOS and OS X differed markedly in terms of maintainability. Granted there are a few who break jail and start fiddling with the internals of their iOS device, but most of us are content to leave our iPads and iPhones as appliances. Not so our Macs, whose Home folders are carefully structured, and we sometimes venture into system-level structures, hidden files and folders, and other internals. But whilst we are happy to let Apple control the innards of iOS, any move to do that in OS X is a breach of our Mac user rights.

First there was the often large store of metadata used by Spotlight for its indexes. Although we do not have direct control over this, there are simple GUI and command line ways of forcing re-indexing and controlling what does get indexed. Then there were the ‘local snapshots’ made by Time Machine on laptops whose main backup was offline, such as when on the road. As they are made to the same drive as the original files, their value is questionable at best, but they can swallow large chunks of disk space without your being aware of them. At least they can be disabled through the command line.

As I detailed in this article yesterday, there are greater problems inherent in another otherwise excellent Apple idea of versioning. Although this has been with us for over three years, it is only now that the number of apps supporting it has grown sufficiently for some to start having bad experiences. I also suspect that it has taken that period to quietly eat away at your free disk space, now accounting for many gigabytes of unwanted or orphaned document content.

Apple’s implementation of versioning also reflects some of its worst corporate auntiness. Not only are users not trusted with effective tools for maintaining the versions database, but Apple has not even trusted its developers with them. Perhaps in its rose-tinted tunnel vision it has also failed to provide the wonderful folk who run its Genius Bars with such tools. Maybe – given the way in which versioning seems to work – it is not architecturally possible to perform maintenance operations in any generic manner.

Don’t get me wrong: I love the concept of versioning, and implemented it in one of my own apps around 25 years ago. But my design was robust, and from the outset had excellent third-party tools for maintenance (including the redoubtable ResEdit). But it bugs me that, after all these years of seemingly listening to the needs of power users, Apple again thinks it knows best, and ties us in to another backup system on top of Time Machine. Unlike Time Machine, though, you cannot turn versioning off in applications which use it.

Mention of ResEdit reminds me of more transparent times, when for each new system or service, there was a maintenance interface. ResEdit was a worryingly powerful resource editor, with which you could convert someone else’s app into a different language, and otherwise spindle and mutilate almost any file on a classic Mac.

Then Apple became more wary about letting the rest of us hack our Macs, and provided more useful and dangerous tools only with its development kits. Those have been progressively dropped, and even the copious developer documentation supplied with Xcode omits information about sensitive innards.

For many of us, our Macs cannot and will not be appliances in the way that our iPhones and iPads might be. An appliance like a washing machine cleans clothes, and is not for washing dishes or pets. Who knows what I might want or need to do with my Mac – and how can Apple? Why do I need hourly Time Machine backups, hourly (or more frequent) version saving, and Time Machine backups of each and every version on top?

I think we need more self-determination.

Updated from the original, which was first published in MacUser volume 21 issue 01, 2015.