|Home » Learning Curve » ACP Guru
The Long Run - Extended Attributes from Tiger to Catalina
Remember the Steve Gambit?
When first introduced with Apple's OS X version 10.4 Tiger in April 2005, extended attributes (or 'XAs') were a welcome relief. The nature and use of XAs have changed over the intervening years, but back in 2005 the system was plagued by 'hidden data'. Apple's HI group infamously claimed that if ordinary users couldn't see that hidden data, then effectively it didn't exist - to a great many, this was an unacceptable position.
Two pieces of data, more than others, had been the brunt of criticism: Finder Info and the resource fork. When Apple first pointed out that resource forks could be troublesome in an Internetted world, in notorious technical note TN2034, they were pummeled by the fanbase. The TN was withdrawn, although some people kept a copy, but policy didn't change.
Finder Info found infamous use as well. In the age of the Internet and Unix machines that had finally come of age, marginal groups hung on for dear life to the idea that personal computing could still be innocent and simple and that most of what one needed on a daily basis could be advantageously stored in a single on-disk 'folder'. And, as the user didn't have many folders to open on the desktop, why not see to it that those folders always pop up in the same position and otherwise looked the same? In other words: the anachronistic 'spatiality' principle, eminently doable on the simplistic machines of 1984, but not on Unix machines twenty years later. Of course this 'spatiality' held only for one user of a machine, machines were now multiuser with multiple secure logins, and people would not particularly appreciate seeing their desktop appear and behave as someone else wanted, but no matter. It was better to turn back the hands of the clock and, if they didn't much like being turned back, then force them back, dammit, break them off if need be, because that nonsense David Pogue and Chris Stone talked about, we just can't have that. And although there were a few discrete voices who politely pointed out that 'metadata sucks balls', the great majority joined in the general hysteria until the next sign of roadkill came into view further down the highway.
The creator code and file type fields were also doomed. The idea that every Mac application or extension or nondescript bundle could have a unique identifier that would fit comfortably into four bytes of storage when over half the available codes were already reserved by Apple... No, that wasn't going to work either. Switchers didn't think much about this, as they were just glad to get the F off Windows and run some class hardware, but the greybeards knew, and they were pissed.
And the resource fork: the misery it caused. TN2034 of course. And odds are that most of the outraged voices in the unruly mob hadn't even seen it, but they could speak out against it still the same. And of course the data in a resource fork could be important, but the point of TN2034 was that perhaps - just perhaps - programmers had been a bit lazy? And placed things there that should more properly go elsewhere? That advice holds to this day, when the fancy of even middle-aged boys turns to baseball, for the reality behind TN2034 has not gone away, even if some members of the fanbase have gone away (or else found it prudent to go silent).
So when Apple announced, with Tiger 10.4, that those new extended attributes would replace it all, there were muffled sounds of very cautious applause. Why ruin a good platform for things as impertinent as Finder Info and the resource fork? Why indeed.
But Apple's always been plagued internally by an ideological war. There were those on one side, like Scott Forstall and Rob Braun, who took management and marketing at their word and believed in the future they saw, and there were others who had no such qualms, no such illusions, who thought more about the bottom line for today but not farther ahead than tomorrow, for who cares what happens next week, next month, or next year?
People who were familiar with the NeXT/Apple development environment and tools can't have been many. Apple's in-house programming language had been Pascal, of all sorry options, and give Woz credit for a lot of amazing things, but not for the choice of language, if he's in any way behind it. Pascal is a crutch that starts by breaking your legs. Pascal is notoriously ambiguous. Pascal compilers are weak. Pascal was never meant for production use. And a lot of Pascal code is actually written in UPPER CASE. LIKE FORTRAN. LIKE COBOL.
Not to speak of course of the backwards stack stockpiling which effectively disqualifies a lot of good code. But whatever. The point is that when Steve got the idea for the tablet and then the phone, and Scott looked around for people who might be up to the task, there weren't that many to choose from on a wider scale, no matter how pleasant the learning curve, and although Steve was to have said he didn't believe in new hires for new projects, the question is where he'd get them anyway.
And so we saw support for the base OS slipping, and we saw gaffes in the updates, we saw Tiger ultimately dumped in favour of a wayward Leopard, which was not put together by the secret iPhone team. And Leopard would have to do until the release of Snow Leopard, which was truly a milestone, an OS people talk about even today and remember with unmistakable fondness.
[Did the unexpected success of Snow Leopard have anything to do with the iPhone's first phase being completed so more accomplished people could return to brush things up? Study question.]
But extended attributes had arrived, and the old cruft was finally gone, and that cruft's champions would soon be occupied with tapping their new shiny devices and would no more be much of a bother.
For extended attributes can of course be abused. Any data, any technology, can be abused. Apple's infamous 'protocol hole', for example, the first 'minor' crisis on the new platform, has training wheels in place to this day. The hilarious 'Oompa Loompa' attack, which drove the fanbase into a high level of frenzy, was another example.