Mark Zuckerberg got on stage at TechCrunch Disrupt today and said the thing a lot of us have been muttering under our breath for about a year: betting so hard on HTML5 for the mobile app was a mistake. His actual words, more or less, were that it was "the biggest mistake we've made as a company," betting on HTML5 instead of going native. I don't have a transcript in front of me so don't quote me on the exact phrasing, but that was the gist, and from what I'm reading it got a laugh out of the room, the uncomfortable "yeah, we know" kind.
This isn't news to anyone who's actually used the Facebook app on an iPhone over the past two years. I remember scrolling my news feed on a 4S back in early 2012 and watching individual comments render in one at a time, like the app was dialing up on a modem. It wasn't a phone problem. It was a "we built half our app inside a web view" problem.
Here's the part that makes today's comment land different for me though: Facebook already fixed it. A few weeks back, end of August I think, they pushed an update that ripped the HTML5 stuff out and went native. And I noticed immediately, before I'd read a single article about it. Feed scrolling stopped stuttering. Photos loaded without that half second white flash. Comments didn't pop in late anymore. My wife actually asked me why Facebook "felt different" on her phone, and I hadn't said a word to her about any update. That's usually how you know a performance fix actually mattered, when someone who doesn't read tech blogs notices on their own.
So by the time Zuckerberg says this out loud at Disrupt, it's less a confession and more a company doing its victory lap while also admitting the thing that got them there was dumb in the first place. Which, fine, I respect the honesty. A lot of companies would just quietly ship the fix and never say a word about the years spent defending the old approach.
And there was defending, for a long time. The line out of Facebook was some version of "HTML5 lets us ship faster and update without going through app store review," which is technically true and also apparently not worth what it cost in speed. I built a small side project last winter using PhoneGap because I bought into a version of that same argument, and I regret it a little. Not because PhoneGap is bad exactly, it's fine for what it is, but because "write once run anywhere" quietly turns into "runs okay everywhere and great nowhere" the second you need anything that feels native, like smooth scrolling on a long list.
None of this is shocking if you zoom out. Zuckerberg's whole appearance today reads like a guy trying to reset the narrative after a rough few months, stock-wise. Facebook's been trading in the high teens lately, way off the $38 IPO price from May, and today felt like part damage control, part "look, we're serious about mobile now, here's proof." The HTML5 line was the most quotable bit but it wasn't really the point of him being up there.
What I'll say is this: if you're building anything mobile right now and leaning on a web view to save time, go look at what Facebook's old app felt like compared to the new one. Same product, same layout mostly, completely different feeling in your hand. That gap is the whole argument. You can build the cross platform thing and ship it everywhere on day one, or you can build the thing that doesn't feel like garbage when someone actually uses it, and right now those still aren't the same choice.
I don't think that stays true forever. Mobile Safari and Android's WebView both get faster every release, and eventually the gap probably closes enough that nobody notices. But September 2012 isn't that year, whatever the HTML5 evangelists were telling us back in 2010.