While claiming the banner of open source with WebKit, Apple continues to disadvantage their competitors with undocumented APIs that only their apps can take full advantage of.
Despite this (somewhat expected) Apple perfidy, Firefox 3 on Mac is going to rock bigtime! It's fast as hell. It uses less RAM than the competition. It's gorgeous. And it's honestly open, unlike Safari and WebKit.
You want to build something on Mac with WebKit? I'd encourage you to re-evaluate. Apple isn't going to play fair with you. This isn't speculation. It's happening today.
Posted by: Nick | February 28, 2008 6:07 PM
Firefox 3 can't import my bookmarks from Safari. Duh. So much for "it rocks on Mac"...
Posted by: Alexandre | February 28, 2008 6:09 PM
Nick, WebKit isn't entirely open source. It contains binaries that contain secret Apple code.
Also, WebKit was a fork of the KHTML and KJS libraries from KDE.
Konqueror, from KDE got pretty much left behind when Apple forked their code.
Konqueror does not use WebKit. Konqueror still uses KHTML and KJS of it's own.
- A
Posted by: Asa Dotzler | February 28, 2008 6:14 PM
David Hyatt's response seems to show this as the mole hill it is.
Posted by: Alan | February 28, 2008 6:54 PM
Alan, Dave's comments answer only a small part of the bigger question here. See follow up comments and ROC's post.
- A
Posted by: Asa Dotzler | February 28, 2008 7:03 PM
I really think Hyatt's comments cleared up most things. Sure things can be done differntly, but this is a much smaller issue then the title of this blog post would suggest.
Infact as much as i love Asa and this blog, i have to say i really think he should retitle this and add and update to Hyatt's repsonse. There is an issue worth talking about here, but it isn't something to get into a flame war over.
Also i would like to point out that Apple has worked to ensure changes to Webkit can be taken back and used in KHTML. The relationship was rather problematic at first, but is much better now.
KHTML and Apple from Wikipedia
As a quick disclosure, i do use Safari and OS X, BUT have found the latest Firefox beta to be pretty amazing. I'm just glad we have two rather amazing open source browsers. I hope they keep a good healthy competition going and try to prevent as many flame wars as possiable.
Posted by: cameron mulder | February 28, 2008 7:28 PM
I don't know how you call it open source browser when part of it, for whatever reason, isn't open.
Posted by: cris | February 28, 2008 8:14 PM
Asa, I expected better of you. If WebKit relies on those binaries with secret Apple code to run, how could the Qt, GTK+, and Win/Cairo ports exist? They most certainly don't rely on binary-only Apple code.
Also, if private APIs are news to you, you haven't been paying attention. Adium (one of the projects I work on) uses quite a few of them internally; class-dump Foundation.framework or AppKit.framework and you can turn up tons of stuff.
In many many cases, new functionality has been introduced as a private framework or API, then cleaned up and made public in the next version of the system (IKImagePicker is one example of this).
Posted by: David Smith | February 28, 2008 8:26 PM
old news doesn't make it right. next version of OS, would that be in 2-3 years?
you can call it normal, but don't call it fair.
Posted by: cris | February 28, 2008 8:36 PM
I didn't say it was fair (it's not); I made two points: 1) Asa is incorrect about WebKit's status as an open source project. 2) Private APIs are normal and usually represent works-in-progress. David Hyatt's comment on one of the other blog posts elaborates on this more.
Basically, I think the situation is less than ideal, but not the treachery that Asa is trying to paint it as. I also have serious issues with his attempt to spread fear and uncertainty about the WebKit project as a whole, rather than limiting the scope of his accusations to the two Apple ports.
Posted by: David Smith | February 28, 2008 8:49 PM
Firefox on anything other than Windows is like "do people really use this shit?!"
Posted by: hmm | February 28, 2008 11:02 PM
Posted by: Tristan | February 29, 2008 2:42 AM
David Smith is correct - saying that WebKit isn't open source is without a doubt FUD. WebKit will be included in Qt 4.4 and as everyone knows (or should know), Qt is open source. Work is going on to replace Gecko with WebKit in Gnome as well. Please correct this error in your post Asa.
Furthermore, at least this user, it seems pretty clear that the primary target platform for Firefox is Windows. Of course, that's where most of the users are so it's not entirely surprising, but it is still sad to see.
With that said, the FF3 betas are pretty impressive.
Posted by: Joergen Ramskov | February 29, 2008 3:03 AM
Asa, I think this is over the top. We have no reason to believe that Apple is being malicious here.
Posted by: Robert O'Callahan | February 29, 2008 4:47 AM
Ah, you're just jealous that despite all that money you guys get from Google almost every major player switched/switches to WebKit. Nokia, Adobe, Trolltech, GNOME, KDE -- even your sponsor Google doesn't use WebKit in Android because Gecko's performance is too crappy.
Posted by: Markus | February 29, 2008 8:14 AM
Asa: The author of your first link says your article is 'over the top', above. The author of your second link has updated his post to say 'I do not think that Apple is in any way trying to purposely "cripple" non-Apple software.' and 'I also do not think that undocumented APIs give Safari any kind of "significant performance advantage"'. If you had any respect for the truth, you would remove your article or edit it to point out that it is not accurate. It's this kind of marketing spin and half truths, which have put me right off Firefox as an open source project to follow or support.
Posted by: Ben | February 29, 2008 9:03 AM
Isn't this what got Microsoft into trouble with the EU -- undocumented APIs?
Posted by: John | February 29, 2008 9:15 AM
Asa always been over the top, to everybody, lol, sometimes I like the attitude, sometimes I don't.
Webkit nightly now is 60MB after decompression, how many line of codes are there now in webkit? with limited functionality, Im surprised it got so big.
I repeat, I do not think under the roof of apple is healthy for webkit, if it were to be remain an OSS with bright future.
Posted by: cris | February 29, 2008 9:25 AM
I'm sad now.
WebKit is open source, in spite of the binary blob used on Mac OS X. Mozilla and other projects have been burdened by binary blob downloads and proprietary APIs in general. Also, the WebKit / KHTML split had enough blame for both sides, and it is in the past now.
I'd rather not blog about this, because I think enough has been said and the issue is one to work with Apple WebKit leads on now, not flame or posture about in public. Mozilla advocates risk looking holier than thou, or just whiny, when there's real work to do.
I hope Asa will update his post to correct what I think is false, and to strike through the unjustified inflammatory language.
/be
Posted by: Brendan Eich | February 29, 2008 11:43 AM
Markus, I don't want to get into a shouting match because I like the Webkit people, but this can't go unchallenged.
> Nokia, Adobe, Trolltech, GNOME, KDE
Let's see ... KDE == Trolltech and never used Gecko, GNOME wants to have Webkit as an option (good on them), Nokia just switched from Opera to Gecko on the N810, Adobe wasn't previously using an engine.
Posted by: Robert O'Callahan | February 29, 2008 2:20 PM
Markus must have missed a recent performance memo. But then we don't go out bragging and trash-talking even if we have faster or otherwise better performance than the shipping competition.
Competition means sometimes you win and sometimes you lose ("you" being the browser developer) -- but the web developers and end users win. That's the goal here, mine at any rate, and it is not served by Mozilla and WebKit fans beating each other up.
/be
Posted by: Brendan Eich | February 29, 2008 2:52 PM
KDE != Trolltech.
KDE uses KHTML but will switch to WebKit (first in Plasma, later in Konqueror). Previous plans to adopt Gecko into KDE have been scrapped.
Apple initially also wanted to use Gecko (they sponsored Chimera/Camino development) but went with KHTML.
Posted by: Markus | February 29, 2008 5:10 PM
Markus, Apple didn't sponsor Chimera/Camino development. If anyone could be said to have sponsored it, you'd have to pick between Mozilla and AOL, both of whom pay/paid people who were working on Chimera/Camino.
- A
Posted by: Asa Dotzler | February 29, 2008 5:22 PM
Markus is very confused or misinformed not only about the history of Chimera (now Camino), but also about Apple wanting to use Gecko. I have it on good authority from principals involved that Gecko was nixed for several reasons, at least one not technical.
This is all fun to chinwag about, but it's water way under the bridge. It's more useful to pay attention to recent history.
In that light, and on topic for the original post, I'm still not happy about the "perfidy" line, Asa. I believe WebKit leads when they say they want to get rid of WK* integration points by opening up those APIs or eliminating the need for them on Mac OS X. Let's try to help them make good on their stated aspiration here, not start a flame war.
/be
Posted by: Brendan Eich | February 29, 2008 7:26 PM
Funny how everyone comes to Apple's defense when Asa is flaming them... :)
Posted by: lol | March 1, 2008 7:47 AM
It is inevitable that a high-profile cases of hostile coding will come up. Even if it's not overtly hostile most of the time in the free software sector, there are a lot of passive-aggressive coding practices.
Apple's team has obviously allowed a rift to develop between their teams and those software developers whose are responsible for projects which are ported to run on Apple OSX and compete fairly with the native applications.
You have to say something when it is happening or just watch your application and your brand take a hit in performance and reputation. Apple has been very self-serving and private for many years now. I suppose they're content to remain a niche competitor.
If Apple wants to grow, they at least need to do keep pace with Microsoft in their reform toward respecting user's freedoms. Ideally, Apple should do better than Microsoft in that regard.
Posted by: paul | March 2, 2008 2:23 PM
Function calls hidden inside blobs to an un-documented API...
That's pretty shady.
Someone on Slashdot's coverage of this brought up The Underhanded C Contest:
http://brainhz.com/underhanded/
A team of impartial judges will decide the winner based on (A) How simple and innocent the code appears, (B) How sophisticated the malicious behavior is, and (C) Style and humor value. For this year's challenge, you get extra points for the following:
* Extra points if your code looks innocent under syntax coloring;
* Extra points if your hack, when discovered, is plausibly deniable as an innocent mistake;
* Extra points if your hack is genuinely OS-dependent, rather than hardware-dependent.
Posted by: Paul | March 2, 2008 3:52 PM
I'm impressed with all the Ph.D.s in Apple Apologetics here. Very nice.
Fact remains that what Apple is doing is a shady, very (dark) gray area practice. This is exactly the stuff that Microsoft was sued for, among other things, in both EU and the United States. The only thing that saves Apple's bacon legally (but certainly not morally or ethically) with regard to undocumented APIs is that Apple is not a monopoly, and God-willing, never will be.
Unfinished and unstable APIs are indeed used during development. They are completely above board only when they are clearly, openly and completely *DOCUMENTED* and when calls to them are performed in a clear and open fashion. I don't think this has been the case in this scenario.
Asa is doing all of us a favor by shining the light on the shadows. Thank you Asa and please keep it up.
Posted by: Leo | March 7, 2008 1:03 PM
Isn't WebKit fully open source (Konqueror is based on it!)? Eventually Apple's implementation might not be, but not WebKit per se.