Safari has gotten a pretty bad rap recently because of its lack of progress on technologies like IndexedDB, Service Worker, and Web Components. The criticisms are valid: Safari is embarrassingly updated once a year, so it’s concerning to see a new version ship with none of these important features as you can only hope they might arrive next year. In that regard, Safari is indeed “lagging behind”.
Safari 9 did come with quite a few new features though. These features might not appeal to developers waiting for IndexedDB, but some of them are just as important for building compelling web experiences. It is clear to me Apple and Google have a radically different focus. Apple keeps implementing features aimed at crafting good user interfaces, Google keeps expanding Chrome’s ES2015 support. It’s very much the companies’ DNA bleeding into their browsers.
The web is often said to be inferior to native apps, and poor user experiences frequently take the blame for this. Most criticism revolves around the inability for a web app to provide a fast, animated, touch- and gesture-friendly environment, not around the lack of support for Web Components. Why bother with technical limitations when you can’t even get the basic user-facing stuff right?
Chrome is unfortunately contributing to the web’s bad reputation by caring more about developers than end-users. Mobile Safari can easily handle, say, a Photos.app-like interface with a translucent navigation bar, native-like swipe gestures and smooth animations. Chrome handles none of this. No position:sticky, no backdrop-filter, no scroll-snap-type (heck, even IE supports it). It’s concerning that Apple is doing better on a phone than Google is on the most powerful desktop.
But it’s not just about the lack of support for newer CSS properties: the features that actually are supported often perform poorly. Gradients are very expensive to draw, fixed elements hurt scrolling performance, paint times often prevent you from reaching a steady 60FPS, and so on.
The answer is not to embrace these limitations and create simpler interfaces. These limitations are only the consequence of unfortunate priorities. The web deserves efficient, innovative, delightful experiences, and Chrome is holding the web back by making it hard (if not impossible) to create them. Google’s staunchly engineer-driven culture is damaging the perception of the platform they seem to foster.