Jake Archibald tells us his thoughts on progressive enhancement and improving the web's offline functionality.
Jake Archibald is a developer advocate at Google, working to develop and promote web standards and developer tools. Here, he discusses some of the industry's hot topics.
Why do developers arguing against progressive enhancement have such a broken definition of it?
I think progressive enhancement is all about playing to the strengths of the browser
How do you think offline functionality will affect the future of apps in general?
JA: Offline is broken on the web. We don't really have any way to do it. We've got the Application Cache, but it was made with single-page apps in mind, and it's a pain in the arse to use. But I think offline is pretty broken in native apps, too. If you turn off connectivity on your phone, very few of them are going to do anything [more useful than] presenting you with a spinner and saying, 'Network connectivity failed'.
Offline is broken on the web. We don't really have any way to do it
I think the web has the potential to beat native apps. We were talking about progressive enhancement earlier, and this is the next step. We need to treat the network as a piece of progressive enhancement. We need to start building apps offline first, get to the first render without the network, using cached data, [then] fetch new data to update the page.
Every time someone builds a native app, or a browser-specific app, the web has lost. Native is always going to be faster than the web, because you have lower-level access. But that's true of writing assembly code: it will always run faster than C++. We need to get to the point where the difference isn't worth the extra effort [of] building and maintaining separate versions for all those platforms. If we do that, the web wins. And if the web wins, we all win.
This article originally appeared in net magazine issue 247.