Today, Mark Zuckerberg revealed that Facebook’s mobile strategy relied too much on HTML5, rather than native applications.
Not only was this a big mistake with mobile, but Zuckerberg says that its biggest mistake period was the focus on HTML5. This is the first time that the Facebook CEO has openly admitted this, but things are looking good for the new iOS native app. According to Zuckerberg, people are consuming twice as many feed stories since the update to the new iOS app, which is great.
Blaming HTML5* for your crummy native app is like blaming a hammer for your inability to do brain-surgery with it.
The old Facebook iOS app (which used HTML5) was slow, yes. But Tumblr’s iOS app feels buttery smooth and native, and that’s built on HTML5 too. HTML5, like any other programming language, can be slow when your code isn’t optimized, and even a casual glance at some of Facebook’s front-end code with a webinspector reveals some of the massive amounts of overhead their code has.
It’s a well known fact that adding a single Facebook “like”-button to any HTML page adds dozens of additional file-requests, each of them incrementally slowing down the entire site (in terms of both initial loading and rendering). If the bloat in these small things are any indication as to the rest of their web-codebase then it’s no wonder HTML5 didn’t work out for them.
Using HTML5 for native development is arguably a cost- and time-saving measure, nothing more. If you hire the right kind of front-end developers like Tumblr, you might pull off something that’s damn close to native, but if you get it wrong you end up with something that’s slow and annoying. Facebook clearly didn’t have the right kind of people on their app-dev team to pull that off, so going native is their best bet.
Doesn’t mean there’s anything wrong with HTML5 though.