Skip to content Skip to navigation

Think Different

« previous next »

The Mac slogan as it applies to Safari.

When it comes to rendering engines for web browsers there are two that matter and the one Apple decided to use as their default browser.

There is the University of Illinois NCSA Mosaic "we invented the graphical web browser" based engine that Microsoft Internet Explorer runs on. In virtually any other arena I'm more than happy to slag the utter crap Microsoft produces, like Exchange/Outlook for example, but in the case of IE I make a notable exception. The one thing Microsoft excels at is making programs that at superficially look good. They usually don't work right and there is sweet bupkas you can do about it when they do fail, but in the case of an HTML/CSS/DHTML rendering engine its whole job is just to look good. That's it. If it weren't for the bloat, mistakes, and security canyons ("holes" is not a sufficient word) involved in Microsoft's continuing saga of "this is almost working so let's abandon it for another random change of direction mandated by marketing weasels" add-ons like VB script, ActiveX, .Net, and others it really would be a great browser. And the NCSA and University of Illinois get money from Microsoft.

Then here is the Gecko engine that runs browsers like Firefox and Netscape. The Gecko\Mozilla engine is based on code that the actually programmers that wrote Mosaic (get it, Mosaic --> Mozilla ?) stole when they left the NCSA en masse to found Netscape. It's pretty good, but full of utterly annoying little abberations. Netscape invented frames, for example. They wrote the spec that the W3C adopted. Yet, up until going open-source, not a single Netscape browser actually adhered to their own spec. You're supposed to be able to define frame dimensions in relative percentages or explicitly in pixels. If you did define dimensions in pixels, though, the rendering engine would actually work in percentages so that on a screen 1024 pixels wide the frame would slop around to the tune of 10 pixels. Up until Netscape 4.x finally represented an insignificant percentage of browsers this was an utter pain in the ass to program around. The new Gecko engine is better, but it still has equally annoying stupidities. The claim is that it is wholly compliant with W3C specs for CSS. That is, to put it mildly, utter bullshit. I generally work with a copy of REC-CSS2-19980512 right beside me for reference. I've yet to run into an instance of something working in Firefox/Netscape and not working as it should in IE. On the other hand there are plenty of instances of things in the spec that don't work at all or don't work like they should. One example would be overflows on box elements. If the contents of the box are changed dynamically the overflow will *not* adjust to the new content.

And then there is Safari and the KHTML engine (and Konqueror on Linux). In short, it is crap. Support for CSS is so utterly minimal and so deviated from the spec trying to make something beyond a circa 1996 text-and-tables design is about as much fun as working with Netscape 3.0. In fact, that's what Safari is - a version 3 generation browser: KHTML 3.0.2 to be specific. Try loading a page that uses layers in a KHTML browser. The layering will come through, as far as I can see, completely arbitrarily. It would be better if it was, for example, the utter reverse of the other two engines, because at least then you could test for the browser and deal with it, but no. It's just a disaster. Fortunately percentage of people using this piece of crap amount to about 1% of the browser audience. WebTV and other appliance users represent a larger audience, and when was the last time you heard a web designer say, "It looks good in IE, Netscape and Firefox, but we have to deal with that 1.2% of people out there living in trailer parks in Arkansas using WebTV's!"? It doesn't happen. What the hell was Apple thinking making this the default browser? Gecko is just as open-source and infinitely more useful. They brag about the speed. Whoop-de-flipping-do. If speed is what it is all about, try Lynx. The engine behind Safari is so marginal, in fact, that www.apple.com doesn't render properly in it. The four ad/feature boxes on the homepage overlap funny in the KHTML 3.0.2 engine. How's that for laughable?

Somebody was definitely "thinking differently" when this decision was made. The people on the short bus think different, too.

Oringinal post: http://mbarrick.livejournal.com/592331.html