Re: I take it...
Originally posted by Catfish_Man
...you don't know much about Mozilla. Mozilla is something more than a browser. It defines its own version of EVERYTHING (strings, hashtables, etc...) and is entirely platform independent as a result. However, this means that:
1) It's not aqua and never can be anything but an aqua-ish clone
2) It takes forever to start up as it loads all the custom stuff it needs
3) It *should* never be able to outspeed a native browser (it does, but it shouldn't)
4) It loses spell checking, keychains, and all the other OS X goodness
Here www.omnigroup.com/applications/omniweb and here [url]www.mozilla.org/projects/chimera [/url] are what OS X browsers should be (although Chimera is a hack of Mozilla and shares many of its problems, and Omniweb has an *incredibly* bad layout engine which is due for replacement in 5.0). Apple (imo) will never market a non-native browser under its name. This rules out all Mozilla based projects. Omniweb is closed source, as are IE, Opera, iCab, and any others I've forgotten. If Apple wants to make a browser, they're going to have to start pretty much from scratch (or buy out one of the others).
Corrections:
1: Mozilla defines its own strings et al? Well, I haven't reviewed the code, but I suspect it either uses the C++ std:string (or a thin wrapper over the top of it) or a thin wrapper over char*. C++ std:string performs better in most cases under Windows than the Windows-only MFC CString class, and unless Mozilla links with gstdc++ as a static library instead of the default shared library, does not increase program load time one iota. Cross-platform libraries aren't all that bad a thing. On the UI side, yes, Mozilla defines some widgets it could have just grabbed from Windows/OS X, and some claim that those widgets cause Mozilla to be slow (my experience is that Mozilla consistently outperforms IE on Windows, but that doesn't mean that the widgets are super-speedy; I tend to run on hardware where widget speed is largely irrelevant and even Java widgets respond well). There is, however, nothing keeping a Mozilla derivative (read: Chimera) from using OS widgets instead (the real advantage being OS uniformity and look/feel).
2: Mozilla does keep its code cross-platform, which means that you won't find a Cocoa call deep in the call stack. However, you don't need to call OS-specific functions deep in your call stack (generally) if you design you application with the slightest bit of forethought. Exceptions would be things like socket communications (BSD sockets work well cross-platform, even on Windows aside from a few ifdef's and changed header file names), threading (pthread is nearly universal as well, except of course Windows, but again the models aren't very far apart), and inter-app messaging (which I don't see Mozilla using, but I may be wrong).
3: Chimera is Mozilla with a Cocoa front-end, minus the extra crap (mail, chatzilla, kitchen sink). While Mozilla "proper" doesn't use platform-specific UI widgets, Chimera does. A native browser wouldn't have many advantages over Chimera.
4: Why cross-platform? Because your developer community instantly grows from negligible to worldwide. I can guarantee you that there aren't more than a dozen programmers interested enough in putting together an OS X browser that they'd lend their time to such a project. Couple yourself to a thriving open source project like Mozilla, however, and that dozen programmers can focus on the platform-specific code instead of the same-as-every-other-browser problems. Also, you'll tend to gain more willing developers because there's at least a chance that what they develop will be successful and widely used.
5: Past efforts. Apple has used cross-platform code extensively in the recent past, not the least of which are the entire FreeBSD underpinnings of OS X, the gcc compiler collection, and Samba (the magic behind seeing Windows shares on OS X). Why would an internet browser be any different?
Unless Apple has some real ideas about how to revolutionize the browsing experience, they would do well to stick with the OSS community and support Chimera or build their own "Chimera" based on Mozilla (which, unfortunately or not, is more in line with their more recent actions). Or just suck up to MS and get IE 6.x+ on OS X, but IMHO IE is inferior technology to Mozilla and should be dumped if the opportunity arises.