SafariFollowing up on my previous post, Apple just dropped a bombshell: the Safari web browser is now available for Windows. I’ve posted some general reactions at K-Squared Ramblings as to how it will benefit web developers and users overall. The most obvious is that Windows-only web designers will no longer have an excuse for not testing in Safari, which might help break the two-browser mindset.

But what about Opera, specifically?

I remember when Apple first announced Safari for the Mac, Opera was very upset that Apple had decided to go their own way instead of licensing Opera as the new default browser. In retrospect, both sides were right: Apple was right to choose something that they could maintain themselves, without being dependent on an outside provider. (I guess they’d learned their lesson from Internet Explorer.) Opera was right that they lost a golden opportunity: as the default browser on MacOS, Safari has since become the most-used browser on that platform and the third-most-used browser overall, surpassing Opera’s marketshare.

So there’s certainly a risk that Safari on Windows could surpass Opera’s users. However, there is one significant difference: Safari is not the default browser on Windows. It’s hard to tell how much of Safari’s uptake on MacOS is due to it being the default, and how much is due to people actively liking it. Personally, I have Opera, Firefox, and a half-dozen other browsers on my PowerBook, but when I fire that box up, I generally use Safari.

If you look at the functionality available in a base install, from simplest to most complex, it probably starts with Safari, runs through Firefox and IE, then finishes with Opera. Firefox has a wide array of extensions available — in fact, it’s pretty much known for them. Safari isn’t nearly as extensible. You can’t install something that will add mouse gestures, for instance.

I suspect that, at least at first, the audience for Safari on Windows will consist mainly of the following groups:

  • Web Developers
  • Dual-platform users who are used to Safari on Mac
  • People who just want a basic browser and don’t want bells and whistles, but don’t want IE for some reason

If anything, I think Firefox has more to worry about than Opera. For every Firefox user who tricks out his browser with every 1337 extension he can find, there are probably many who just wanted something more stable than IE, or faster than IE. There’s a vocal faction of Firefox users who are frustrated with its performance. I don’t know why they haven’t jumped ship to Opera, but depending on how much memory Safari uses when it gets out of beta, it might prove a threat on that front.

This post originally appeared on Confessions of a Web Developer, my blog at the My Opera community.

SafariWow. I have to admit I was not expecting this at all, but Apple has just announced they’re releasing the Safari web browser for Windows.

Increased consumer choice, of course, is a good thing. The most immediate benefit, though, is that Windows-based web developers (the majority) who haven’t been willing to buy a Mac to test their sites in Safari will be able to do full testing on all four major rendering engines: Trident (IE), Gecko (Mozilla/Firefox/etc.), Webkit (Safari) and Presto (Opera).

Also, there’s some really cool stuff available in recent versions of WebKit that will be great to have available for a wider audience.

Interesting thought: this may be the first browser released since Opera expanded to Linux in ~2000 that is available in the same version on Windows and Mac, but not Linux. Even when Internet Explorer was available for the Mac, it used a different engine than the Windows version did.

I wonder what impact this will have on the development of Swift. Its main claim to fame was porting WebKit to Windows, and it’s been months since their last release.

I also wonder what the status is on re-merging the KHTML and WebKit forks. It’s gotten to the point that Konquerer is only an approximation of Safari, making testing on Linux a little harder than it used to be.

(via Asa Dotzler)

No doubt there’s a 500-comment Slashdot discussion already.

Update: Slashdot’s all over it, and Opera Watch has a thread going as well.

Update 2: I’ve posted my thoughts on the implications for Opera. There’s an update at CSS3.info, where they have previews of upcoming CSS features available in Safari 3.

Update 3: I’ve updated the Alternative Browser Alliance to reflect Safari’s new status. This also solves a nagging doubt I’ve had as to whether the default browser on Mac OS should really be considered “alternative.” On Windows, it definitely is.

Update 4: The Webkit team and Web Standards Project have weighed in. The Windows version of WebKit should be available later today, which will be nice for following progress on issues as it moves from beta toward final version. It turns out there’s a regression and at least the Windows version no longer renders the Acid2 test correctly.

Update 5: The author of Swift says that Swift isn’t going away [edit: the blog has since vanished], and points out that “Swift renders more like a Windows Application, both in the GUI and in WebKit. Safari, looks just like OS X, similar to iTunes 6 and below.” Ever since Apple started porting apps to Windows, I’ve found something odd: A common complaint about third-party Mac software is that it doesn’t look and feel native (one of the big reasons we have Camino as well as Firefox), yet when Apple ports their own apps to Windows, it makes them look exactly the same as they do on Mac OS instead of making them work like native apps. I mentioned this to Katie yesterday and she suggested it might be a case of turnabout being fair play.

Surfin’ Safari posted an interesting remark that highlights the power of suggestion.

There’s a tip floating around to speed up the Safari web browser by changing a hidden setting, “page load delay.” There are testimonials by people who are really impressed with how much faster Safari is after making this change. Only one problem: The setting doesn’t exist anymore in current versions of Safari (1.3 or later), so changing it has no effect.

The author of the shareware tool in question responded, saying that he honestly had no idea that the setting had been removed, and offering a refund to anyone who wanted their money back. And there are a couple of other optimizations it can make.

There are some things that the human mind just isn’t good at measuring objectively, and perception of time depends very much on circumstance. “Time flies when you’re having fun” and “A watched pot never boils” have been known for ages.

From time to time the idea is put forth that Opera (and Firefox, for that matter) needs to start dealing with bad code. There are two problems with that view:

  1. Opera already deals with quite a bit of “bad code” (but there’s always room for improvement)
  2. Just dealing with bad code isn’t enough: you have to deal with it the same way someone else does.

#2 is the tough part.

The rules for dealing with good code are, for the most part, specific. If you encounter well-formed HTML, you can be reasonably sure you know what the author meant. But there are very few rules for dealing with bad code. Trying to "deal with it" means trying to guess what the author meant, and sometimes different assumptions are equally as likely.

Example:


<p><b>Here's some text</i> and here's some more.</p>

Did the author close the non-existent italics by mistake, meaning to close the bold? Or did he open bold by mistake, intending to open italics? Or is the closing italics tag left over from copy-and-paste? Depending on what assumptions the browser makes, it should display it as:

Here’s some text and here’s some more.

Here’s some text and here’s some more.

Here’s some text and here’s some more.

And that’s just a simple example. It gets wilder when you throw in issues like inline vs. block elements. A paragraph should never appear inside a tag for text formatting, like bold or italic. By all rights, starting a new paragraph (or more precisely, ending the previous one) should also revert to plain formatting. But a lot of old pages expect the formatting to continue into the next paragraph, because way back when, a P tag was a double-line break, not a container.

Now, suppose that Browser A always makes the first assumption, and Browser B always makes the second. If someone tests their code in Browser A, and it happens to be what they want it to do, they won’t necessarily notice that their code is broken. The result: the site looks wrong in Browser B, and the page author — who thinks the page is fine, since he tested it in Browser A — blames Browser B.

Multiply that scenario by millions of pages and you have a large chunk of the web as we know it today.

So the solution isn’t just to “handle bad code.” It’s to handle that bad code in the same way that the dominant browser handles it. And since there’s no document you can look to for guidance, that means taking every possible chunk of bad code, running it through the other browser, and seeing what it does to it.

And there are a lot of ways to break code!

Even Microsoft did this back when IE was new. At the time, lots of people were writing broken code and testing it by seeing whether it looked right in Netscape. So IE had to make the same assumptions Netscape did on certain things. Once IE became established, they diverged.

Some relevant articles:

This post originally appeared on Confessions of a Web Developer, my blog at the My Opera community.

The WaSP is reporting that Microsoft will end support and cease distributing Internet Explorer for the Macintosh at the end of January. It’s been about eight months since the latest version of Mac OS X shipped without IE, and almost three years since Apple launched Safari.

While there is an “end of an era” feeling to this, it’s kind of like losing the last veteran of World War I. It’s of more historical significance than anything else. When Microsoft released IE5/Mac, it was hailed as the most standards-compliant web browser available. But Microsoft abandoned it years ago.

Fortunately, not only is Safari a worthy successor, but there are other options as well. What’s great about the web browser field these days is that the major players are constantly improving their offerings and working toward greater compatibility. And soon any website that wants to cater to Mac users will no longer be able to fall back on “Just use IE!” They’ll have to test in Safari, and of course the easiest way to build a website that works in IE/Win, Safari, and Firefox (the two defaults and the major alternative) is to start with standards-based code in the first place—which improves compatibility with even more browsers. Users get more choices, and websites get more users. Everyone wins.