I think there is a general feeling among web developers that Safari is lagging behind the other browsers, but when you go to a conference like EdgeConf, it really strikes you just how wide the gap is. All of the APIs I mentioned above are not implemented in Safari, and Apple has shown no public interest in them. When you start browsing caniuse.com, the list goes on and on.
Even when Apple does implement newer APIs, they often do it halfheartedly. To take an example close to my heart, IndexedDB was proposed more than 5 years ago and has been available in IE, Firefox, and Chrome since 2012. Apple, on the other hand, didn’t release IndexedDB until mid-2014, and when they did, they unveiled a bafflingly incompetent implementation that was so bad, it’s been universally derided as unusable. (LocalForage, PouchDB, and YDN-DB, the major IndexedDB wrappers, all ignore Safari’s version and fall back to WebSQL.)
In recent years, Apple’s strategy towards the web can most charitably be described as “benevolent neglect.”
To circle back to IndexedDB again, it was fully implemented by Google well before the Blink fork, and for several years, Apple could have just flipped a bit in their build script to include Google’s implementation, but instead they decided to waffle for a few years and then replace it with their own broken version. There’s no guarantee they wouldn’t do the same thing for other outside contributions.
I think the analogy is very clear. If you want to code like it’s 2000, supporting IE6 is easy, because IE6 is a very good 2000 browser. If you want to code like it’s 2010, supporting Safari is easy, because Safari is a very good 2010 browser. But in both cases, if you want to use any new features that have been standardized and are supported by other browsers, you’re fucked.
The main difference I see is that IE6 didn’t get any updates at all. Safari gets updates, but many new features are missing or broken.
Another difference is that MS never blocked you from installing a better browser, but Apple does that on iOS. That policy is becoming increasingly ridiculous…
Update (2015-07-03): Nolan Lawson:
Looking thru public-webapps, I see @ryosukeniwa from Apple has been super active on WebComponents/ShadowDOM. I was dead wrong! Apologies. :(
Update (2015-07-06): John Gruber:
What irks the open web crowd isn’t that Safari is the new IE, but that Apple wields utter control over iOS—and most users are happy w/ that.
It’s not clear to me how the second part is any different from what the situation with IE was. At least Windows let you install Firefox (and later Chrome) if you didn’t want IE. You could even set them as the default browser.
Update (2015-07-07): Don Melton:
Folks keep asking me to comment on that article today. Let me be clear: Safari is not the new I.E. There is so much wrong with that piece.
What Lawson is mistaking for complacency is actually an evolution of perspective. Safari and WebKit won the battle for better web technology. Now they’re fighting the battle for better security, privacy, and performance (including energy efficiency).
None of this is new—the culture of zero regression has been ingrained into the WebKit and Safari teams since their founding—It’s simply moving from purely technical features to user-facing features.
I don’t find this very convincing because it assumes that Web technology is static. In fact, the Web is evolving apart from Safari, and I have lately seen more sites that don’t work with it. And the culture of “zero regression” is exaggerated because the Safari team made huge performance and stability regressions when they sandboxed the rendering engine. Apple’s priorities for its browser have changed, just as Microsoft’s did.
I thoroughly enjoyed the resulting debate, though, and yes, there are valid arguments on both sides. So I’d like to pick up where I left off, and respond to my detractors while doubling-down on my claim that Safari is acting as an anchor in the web community. I’ll also end on a hopeful note, with some suggestions for reconciliation with Apple.
That being said, my point was to compare Safari to IE in terms of 1) not keeping up with new standards, 2) maintaining a culture of relative secrecy, and 3) playing a monopolistic role, by not allowing other rendering engines on iOS. Those accusations are pretty undeniable.
Personally what I want out of this whole debate is for Apple to realize that the web is starting to move on without them, and that their weird isolationism and glacial release cycle are not going to win them any favors in this new, dynamic web community.
Update (2015-07-11): See the discussion on Accidental Tech Podcast, although it focuses more on whether Apple’s Safari decisions make sense, rather than on whether the analogy with IE is correct.
The problem isn’t Safari. It’s a somewhat modern browser that in the eyes of some might lack some important features, but overall is still pretty good and modern.
The real problem is Apple’s lack of browser-choice in iOS, and that’s a problem for several reasons[…]
Update (2015-07-30): On the Debug podcast, Don Melton responds to Nolan Lawson. His argument essentially is that Safari is not in stasis like IE was, but that Apple has its own very different development priorities. The corporate secrecy policies make it seem like the Safari team is not participating, but there are channels such as mailing lists and Twitter where you can interact with them.
Update (2015-09-25): John Gruber:
The difference is that IE 6, at its peak, wasn’t just so popular that it allowed Microsoft to unduly influence the direction of the web — IE 6 was so popular that it allowed Microsoft to define the web. It was as though IE 6 was the web. When banking sites required ActiveX plugins, they were making websites that only worked in Internet Explorer, only on Windows. In the eyes of many web developers and publishers, it was the one and only browser that mattered.
There is no official “Web Standards Security Council”, but web browsing market share creates a de facto one. Apple (or Google, or Microsoft, or Mozilla) can’t single-handedly veto a new API from becoming an official W3C standard, but if any one of them decides not to implement it, it can’t be relied upon by web developers.
Stay up-to-date by subscribing to the Comments RSS Feed for this post.