Does Apple Throttle The Competition, Microsoft Style?

i-adadfbca326e5a1894f73206ab52a3ab-apple_computer.jpgThe developers of Firefox ran into an interesting situation with Firefox 3.0 (in production). There are reasons for it to have run faster than Firefox 2.0 on a Mac, but in some ways it ran more slowly.

After a great deal of research, they figured out why. Essentially, there is a thing that happens to software running on a Mac that does not use certain native Apple system software ... causing it to run much more slowly. But a very simple change (which is somewhere between undocumented and very very poorly documented) in the software can fix it easily.

When this article was picked up on Slashdot, the result was:

"Vladimir Vukicevic of the Firefox team stumbled upon some questionable practices from Apple while trying to improve the performance of Firefox. Apparently, Apple is using some undocumented APIs that give Safari a significant performance advantage over other browsers. Of course, "undocumented" means that non-Apple developers have to try and reverse-engineer these interfaces to get the same level of performance. You really have to wonder what Apple is thinking, considering the kind of retaliation Microsoft has gotten for similar practices.
[source]

But Vladimir, after providing a gruesomely detailed (but interesting) description of the problem and how he figured it out, added this note on seeing the Slashdot story:

Edit: Slashdot seems to have picked up on this, and in typical style, has completely misunderstood the post. To be clear, I do not think that Apple is in any way trying to purposely "cripple" non-Apple software. I also do not think that undocumented APIs give Safari any kind of "significant performance advantage" (as Firefox 3 should show!). However, as I said, the undocumented functionality could be useful for Firefox and other apps to implement things in an simpler (and potentially more efficient) manner. I don't think this is malicious, it's just an unfortunate cutting of corners that is way too easy for a company that's not fully open to do.

This is interesting. Vlad is being very very fair, but possibly too fair, to Apple. But, even if his interpretation is right on, this still emphasizes the fundemental difference between Proprietary and OpenSource models for software development.

(Emphasis in the above quotes added)

More like this

This is one of four related posts: Should You Install Ubuntu Linux?Installing Ubuntu 16.04 LTSHow to use Ubuntu UnityThings To Do After Installing Ubuntu 16.04 LTS Some Linux/Ubuntu related books:Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04 (11th Edition)Ubuntu 16.04 LTS Desktop:…
Casual users might not notice much difference between Firefox 2.0 and IE 7.0.  But with continued use, the advantages of Firefox become increasingly evident.  This is especially true for people who take the initiative to install a lot of extensions. What is less obvious, is that Firefox still has…
Now that USB 3.0 is out, when will Linux get it? Well, Linux has it. Windows does not. Mac does not. Are you shocked? If so, you have just exposed a limitation on your own thinking. Linux supports more hardware (overall configuration and bits and piece) than any other system, by far. Linux is…
The Acid Test is a webs standards test to which browsers can be subjected to see which is best. Here are some of the current results for browsers that are released (the one you are likely to use if your software is reasonably well updated): Konqueror on Ubuntu 7.10: 62% Epiphany on Ubuntu 8.04: 59…

but possibly too fair, to Apple

I followed the link and there was an interested discussion in the comments. One comment appeared to explain from Apple's perpective why this was done. Maybe there's reason for his fairness?

Joe, I too saw the comment from Dave Hyatt in that comments threads, but his response isn't really that satisfactory.

First of all, he's saying that Apple doesn't make those API's public because they expose the workings of WebKit that's subject to change. That's a Good Thing(tm). But if that's the case, and if regression testing is a problem, then the essential question then becomes: why is Safari using it.

Surely it can't be difficult for Apple to implement a policy to say, "if it ain't it the book, you ain't using it". I know that I do that with libraries that I write. If I haven't documented how something works, nobody gets to play with it.