A browser is more than script

Chrome released on Linux, and IE8 released from beta. Now people are beginning to question Firefox’s increasingly bigger piece of the blogger pie. Case in point, PC World.

Mozilla have several grand aims, and there’s much to be admired, but they’ve forgotten how to make a decent browser. I feel plenty of loyalty for them, because they’ve done more than anybody else to further the cause of open source software in the real world. But when I tried Chrome, as incomplete as it was, I realized I’d found a replacement for Firefox. As soon as it gets to beta under Linux, I will switch to Chrome. No question. It’s just infinitely better. It’s like when we all switched from Alta Vista (or Yahoo!) to Google back in the early noughties. The king is dead! Long live the king!

I was asked my opinion about the future of JavaScript applications this week, especially in light of the blazingly fast Chrome. I was rather surprised at the emphasis on JavaScript, because a browser is more than just a machine to consume script. A browser must also render a web page, as the designers built her; must display photographs accurately, hopefully using any photographer supplied profiles; to render the more complex SVG, in addition to the simpler Canvas; to handle complex file types, including video files, not to mention supporting different markups, such as XHTML in addition to HTML; to provide the utility to enhance the user’s experience, up to and including any extensions, such as the one I use to collect a page’s RDFa. Why, then, are we reducing the browser to nothing more than a device to to render HTML and JavaScript?

Firefox is working on its scripting engine, but it’s also been improving its graphical rendering engine, including adding in built-in support for color profiles, as well as improvements in support for CSS3 and SVG. Chrome has no support for color profiles, it’s graphical rendering engine sucks, as can be seen if you look at CSS3 curved corners in the browser, and it regularly fails my SVG tests. Try this SVG file in Chrome, but don’t blame me if your CPU spikes. Luckily, it seems that Chrome just aborts SVG files it can’t handle now, rather than fry the CPU. Then try the same page in Safari or Firefox; though both render the page slowly, they do render it—Chrome only rendered the file the third time through. It aborted the page the first two times. And the quality of the rendering? Well, see for yourself.

Look at my photos at MissouriGreen. Most use a color profile. Now, the photos look relatively good in Chrome on Windows, because I’m favoring a sRGB color profile to ensure maximum coverage, but if Chrome is ever implemented in the Mac, the photos will look plain, and washed out, as they do now with Opera. Not so the latest Firefox, and Safari.

Lastly, look at this site, or Just Shelley in Chrome, as compared to Safari, or Firefox, even the latest beta of Opera. I make extensive use of box and text shadows, as well as CSS3-based curved corners. No browser is perfect in its implementation of CSS3 curved corners yet, but the anti-aliasing in Firefox and Safari is vastly superior than what you’ll find in Chrome. I have noticed, though, that Chrome has improved its text and box shadows: it doesn’t plaster them half way down the page, now.

Why, then, do we talk about how “superior” Chrome is? And how Firefox is dying? When one looks at all of the browsers from an overall web experience, only IE8 is worse than Chrome.

I apportion blame for an over-emphasis on fast script over everything else equally between Google and the current HTML5 effort. I found it telling that, at the same time people are lambasting Firefox for “slowing” down, and praising Chrome for “speeding” up, Douglas Bowman is leaving Google primarily because the company relies on engineering practices, at the expense of fundamentals of design. One doesn’t have to stretch one’s intuition in order to see that the “machine” is also the emphasis in Chrome. But the same could also be said about the HTML5 effort: an emphasis on mechanistic aspects, such as client-side storage and drag-and-drop, at the expense of a more holistic environment, such as including support for SVG and ensuring continued support for accessibility—though I think this week, at least, client side storage has been pulled for inclusion…elsewhere.

Speed is important in a web browser, speed and efficiency, and Firefox isn’t perfect. Newer versions have been locking up on my Leopard machine, to the point where I now prefer Safari on the Mac. If I had to take a guess, Firefox has threading issues. It also needs to work on isolating extensions to the point where they can’t harm the overall browsing experience—or at least put something in place so that one knows certain extensions can adversely impact on browser performance.

At the same time, Chrome desperately needs to improve its graphics rendering capability. As this occurs, and as Chrome gets loaded down with extensions, I don’t think we’ll see the same fast speeds when rendering pages we see now.

It’s all a question of balance—the best browsers are the most balanced browsers, and sometimes this means slower page loading in support of better page rendering. As it is, Chrome, Firefox, Safari, and Opera are all giants towering over the anemic and disappointing IE8. If we want to talk about a browser “dying”, I have a better candidate in mind than Firefox.