A few media websites have made a deal with Facebook to present their articles within Facebook’s iOS app instead of on their own websites. Apparently, it’s all the web’s fault.
Although, it should be mentioned that Instant Articles are published only on Facebook’s iOS app and degrade gracefully into links to the media site’s original website elsewhere, so it isn’t nearly the wholesale assimilation of everything everywhere that people present it to be.
Commentators online report this news alternately as armageddon or the second coming.
I’m packing my stuff into boxes. At the last minute, of course, since the truck arrives early tomorrow morning.
While I’m packing, I’ve been listening to a variety of podcasts on web development. I don’t listen to these podcasts for their information. In between the casual banter and chat that surrounds the usual talking points, a sense of a cohesive and mature craft starts to form. The conversations surrounding the craft bring out the art in it.
These are all of a kind. They are a part of the art of developing for a fluid platform with wide-ranging capabilities—capabilities that can change on the same device from one extreme to another, within minutes, just by walking down into the basement seating area of your local coffee shop.
There is an art to making things that not only tolerate this quixotic foundation, but thrive. It’s obvious that a large and influential contingent in the web development community is driven by a strong sense of what works and what doesn’t work in this environment.
It’s also obvious that a just as large contingent doesn’t.
Treating the web like another app platform makes sense if app platforms are all you’re used to. But doing so means losing the reach, adaptability, and flexibility that makes the web peerless in both the modern media and software industries.
Even if you do pull it off, you can only succeed by sacrificing the very qualities that justify the web’s existence.
Or, at least that’s what I’m thinking as I’m packing my boxes well into the night, hoping to finish in time for me to get a few hours of sleep before the movers arrive in the morning.
The drama surrounding touch events is a long-standing one and Apple has done a good job of playing the villain in this particular farce.
This is just one facet of the core problem with the web as an application platform: we will never have a unified web app platform.
What Apple, Google, Microsoft, and Mozilla want from web applications is simply too divergent for them to settle on one unified platform. That’s the reason why we’re always going to get Google apps that only work in Chrome, Apple Touch APIs that are modelled on iOS’s native touch model, and Microsoft Pointer APIs that reflect their need to support both touch and mouse events on a single device at the same time. There really isn’t an easy way to solve this because standardisation hinges on a common set of needs and use cases which these organisations just don’t share.
The web continues to work well as a platform for structured documents that are progressively enhanced with interactivity. Just hypertext and forms alone will get you a lot further than you think towards solving most of the ‘app’ problems that organisations are facing today. With a bit of progressive enhancement you can create really productive systems that work everywhere because they are just bog-standard websites.
Unlike structured, interactive documents, complex web applications that are built on a common set of APIs — APIs which work the same everywhere — are very unlikely to happen. You’ll have your Chrome APIs. You’ll have your Safari APIs. You’ll have your MS and Firefox APIs (because their needs are quite similar). And you’ll have cross-platform frameworks that bridge the gap by making compromises everywhere. But a universal web application platform? That’s just another spin on the ‘write once, run anywhere’ chimera.
Of course, Apple is still being very annoying in this particular case and their reasons for objecting seem spurious and political. I’m not trying to defend Apple.
What I’m trying to say is that we should expect the drama surrounding Pointer Events to repeat itself a lot over the next few years. It’s a taste of things to come.
(Thinking out loud while on the train. If this post seems a bit stream-of-consciousness that’s because it is.)
It’s hard to get a picture of where the web is at as a platform just by randomly browsing Can I Use or following blog discussions.
But given how frequently both Google and Apple (like in the posts I linked to and commented on yesterday) are being compared to Microsoft it’s clear that something’s up.
The standardisation process has always been fraught with difficulties and tensions but I think it’s clear that the various tech behemoths that influence standardisation are finding less and less common ground and time passes.
If you’ll let me caricature the various companies’s attitudes a bit:
Google wants apps that look and work identically across Android, iOS, and web browsers and it wants them all to work like Android apps. Moreover, its various transpilers and cross-compilers indicate a desire for these apps to share a considerable amount of code and architecture.
Facebook, as evidenced by its React project and other opensource code, wants apps to share an architecture but not UI (i.e. do what’s the best UX for the platform).
Apple seems to like things like CSS Shapes and Regions and other design-oriented features but little interest in implementing app-related features. (Although, oddly enough, they don’t support OpenType font-feature-settings.)
Mozilla wants ‘webby things for the web’: APIs that conform to the principles and architecture of the web. (Google, in contrast, seems less fussed about that.) But they’re also eager to turn the web into a truly universal platform.
Opera seems to have ceded all strategic direction to Google.
And Microsoft… Microsoft’s seeming goals actually look well aligned with Mozilla’s goals, for good reason. They are both minority platforms locked out of the big platforms of the day: Android and iOS.
These companies want different things from the web and once you’ve covered the basics, agreeing on a common, standardised approach to things like app architecture, UIs, and UX is going to be progressively more difficult.
Once you’ve gotten these companies to agree on basic APIs like Files, Cryptography, basic CSS design and layout features, Audio, and such standardising the rest is going to be harder because there is no one true solution to higher level platform problems like what architecture is best for any given app.
I don’t mind that, personally. I like the tactic that Facebook has been using of building on top of what’s available, transpiling from upcoming standards where available, and creating an architecture that seems to be a fairly sensible one, but I also like the fact that we aren’t all forced into the architecture they’ve chosen. Once you get up to the level of app architectures, standardisation becomes less and less desirable because architectures vary.
And that’s without getting into the discussion of whether apps and their architectures are relevant to the web in the first place. As I wrote yesterday, we can get very far just by using hypertext, forms, and progressive enhancement.
What worries me more is the general question of quality. Apple’s issues with the quality of iOS8 and Yosemite have been much discussed (for good reason, they are substantially more buggy than their predecessors in my experience). But both Chrome and Firefox have their own quality and reliability issues as well that never seem to quite go away.
What hope do we have for standardising complex new app architectures when we don’t seem to be able to reliably implement the foundation they’re built on?
Curious minds want to know.
So, I have two questions for you:
- What do you think about the design?
- What do you think about offering full versions of ebooks for free on the web while charging for the EPUB/Kindle versions?
I’m debating whether to put full versions of later entries in the series on the website (using the above-linked design) while still charging for the ebook versions of the stories on Amazon, iBookstores, and Kobo. I know of a few examples where that has worked and a few where it hasn’t, so I’m curious what people think.