I totally outdid myself this time. This is positively the most intensely boring post I’ve written so far. It’s so boring that
I’d be tempted to bet that I’ll never write a more boring post as long as I blog. I specifically use the word “tempted” here because I secretly know I’m really not giving myself the credit I deserve. I know that at some point I’ll write something even more boring.
I would delete this post if it hadn’t taken me so much time to write. I wrote this a few days ago when Safari for Windows was released, and I’ve been sitting on it since, knowing it was enough to make even a highly caffeinated reader pass out cold. I’ve quite honestly even bored my self to the degree that I, the author, can’t really get through it without falling into a few narcoleptic fits.
What I decided to do is summarize it here, and then, if you’re feeling particularly masochistic, you can read the unabridged version after the jump.
Summary: Safari doesn’t quite make the bar as far as adhering to standards goes. Safari for Apple is borderline sucky, but at least it integrates nicely with OS X. Safari for Windows simply sucks. I don’t know why we need another sucky browser since the dozen sucky browsers we already have to choose from provide plenty of headaches for users and developers alike. The iPhone is going to rule, but is probably the culprit behind Apple’s release of Safari for Windows.
That’s amazing. These five sentences faithfully sum up the gist of what I was getting at and it’s still boring.
I’m the first to admit that Apple rules. As soon as I can manage it, I’ll try upgrade my mobile phone service to include high-speed internet and jump on the iPhone bandwagon. That said, I have really never been a fan of Apple’s Safari browser. I am a firm believer in having one browser and email client on all my computers. For me, that means a browser and email client that runs on both Windows and OS X; in my case it’s Mozilla Firefox for browsing and Mozilla Thunderbird for email. I do this in order to minimize incompatibilities and differences between the the various systems, and it minimizes any adjustment I have to make when using these tools from different computers and operating systems. So, in principle, I’m trilled at the idea of having Safari available on Windows and I could theoretically drop Firefox as my main browser and use Safari instead. But the bottom line is, Safari is just not a great browser. It’s not fully standards-compliant, and it’s missing many of the sophisticated features that Firefox and Internet Explorer have that, for example, let users edit their blogs in editors that look and behave much like Microsoft Word. (Safari users may have noticed that they only have the “Code” tab available when editing their posts in Safari, whereas Firefox users have a nice, visual editor.)
In my spare time, I have been working on several AJAX web applications for my personal and family use. The technologies and names change, but the biggest problem developers and designers face when building applications designed to run in a web browser has stayed the same: cross-browser compatibility. No matter how much experience I have building cross-browser code, there is always some issue that comes up that costs me hours upon hours of struggling with idiosyncratic issues before the application works in all the browsers. Since Firefox is my main browser, I use it to test the code I’m writing, and then I check if it works in the other browsers and do my best to resolve any issues that come up.
I ignore anything but the most popular browsers. Before Safari came along in 2003, that meant I was developing for Firefox (or Netscape before that) and had the annoying task of getting my application working in Internet Explorer (which, in code, I refer to as Internet Exploiter, by the way). Internet Explorer has never been standards-compliant, and although it’s gotten better, it is still a disaster. For my personal work, I generally take a “good enough” approach to IE: if it’s works but it’s not pretty, that’s good enough. And, besides, I always attach a message somewhere that says something like, “DutchMonkey Productions Recommends Firefox”. I call that “fair warning”.
Enter Safari. I would never, ever go so far as to say Safari is another “Exploiter”, but it is not nearly as good as Firefox from a standards perspective. In fact, the ugliest hacks I’ve ever had to put in place to get my code working has been in Safari. And that hurts, because I don’t like to think of Apple that way. Now, I’ve never really researched the root cause of some of these issues, and I can’t say for certain whether the issues lie with my code or with Safari, but the fact remains, once it’s working in Firefox and Internet Explorer, there is often a third, painful struggle to get it working in Safari, and it has on a few occasions resulted in an ugly hack. Admittedly, the struggle has been made worse by the fact that I develop on a Windows machine, and I could only test Safari on the Apple. Assuming that the application acts and looks exactly the same on Windows Safari and Apple Safari, that might be alleviated to some degree. That said, it’s pretty unlikely this will be the case since there are even minor differences between Firefox on Windows and Apples, especially in cases where the application relies on certain events firing in a certain order - or even firing at all.
Anyway, this is a lot of talk to get to my actual point, which is to ask why the world needs so many browsers?
What is Microsoft getting out of having Internet Explorer on the market? What does Apple gain by having Safari? Does having those browsers available increase sales of their operating systems? Maybe.
What do users gain by having so many choices? There are dozens of browsers to choose from, and the differences in capabilities such as tabbed browsing, bookmark, and download management are minor, but most offer limited capabilities as far as support for standards outlined by the internet’s governing body, the W3C. Firefox is the closest to supporting those standards, and the rest are in the mob: Internet Explorer, Safari, Opera, Camino, Sunbird, the list goes on. Who needs all those choices? Does having those choices somehow improve the quality of the user’s experience on the internet, and what the internet is capable of? Probably not.
Competition between browsers does not necessarily drive the capabilities and standards that are outlined by the W3C. The standards are clearly defined, and developers of browsers are expected to adhere to them, with varying success. There are various items that the W3C lays out as “future” standards where a feature is named, but no standard functionality or behavior is outlined. These are few in number, and this is where browsers really fight to come up with the best implementation which they then hope will be picked as the “standard” by the W3C. Here again, the minor players don’t figure into the battle, and it comes down to a battle between Firefox and Internet Explorer.
That’s not to say there’s no value in browser-browser competition. Some great features have come out of this: tabbed browsing and the in-line search box. (Incidentally, I believe we have Safari to thank for both of those features.)
The bottom line is that user’s experiences and the internet’s capabilities are not significantly driven by the capabilities of the browser; the user’s experience is driven by the quality of the application the users are using, and I believe the quality of these applications - both the number of bugs and the performance - would improve dramatically if every user on the Internet used one browser (I vote for Firefox). Ok, I understand that the Firefox developers would get lazy and the browser would start to suck, but lets ignore that and consider how competition between applications on the Internet is driving capabilities and not the browsers themselves.
Take, for example, the online Mapping services. Mapquest, Yahoo!, Google, and Live Local are some examples that come to mind. The competition between these services is fierce and the service as a whole is improving with leaps and bounds. Take Live Local and Google Maps. You used to just type in an address and get a static map back. Then AJAX came along and Google decided they could make their map more interactive and offer features like sliding the map around and zooming in without reloading the map. Major improvement, right? Well, now it’s gone so far that you can draw a route on the maps, check traffic and accident conditions, and even get weather or topographical information. The need for their application to be cross-browser compatible has not improved the service; rather, it has increased the amount of code required to make the service run, thereby increasing the number of bugs and slowing development time.
This is an incredibly long way of saying that Safari is not as good as Firefox and I don’t see the point in porting Safari to Windows. Is having another substandard browser really going to improve anyone’s experience on the internet?
Note: This post completely ignores the fact that Apple has also made their source code for Safari, called WebKit, open-source and provided an extension development API. The fact that Apple has made the source code open makes Safari different from other open source projects in that it is backed by big for-profit companies (Apple and Nokia) rather than by an nonprofit organization. The extension development API is a toolkit that allows developers to build extensions or plug-ins for Safari. Since Safari will not only run on Apple computers, but also on the Apple iPhone, that means anything built for Safari will now be available on OS X, the iPhone, and Windows. And that is most likely the reason Safari for Windows has been released.






