Gilles Vandenoostende

Hi, I'm Gilles Vandenoostende - designer, illustrator and digital busybody with a love of language, based in Ghent, Belgium.

Zuckerberg: Facebook's greatest mobile mistake was betting on HTML5


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.

Web-development is a science. Any good front-end developer worth his salt has performance on his mind the entire time. “Do I use this Javascript library, saving me a few hours of work but adds another file-request and some other functionality I don’t need, or do I write a custom solution in a few lines of code because that’s all the app really needs?” is a common dilemma. “Can I achieve this graphical effect with CSS, or do I load an image?” is another. Developing a website is the sum total of all these decisions. Get too many of them wrong, and your site or application slows down to a crawl. People coming from native or back-end development backgrounds can be completely oblivious to this part of the job in my experience. They’re simply not used to thinking about these constraints.

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.

* For the pedantics among us, mentally replace every mention of “HTML5″ in this article with “HTML, CSS and Javascript”.


“HTML5, like any other programming language” html isn’t programming language..

Posted by Arek at September 12th, 2012 at 12:22 pm.

Yeah, I know. But if you saw my footnote you’d understand what I meant. Javascript is a programming language.

Posted by @gillesv at September 12th, 2012 at 12:24 pm.

From everything I know and have seen, HTML5 makes the most sense going forwards – rather than the current chic of apps.

Apps have their place, but it’s a temporary position created by the short to medium term money making environment maintained by the phone ecosystems (iOS, Android + friends)

Posted by Peter Bridger at September 12th, 2012 at 12:43 pm.

Native apps are here to stay, and this raft of “wrapper”-apps we’re seeing (native apps as nothing more than standalone browsers running HTML) are a temporary situation as everyone is struggling to find the optimal solution for using native code with a web-centric-backend across various devices and eco-systems.

If you’re a small brand and you have a simple app that needs some small native hooks (like notifications) and don’t have the time or money to make separate apps for each platform, HTML5 can be a good compromise that allows you to reuse your app’s front-end. But it remains a compromise.

Facebook as a billion-dollar company shouldn’t have needed to compromise.

Posted by @gillesv at September 12th, 2012 at 12:54 pm.

Every developer has heard the “combine external javascript, css, etc. to reduce http requests” song over and over again. Part of why I don’t always do that for small sites is time: It’s a $500 or $1000 website. I toss in the css for a slider and then for a fancybox, etc. as separate files because it’s fast and saves developer time. Facebook can’t really use that excuse: They have billions for development. There’s no reason they can’t automatically combine various scripts on the fly and reduce http requests.

Posted by Karl Kelman at January 16th, 2013 at 12:40 am.

Back to top