|Home » Learning Curve
A Word on Gruber
Actually more like 5,000. But it's about time.
There comes a time when one has to speak out about all the idiots in this world, especially when said idiots are interfering with our own lives.
John Gruber, the notorious 'Daring Fireball' and rephrased by some the 'Daring Gayball', is one such idiot.
What really hurts in this case - with this idiot - is that he not only has phone numbers which go deep into One Infinite Bloop (or so he brags to the fanboys) but he is more of a zealot than the rest of them.
He's also shown on at least one occasion that he has absolutely no chops when it comes to security, claiming the choice between Windows and OS X (or Unix) is merely a 'matter of taste' [sic].
But John Gruber, like all those zealots out there who had no clue what Steve Jobs was doing for twelve years, played with their beige boxes and only with their beige boxes and rarely if ever would breathe air in the same room as an alien computer.
There is a rabid reality distortion field in play here, and unless you realise this at the outset there is no way you will ever wrap your mind around it.
In an old piece recently linked again, Gruber goes on about good old Avie when said Avie stepped to the side in 2003 and let Bertrand Serlet take over the reins. While starting with the accolades (that's always how you get someone ready for the sucker punch, anywhere but here) he quickly and with determination goes in to chew the poor Tevanian to bits.
Here's where the reality distortion field comes into play: the crux of this matter is the 'notorious' (Gruber's word) technical note 2034 which, according to another devoid-of-life idiot at MDJ, was personally written by Tevanian himself - and which conveniently cannot be found anymore.
Thus it's a free for all to claim anything one wants about 2034. But be advised: there is nothing at all strange about 2034, and in fact most of the industry heavies later backed 2034 up - names like Steve Gehrman (Path Finder) and Scott Anguish, Eric Buck, and Don Yacktman, co-authors of the formidable Cocoa programming bible. All say the same thing (although perhaps not as strongly as Gehrman who said 'metadata sucks balls') namely that idiots like Gruber - and of course everyone's favourite fascist John Siracusa before him, and all the full-blown beige box Happy Mac idiots - are 'full of it'.
What does Gruber claim about 2034? Read on - deliberate innuendoes are in bold.
The Good, the Bad, and the Avie
Tevanian's legacy is marred, however, by Mac OS X's usability flaws, most of which are attributable to Tevanian's nearly unyielding obsession with promoting old Next technology over old Apple technology. His technical acumen may be undisputed, but neither is his tin ear for usability.
[Note: Sir Tim Berners-Lee chose NeXTSTEP, and not MacOS, to invent the World Wide Web because it represented, according to him, the first 'point and click interface' that actually worked. Read Tim's book yourself to see. Ed.]
Epitomizing this flaw was the infamous Technical Note #2034, entitled 'Mac OS X Programming Guidelines', which as reported by MDJ was written by Tevanian personally. Technote #2034 was so inflammatory, and in places so ludicrous, that Apple withdrew it afters howls of derision from professional Mac developers.
[Note: 'professional Mac' is an oxymoron. The real pros never expressed any derision. In fact they organised a protest of their own against the 'howls' of the likes of Gruber. Whatever: Gruber is not, has never been, will never be a 'professional'. So be it. Ed.]
It's still down, thus the lack of a link to it.
[Note: this is a blatant lie. If Gruber wanted to deliver 2034 he could do so as easily as anyone else, and in fact there is a link to it at the bottom of this page. John Gruber like the rest of these whining fanboys has a copy of 2034 - be so certain - it's just that it's not in his interests as a demagogue to allow you to read it for yourself.]
But #2034 is nowhere to be seen. And for good reason. Technote #2034, ostensibly a series of guidelines on how to write better Mac OS X software, in fact amounted to little more than dogma against Mac technologies. E.g.: Mandating filename extensions in lieu of genuine type and creator metadata for 'compatibility'; recommending against using HFS metadata at all, because doing so causes performance issues for UFS disks (no matter that UFS is a vastly inferior disk format); promoting Objective-C as a more portable cross-platform language than C++; and, most laughably, recommending the use of hard-coded pathname APIs for accessing files, rather than more flexible, friendly, and traditional Mac APIs which access files by file ID.
[Note: hard coded path names: the web is built around them. That's laughable all right. Ed.]
Mac developers tend to be independent thinkers, and flatly rejected the precepts of Tevanian's 'Guidelines'.
[Note: this, in contrast to the above, is the real laugh. Makes it sound like they're some kind of formidable brain trust instead of the laughing stock of the industry. Ed.]
All too often, Tevanian's decisions and edicts have been dogmatic rather than pragmatic. For example, the decision to build Mac OS X around the Mach kernel rather than Apple's own NuKernel. It's certainly conceivable that Mac OS X might have shipped significantly sooner had Apple used NuKernel.
[Note: shipping didn't hinge on yet another fiasco (NuKernel) from Apple but on backtracking so all the features Gruber likes were incorporated into what became the 'mess' that today is OS X. Ports of OPENSTEP - to HP/UX, Solaris, even Windows NT - took months - not five years [sic]. Ed.]
Such kernel gossip, however, is speculation. In other areas, Tevanian's decisions have had a demonstrably detrimental effect on Mac OS X usability. The aforementioned filename extension shenanigans. Or the aforementioned admonition to use path-based APIs to access files, which advice directly led to Apple installers which failed to work if you moved or renamed any of your applications, and even worse, the infamous iTunes 2.0 installer debacle, which led to entire volumes being deleted - perhaps the worst bug in Apple's history, and which could have been avoided simply by using traditional Mac OS file access APIs.
[Note: the iTunes debacle was caused by an inept 'Apple' programmer neither understanding Unix shell scripting nor - in typical 'Apple' fashion - testing his script before letting it out the door. Ed.]
In short, many of Tevanian's design decisions have not been made with the best interests of Mac users in mind. Here's to hoping that Serlet either has a better sense of usability than Tevanian, or that if not, that he's humble enough to delegate such decisions to those who do.
As this article understandably caused even die-hard Mac zealots to react, Mr Gayball had to issue a counterattack (or retraction, whichever way you have it).
A handful [sic] of readers emailed to complain about Monday's mixed review of Avie Tevanian's legacy as Apple's vice president of software engineering. In particular, this concluding sentence:
'In short, many of Tevanian's design decisions have not been made with the best interests of Mac users in mind.'
The gist of the griping can be summarized thusly: What you describe as 'bad' under Tevanian doesn't seem all that bad. An unpopular technote that was eventually withdrawn? So what? I don't care about developer documentation. How did that have any effect on real users?
But that's just it - Technical Note #2034 was not merely a web page of developer documentation. It was a description of de facto policies governing Apple's own software development, certain of which policies clearly were not in users' interests, and but which Avie Tevanian wanted all other Mac developers to adopt. While the technote itself was rescinded, the policies, as applied to Apple's own software, were not.
Take, for example, Tevanian's inexplicably fanatical antipathy toward HFS file type and creator metadata.
/* * */
Who is John Gruber?
Finally, although we all know who Avie Tevanian is - or should, as he was instrumental in ushering in the uniquely stellar NeXTSTEP - perhaps we should as well know about John Gruber?
Who is John Gruber?
John Gruber is nobody. Nobody. He has no software to tout, no software to put on his resume; he worked a while for Rich Siegel, which is hardly something to put on a professional resume anyway - au contraire; he says he's a web designer; but he also says his own website represents all he knows about web design [sic] which if it be true is a singularly devastating condemnation.
In short, John Gruber is just another one of these assholes like John Siracusa - another 'john' - who dabbles in web design, who has no other qualifications whatsoever - and who just like his 'john' counterpart thinks it's perfectly OK to lord it over the real engineers - the real engineers like Avie who 1) helped build the MACH kernel at Carnegie Mellon; 2) helped design the stellar NeXTSTEP classes; and 3) still could manage to keep a good product, as Gruber admits himself, coming in on time - and even to keep bad products (MacOS 8, MacOS 9) doing the same.
[Note: make no mistake about it - anyone like Gruber who says MacOS 8 and MacOS 9 were 'good' is a certifiably psychotic 'fanboy'. You don't have to have run these sorry excuses for systemware to know this; you need but quote that other 'john' who admits that neither of them can stay the night just idling - they crash all by themselves. Perhaps beige box weenies are used to this kind of behaviour, but that's hardly the point: all it does is point only more dramatically to the lack of chops in these individuals and raise the question even louder: 'why the F can't these wimps mind their own business?' Ed.]
And as for that horrible 2034 which Gruber can only tell you about but not let you read for yourself: you really didn't think it was that hard to find, did you? Gruber has a copy of it - all the beige box fanboys do. You can get your copy right here - downloaded only a week ago.
Apple Technical Note 2034
<ftp://rixstep.com/tn2034.pdf> (172,506 bytes)
But to spare you the trouble and the time, here are the salient points.
- There is nothing at all 'incendiary' or 'inflammatory' about this TN. It might have been authored originally by Avie, but the language is typical of the mill a thing like this will go through before being released. The content might be at the behest of Avie, but Avie was hardly alone here - and this is not a subjective call anyway: it's just the 'way of things'. OS X has gone this way and continues to go this way, technical note or not. The language used is in fact extremely polite and helpful - and again, Avie has been able to give us an OS and no one's seen Gruber come with a single AppleScript yet.
- Should Avie have had a prejudice against the 'Mac' way of doing things he would hardly be alone, shared as this opinion is by almost every professional in the industry. It's not really going out on a limb to say 'MacOS sucks' even if Avie never was close to doing that. Credit Avie instead with infinite patience in the face of these fucking idiots with John Gruber vying continually for the lead.
- The first section of 2034 says 'binaries should be Mach-O'. Of course they should. This is a new operating system. This is something even David Pogue goes on about. All the idiot fanboys out there think they got an 'update' to their eminently forgettable 'MacOS'. They did nothing of the sort. In fact, if Avie had not conceded five whole years (and countless wasted marketing opportunities) for the sake of these insufferable drooling fanboys, Apple would today be a far more successful company and its OS would still be rock solid.
[This is a point that cannot be harped on too often: it is precisely because of all the concessions to the likes of Gruber that OS X today is no longer Unix and is suffering security weaknesses that no other Unix release will ever have. Ed.]
- Section two of 2034 says 'run performance tools on your your binary'. Considering the way beige box wannabe programmers work, this is hardly bad advice. But all platforms have performance tools; mentioning them here is hardly 'inflammatory'.
- Section three is another innocuous 'don't use processor resources unless you have to' and goes on to say 'remember that your code is executing on a fully preemptive, multitasking operating system'. These are the basics for writing code for 'real' operating systems, but Maccies haven't had one yet (even Microsoft beat them to the punch) and this advice, while trivial to any 'real' pro, is best put in nevertheless just to be safe. And again, there is nothing 'inflammatory' here.
- The next section is called 'Use Carbon Events in your Application'. Why it is here is a mystery; NeXTSTEP certainly didn't have any Carbon Events; it didn't have Carbon either (thank goodness). The section merely refers to an Apple URL where more information can be found. Nothing 'inflammatory'.
- Here's where the good stuff begins, so instead of you reading an interpretation of it, read the entire unexpurgated text instead - and try to figure what is here that can be construed as 'inflammatory' - or what for that matter doesn't ring like good old common sense.
**** WARNING: INFLAMMATORY LANGUAGE ****
Avoid using resource forks
Mac OS X is intended to be an excellent Web citizen, a player in a networked world where often only 'flat files' are recognised. It must provide access to file systems and network protocols such as WebDAV, NFS, and SMB.
Toward this end, the resource forks of HFS and HFS+ files should not contain resources or any other critical data. Carbon applications should put their resource data in the data fork of separate files (such as .rsrc files). This strategy also makes applications easier to internationalise.
Use file extensions
If your application creates documents, those documents should be saved under the filename extensions claimed by the application in its Info.plist. Your application may use type and creator codes as an additional means of document typing, but extensions are essential because they are more durable. As with resource-fork data, type and creator codes (which are stored in the Finder Info fork) can be stripped off as a file travels between different file systems. Unless a user deliberately removes them, file extensions are left intact. More information here: http://developer/apple.com/techpubs/macosx/ReleaseNotes/FileExtensionGuidelines/html.
And that's it. There are more sections about how to make good OS X applications, why C++ is not the best language to use with the dynamic binding of OS X (which every 'pro' but certainly not the likes of John Gruber understands all too well) but it's the above two sections which ignited the beige world.
Outsiders may very well be scratching their heads at this point and asking 'WA?' as they can't see what all the hubbub is about, but again the reminder: there's a reality distortion field in play here. You hear rumours about how these beige box players are idiots, but you never get close to it like this. These are real fucking idiots.
Grab that one real good: the beige boxers see those above two sections, supposedly authored by Avie Tevanian, as inflammatory. Anyone with an ounce more intelligence than your average shit for brains Maccie sees them as fucking common sense.
And it's not as if 2034 is trying to be autocratic - or dogmatic or whatever Ms Gruber called it - these are just the facts of life. There is an Internet out there and your friends can't receive, see, or use your files if you don't get with the programme.
OS X saved Apple's sorry arse, and it's almost a shame that happened. Apple would have been sold to Sun, or IBM, or Philips otherwise. They were in dire financial straits by May 1996. They had product managers that used to holiday in Jonestown. They had increasingly crappy hardware bound to increasingly crappy software.
In fact about the only thing they'd ever had was a way to dumb things down to such an incredible degree than even the likes of John Gruber could pick up a mouse and feel like he was intelligent.
And for that the world will never forgive.
Why go on about this, attack poor John Gruber? Why do dogs chase cats? But it's more than that: Gil Amelio remarked after the NeXT merger that he thought he paid too much for NeXTSTEP (over $400 million). That was certainly not the case, considering the fact that NeXTSTEP remains in a class of its own, especially today - and even less so considering the dubious engineering might of Apple were totally incapable of getting a product of their own out the door.
But considering what OS X is today - after the John Grubers of the world have finished with it - it's flat out exorbitant.
If Daring Fireball looks like shit in your browser, you're using a shitty browser that doesn't support web standards.
- John Gruber
No, it's because the author John Gruber is shit, doesn't know shit, and is too full of himself (shit) to learn.
- Brendon C Bleebwart