Mozilla Project Hurt by Apple's Decision to use KH
Anonymous Coward writes "I Read this article from ZDNet claiming how some of the Mozilla developers were hurt by Apple's decision to use KHTML over Gecko. I can see both their points. Mozilla was made for cross-platform compatibility, and this probably adds to the bloat, however that's not what they were looking for. They wanted small and fast."
It should be noted that Mike Shaver's (formerly of Netscape, still of Mozilla) comments were, as he points out, taken horribly out of context in the ZDNet article.
Apple hurt Mozilla? The only thing that hurt Mozilla was Mozilla. And for the most part, the Mozilla developers know that already.
"Editors," indeed.
http://linuxjournal.com/article.php?sid=6565
Have you been living in a cave for the past few years? They eschew standards? Mac OS X has a windowing system based on PDF, OpenGL integrated at a very low level in the operating system, XML-formatted preferences for every single app and system setting, an ultra-compliant Java2 VM, and an open source foundation with a BSD UNIX personality. It's getting very, very difficult to find new technologies in OS X that are proprietary, and you're complaining that they used one open source rendering engine instead of another? What kind of warped view of the world do you have?
let's take apart your argument, slashdot take-down style:
Apple has never valued cross-platform compatibility except at great urging.
never is a strong word in my books-- what do you call bluetooth, 802.11, firwire, opengl, xml, and usb? refusal to embrace and push for open standards? if anything, apple is the measure of computer industry these days.
From the days of proprietary Apple-only hardware and the squelching of would-be competitors, to the modern day with the refusal to port Aqua and launching the iPod for Macs only.
computers are what apple sells and they stay in business by selling their machines, not other peoples'. the licencing of apple hardware was flawed from the beginning and handcuffed apple into killing the program because of abuse. porting aqua to other platforms would be the end of apple-- remember, they are a hardware complany, not a software company. aqua sells macs, not the other way around. so do ipods. apple builds incentive to buy their hardware, why give those incentives to other platform users?
the integration of an X server in the latest release is definitely the exception to the rule.
pal, you have so missed the boat in your post that i think you should take a step back from this fud. x server is merely the tip of the iceberg of what has been the "exception to the rule". os x is on the cutting edge of the open source / corporate relationship, existing on open standard freebsd and countless other non-proprietary formats. if the other favourite popular target of slashdot could be mentioned this favourably, we wouldn't be here.
just my two cents.
There has been a lengthy discussion on MozillaZine here
here
Snippets:
Jobs said the browser was "based on standards", "works with any Web site", has much-improved performance over IE (page-loading speed is "three times faster", JavaScript performs twice as fast and it launches "40% faster" - comparisons to Netscape 7.0 shows similar performance gains on the Macintosh platform)
Apple [...] has today sent all changes, along with a detailed changelog, to the KHTML developers.
Also:
Mail from Safari team to KHTML devs
and Dirk Muellers response
-- With more than 200 comments this is apparently a big thing to the KDE community
Any sufficiently advanced libertarian utopia is indistinguishable from government.
Apple didn't use QT in Safari. They used KWQ (Quack). That's a wrapper layer, that passes QT stuff onto the ObjC/Cocoa layer. So while Apple may indeed use other KDE stuff (though I don't know what else they would want), it won't be a boon to Trolltech, as they don't have to pay the trolls a dime.
We should be comparing to Chimera, which is the OS X version of the trimmed-down Mozilla-based browser. My copy is about 21M.
Jesus H. Christ! How can anyone claim that khtml ist not crossplatform?
h tml
It can be used without X (kde no X = kdenox, in CVS), without unix even, as Atheos shows.
Nobody remember Konqembedded?
http://www.konqueror.org/embedded.
Also the only slight dependency is qt, which is crossplatform (Windows, Unix, OS X, embedded). As Apple [and Atheos] shows, it is easy to write wrapper to get rid of even that dependency.
Moritz
Here is his blog which talks about it.
Because XPCOM allows plugins to have some semblance of binary compatability, and because it enables XPConnect which makes it trivial to create cross platform UIs. Note that the large amount of code written in XUL/JavaScript is very easy to hack, a lot of contributors to Mozilla started this way. The development time costs were probably worth it alone.
Why do the signatures on our api make almost no sense to outsiders?
Signatures? If you mean function prototypes, they are fairly self explanatory usually. Anybody with a good grasp of C++ who wants to understand them can find out what the portable typing system is.
# Why do we compare our performance almost exclusively to IE?
Because Gecko is feature-comparable to IE (Trident) and KHTML isn't? Also remember that nobody uses Konq and everybody uses IE from a statistical viewpoint.
# If Apple wont use our code because it's too big, do we have any real chance of being used on small devices?
I dunno if they really target very small devices any more. For starters, very small devices probably aren't going to need fully featured web browsers anyway.
Why are we still using xul now that we ifdef [hixie.ch] out platform-specific ui code?
Well, that link goes to a simple preprocessing tool, it doesn't make any mention of XUL I can see. And more to the point, XUL is an abstraction system so if anything removing platform-specific code would make sense. Of course Moz does use some platform specific code, like common dialog boxes.
Using XUL makes a lot of sense btw. Other than Qt which is only free software on X11 platforms, there weren't really any good C++ cross platform toolkits back then. The nearest is wxWindows which wasn't anywhere near as well developed as it is now, and still isn't really up to the quality needed of Mozilla from what I've heard (not used it myself, might be wrong).
The choice was simple - either XUL or Windows only.
Mozilla is complex at points, the use of XPCOM in all parts of the app was a mistake (which is now being rectified in de-comtamination, ho ho), but that's because the web is a complex thing. I think people malign Gecko too much really...
"Reality is just a convenient measure of complexity" -Alvy Ray Smith
Yeah, Gecko is big. It has to be, to get all the layouts correct.
Understand, it's designed to lay out and render, correctly, anything
from non-wellformed pre-W3C HTML on the one end of the scale up
through XSLT at the other end, plus XUL. That's a tall order.
Konqueror doesn't handle quite as wide a spectrum.
That said, KHTML handles more of MSIE's proprietary non-W3C extensions
to the DOM than Gecko does, which _may_ be part of why Apple chose it.
Cut that out, or I will ship you to Norilsk in a box.
A page using CSS Level 2 in IE (pc), Chimera (Gecko on the Mac).
Now, that same page using Safari
You may notice some differences.
AHHHHHHH! I'm burning with goodness again!
- Reakk, Sluggy Freelance
Please, please, please, PLEASE try to remember - Chimera is NOT Mozilla.
Yes, but the argument is over rendering engines, not browsers. Mozilla and Chimera both used Gecko. More specifically, Chimera uses CHBrowserView, which wraps Gecko as a Cocoa NSView sublcass. Safari uses WebCore.
It's a side project, associated with mozilla.org in a similar fashion as Phoenix.
Yes, and Phoenix uses Gecko. Your point?
When comparing Safari to Mozilla, please do it properly, and compare it with the actual Mozilla OS X builds.
A comparison of the Mac OS X build of Mozilla vs. Safari makes Mozilla look even worse. The problem is that it's an apples to oranges comparison because Mozilla includes a chat program, mail & news modules, and all the other X* components. Chimera on the other hand (which may support parts of XPCOM, XUL, etc.--i'm not entirely sure) trims away these parts of the application and provides itself for better comparison. Chimera vs. Safari is as close to Gecko vs. WebCore as you're going to get.
Thanks.
Your welcome.
Lets see:
Chimera: A fantastic, impracticable plan or desire: bubble, castle in the air, dream, fantasy, illusion, pipe dream, rainbow.
Dave Hyatt (for I think it was he, forgive me if I am wrong) said that Chimera was named thus because of the the UNHOLY alliance between the gecko codebase, and Mac OS Xs' Cocoa, object frameworks.
The fact is, and the Mozilla team will agree, that Gecko is a hopelessly over-engineered piece of technology (a little like Quartz). It wasn't built to be 'cross-platform', it was built to be THE platform and with this in mind the engineers of it have turned it into an overcomplicated device.
This does not deny that geko is a fine machine, it is complete, fast and effective.. BUT it is fat, and messy.
When OmniGroup decided to adopt the JS engine from the Mozilla project, they found they had bit off an awful lot to chew.. saying that great areas of it were un-threadsafe and integrating it with OSXs' object frameworks was a nightmare.
Contrast with KHTML.. it is extremely lightweight (if far less complete than Gecko) is more modular and it's hooks outward to the host are more prevelant (Gecko wants to BE the platform remember)
I had no Idea Apple would do this, and was suprised when they used KHTML, but that is probably because I knew little of it.. in fact talk of Apple working on a browser worried me.. because I assumed they would try to use Gecko.. it would have been like banging a square peg into a round hole had they tried to do it.
I'm not taking away from Chimera, they gave the Mac community something great, but look at it.. it's integration with Aqua is roughshod and bizarre, it never 'feels' right.. now look at what Apple have done with KHTML.. it is natural, looks right (like OmniWeb) and works like a dream.
Safari has a -long- way to go, and the bloat will occur (that last 20% of standards to support will add another 50% of code, I'll bet) but now It is, far and away the benchmark in OSX browsing, and I feel it will be for some time.