back
142 comments
As others have been pointing out feverishly on Twitter: the problem wasn't them betting too much on HTML5. Their problem was developing piece of shit apps that happened to use HTML5. They tasked amateurs who didn't know what they were doing into building a hybrid native app container which in turn embedded HTML5 content. Plenty of other developers (Instagram and LinkedIn come to mind) have figured out how to do that right, and in a way where it is seamless to the end user and for all intents and purposes feels exactly the same as a native app.

I'm not saying that it's an easy problem. You have to find the right balance between which components should be native or not. It's clear from the other problems that Facebook's been able to solve that they know how to hire top-notch developers. They just failed to do so for their mobile efforts, which just reinforces the stereotype that they don't "get" mobile.

Yes, yes, a million times yes. Facebook is very resource intensive (in terms of data+media loading over the wire) but there are certainly ways to work around this. Yahoo mail's mobile site (at least on my iPhone 4 with ios5) is a good example of this. The main problem with HTML5 media apps today is that they must be developed with a primary focus on optimization from the start. This is unfortunate, and will hopefully change, but it is possible. But seriously, saying "HTML5 failed you" when you don't even compile your scripts and initial resources to require a minimal amount of requests is just ludicrous.

To clarify: I'm not saying that facebook's HTML5 developers can't hold their own -- they produced a great looking mobile app with a truckload of functionality (and believe me, I understand code bloat). Maybe someday it will run flawlessly on mobile. But right now to produce a nice experience in HTML5 you must optimize from the start. Run your code on the device from day 1, not in Chrome with the vertical web inspector! Host your scripts on dev servers with artificial lag. Figure out what's slowing you down on day 1 and work around it! And one day you won't have to :)

I think your reasoning is flawed here, what is in the good side of HTML5 to develop a mobile app for Facebook, even assuming good HTML5 developers VS good iOS/Android developers? HTML5 is not faster to develop in environments like iOS that provide good API and tools, and the stuff you can't do in HTML5, you have to find a glue between the native side and HTML5 that is non optimal.

So anyway, if you put X efforts, the native app will always win, because it can do all the stuff the HTML5 app can do, but also more, faster, without intermediate layers, in a more native way and with more native look & feel.

Without to mention that for Facebook to use 2x resources to develop the application would be not an issue.

The current Facebook app, if developed by competent guys, is a 3 months project by 2 people, per platform. A joke for FB. (Note: I'm talking only about the app itself, not the backend that is an invariant).

Or they simply don't prioritize mobile. As has been extensively documented, they make virtually no revenue off of mobile use and see no easy way to improve that situation in the future. They're stuck in a situation where a great mobile experience is a near-term harm to revenue.
Joe Hewitt isn't an amateur.
How can you make your HTML5 code as fast as native? Apple provides great tools to help developers optimize native apps because there are times when native needs to be tuned. Maybe HTML5 can be good enough for some apps, but if you're competing to win, I'd suggest that you offer the very best app for each platform.
Yeah they could had focused on a mobile-first mobile site, but to be fair, if they didnt make the iso app how were they going to get a copy of your address book?
Maybe amateurs got assigned to it because it's hard right now to find HTML5 pros. And the problem is then HTML5.
But why did Facebook get away with it for so long?
Where does the Instagram app use web views and/or HTML 5?
Lnkedin's fancy HTML5 mobile website sits and fails at the spinner on the splash page when I view on Android. That is one of the main reasons I gave up on LinkedIn. Hat and its devolvement into a sourcer spam haven
the problem wasn't them betting too much on HTML5. Their problem was developing piece of shit apps that happened to use HTML5.

Yeah, MZ is not smart so it is not surprising that he would say not correct things...

Heh...

I don't work for Facebook. I work at a mobile company that does iOS and Android development. I work daily on our Android apps. Here is my experience:

1. The cost of maintaining iOS and Android is something like 1.5x the cost of maintaining just one or the other. Most of the investment is architecture and design. About 50% of the design is portable across iOS and Android.

2. Developing reliable HTML5 that behaves predictably is as expensive as developing for a native platform. You may already have the skills, but that doesn't make it less expensive.

3. Most touch frameworks (jQuery mobile, etc.) get you 85% of the way there and then you're stuck. To get an app that can compete with native in terms of realization of design, you end up with lots of non-framework code.

4. (Android specific) The same fragmentation that hurts native development hurts support for HTML5. The test matrix for HTML5/browser compatibility on Android is almost as daunting as the native support. Different device/os versions have different web cores that have different foibles. Its just as big a grab bag as ever.

5. Multimedia support for these environments is just atrocious. Unless you can proxy/convert all content, all but the most trivial content is inaccessible. You end up calling into other applications on the platforms which can present a much less compelling presentation to the user.

I'm not going to say its impossible. I'm leaving out all the arguments of performance because it just gets to be to specific to the use case. I have not seen a compelling example of a unified mobile & desktop browser code base that would eliminate all mobile maintenance. Besides just having people rip up my points, I'd be interested in hearing what HTML5 components people are finding make these issues manageable.

In the long run, its not black or white. We use HTML5/css/js for some things and native for most things. Its how we keep things moving but I'm sure we'll revisit this over and over to make sure we keep investing in the right platform.

Thanks you... People think that HTML5 us the second coming. Thank you for putting it in context. Use the best tool for the job. I am tired of so much hype over HTML5 - like it's the greatest thing since sliced bread.
Zuckerberg's harsh words are a mixed blessing for HTML5. Some people will get the wrong message and just dismiss HTML5 altogether, which isn't what he said. His main point is he regrets building native apps with HTML5, and with the benefit of hindsight, he is right.

The good thing about this is the browsers and standards people need a wake-up call. See the comments in Paul Irish's recent thread about this [1].

There are people who are content to plod along and debate the finer points of one attribute or another, while native APIs are steaming ahead. Quotes like "We burned two years" and "Betting completely on HTML5 was the biggest strategic mistake Facebook made" from Facebook's CEO are the kind of evidence that should get people to wake up and smell the coffee, if they still haven't done so.

1. https://plus.google.com/113127438179392830442/posts/fR3iiuN4...

The problem with apps developed in HTML5 that is not stressed enough IMHO is that the iOS API is good, while the HTML5 API to do a lot of advanced stuff is still limited. In short to develop a native application does NOT take more time than developing one in HTML5, at least for iOS devices. I can tell this first-hand as I used to advice an iOS/Android software company in the past, composed mainly of friends of mine, and in three years of projects the native approach always won: better responsiveness, more access to lower level primitives when needed, native look and feel, easy of development.

And I'm talking about a small startup. To take the HTML5 approach to develop a mobile application for a very large company is simply silly IMHO, and Facebook CEO is right that this was an huge error in their side.

I suspect history will show their three biggest mistakes to be:

1. Allowing an IPO that was vastly overpriced.

2. Keeping Zuckerberg in the CEO role for too long.

3. Taking their users for granted.

Obviously the first has seriously damaged their credibility, and with it their ability to hire and retain people who could solve their problems and grow the business.

I believe the second has a similar effect. Aside from the catastrophe of the IPO, Facebook don't appear to be going anywhere strategically. The cat is out of the bag in terms of cost effectiveness (or lack thereof) of Facebook ads compared to alternatives like Google. And generating ad revenue on small-screen mobile is bound to be harder, whether you're using HTML5 or anything else, because the physical screen size only provides so much space.

The third will probably be what finally kills them. As long as they can maintain the critical mass of users, the "everyone's on Facebook because everyone's on Facebook" effect, they can get away with a lot. But no-one using Facebook goes there for the ads, and no-one really likes all the privacy invasion. These things are merely tolerated, and only up to a point, because people like being sociable and right now Facebook lets them keep in touch with their friends and family more conveniently than anyone else.

So when Zuckerberg says "Over the next three to five years, the biggest question on everyone's mind is really going to be how well Facebook does with mobile"[1], I think perhaps he's getting ahead of himself. The biggest question I would ask, if I were a potential investor, is whether Facebook will still have that critical mass of users in three to five years, or whether, like every popular social forum on the Web before them, they will have been disrupted by the new shiny.

[1] http://www.bbc.co.uk/news/business-19565937

Facebook has made a ton of mistakes, HTML5 does not rank anywhere near the top (it wasn't even the cause of their problems, there are plenty of well done HTML5 apps). Their app sucked, but was incredibly popular. Their new app sucks less and is still incredibly popular.

Because of their other "mistakes", I will not allow their app anywhere near my devices. A general lack of trust is a mistake that Facebook can't fix.

What I find most interesting here is how so much in depth analysis is coming out of one, simple statement with a very obvious meaning. You know how people used to try to analyze the life out of Beatles songs looking for all kinds of hidden meaning, until one day Paul McCartney straight up said, "There is no meaning other than what's on the surface level."? I'm getting that same vibe here.

Mark said they bet too heavily on HTML 5. Did that mean the people who wrote the HTML 5 standards failed them? Or that Google and Apple failed them for writing code that couldn't sufficiently run HTML 5 apps? Or that they overestimated their engineers' abilities to write good HTML 5 apps? Or that they thought HTML 5 was going to be something that it isn't?

Honestly, I don't think he meant any of those things. There is no hidden meaning here: They used HTML 5. It didn't work they way they'd hoped. Now they're using something else. That's it. End of story.

Props to the guy for finding something that wasn't good and fixing it. That's what a CEO is for.

It's not a surprise that a web software company would want web software to run and win everywhere, it's the same reason c++ devs want to write web apps in c++ even if that might be a terrible idea. In the end, the lesson is clear, you get what you optimize for. FB optimized for letting their web devs ship mobile code fast, and they were able to do that. The caveat is that the product they shipped wasn't that good.

Now they are optimizing for a higher quality product which requires different developer skills and resources. It seems to be paying off.

Neither strategy was wrong so much as maybe how long they stuck with a particular strategy.

Browser vendors are trying to do too much. Innovation needs to move from top-down to bottom-up. Browser vendors need to provide just basic access to bare metal and let OSS do the rest.

One way to help is to ask for lower level OS apis to be exposed by browsers, so that the open source community can do the rest:

1. Ask for UDP to be exposed to trusted web apps installed by the user. This will let the P2P community race ahead without having to wait for WebRTC to get released and then fixed.

2. Ask for TCP to be exposed to trusted web apps installed by the user. This will instantly enable things like SMTP clients running in the browser without the need for WebSocket proxies/proprietary gateway servers.

3. Ask for POSIX to be exposed to trusted web apps installed by the user. This will lead to an explosion of database innovation in the browser. IndexedDB is design-by-committee. Insist on proper POSIX not the FileSystem API. Borrow from the Node API. Impedance mismatch is crippling browser storage.

4. Low-hanging fruit: ask for LevelDB to be exposed directly (http://code.google.com/p/chromium/issues/detail?id=128865). Most of the browser vendors are using LevelDB underneath IndexedDB, and just exposing LevelDB directly would already be a huge leap forward. No need to wait for the many IndexedDB bugs to get fixed by browser vendors.

Is it a case of HTML5 is a future disruptor, providing platforms don't try to subdue it in preference to Native? A good example is in mobile tech where a lot of apps that used data pre 3G performed poorly because the underlying technological dependencies (the data pipes, memory limitations and processing power) were not ready. Secondarily, the business models were not ready either (pay per MB).

Maybe HTML5 is in a similar position, may work well for web, but mobile app eocsystems are not yet technologically ready for it to be disrupted. We see it time and time again in history where a new tech takes a while before it becomes good enough to break through (CMOS vs CCD), (HDD vs Floppy vs Tape). (Mainframe -> PC -> Cloud)

The iOS app is still crap compared to the web experience. Users can't edit, or even delete, their own comments. The length of time for likes and comments to appear is unpredictable. Sometimes very quickly, sometimes users don't see their own comments for half a minute. Art is displayed oddly. It's almost always clipped at top and bottom on the page, requiring an extra step to actually see it. They seem to be under the mistaken impression that mobile users are like Twitter users, firing shots into the darkness, instead of curled up on their couches with iPads, composing little essays and looking at family photos.
This is all very interesting, but I do think the concentration on HTML5 is something of a foil. Strategically, I was under the impression that Facebook was positioning itself to be a third independant force, alongside Apple and Google. Considering the state of play when facebook started up in 2006, when users flooded into the browser venue, and where the iPhone hadn't yet been released, and where the idea of socially contextualless search and data could be leveraged and superseded by the Facebook social graph, I consider the decisions made with facebooks mobile strategy to be explicable.

There was, after all, a lot of rumour that Facebook would release their own phone. This made sense if your objective is to provide an alternative to mobile OS's, and even more, to overtake your competitors. The belief including the possibility of evolutionary superiority.

Things change. Google supplies Chrome through the app store despite the restrictions imposed by Apple, and this has not weakened the power of Google at the expense of Apple. There are many examples of stepwise cooperation. It has not diminished their independance. And Facebook likewise should probably not have been so concerned that acquiescing to the other majors on mobile would pidgeon hole them as a very very big Instagram style dependant.

Facebook has lost time by being over guarded in my view. On the other hand, this admission by facebook demonstrates a recognition of a kind of failure. I suspect the notion that Facebook will grow to be an organisation that is an evolutionary step beyond Google is now viewed as the real strategic error by them.

As to HTML5 being a mistake, I could be wrong, but I don't really think that that's what he actually means. He's trying to explain himself without admitting some things.

I am sorry to see any negative publicity for HTML5 adoption but I understand that FB is a special case. Saving money on mobile development is not a priority for them.

I think the situation is different for small companies and apps that have many fewer users: saving money on app development frees resources for content production.

After some experience with html5 and javascript programming, I feel it is more and more like hacks, forcing natural application models into html5 with lots of hacks. Sure, there are applications fitting html5 well, but for many more others, I begins to doubt that html5 is a real good solution for future.
What is the common understanding when people deliberately tack on 5 at the end of HTML? I don't remember people talking about HTML 4 like that.

Is there some expectation that HTML is suddenly a replacement for native apps? That's a rather unexpected (to me, at least) positioning of HTML.

i hope this doesn't mean they will be forcing everyone into a native app. i ditched it long ago because their mobile site is quite good and 100x better for my privacy. same with yelp and youtube. gmail is good also, but i need the notifications there, so no choice but native.
Weren't the issues with their use of HTML5 more related to the lack of proper asset caching (CSS/JS), not so much the performance of the rendering and code execution?

When I used their app at the time, I always found myself waiting for the CSS for each view to load.

What Mark Zuckerberg really said:

“When I’m introspective about the last few years I think the biggest mistake that we made, as a company, is betting too much on HTML5 as opposed to native… because it just wasn’t there. And it’s not that HTML5 is bad. I’m actually, on long-term, really excited about it. One of the things that’s interesting is we actually have more people on a daily basis using mobile Web Facebook than we have using our iOS or Android apps combined. So mobile Web is a big thing for us.”

http://blog.tobie.me/post/31366970040/when-im-introspective-...

Slightly offtopic, but this is what I hate about tech reporting: http://i.imgur.com/TYyKD.png

There is an article for every statement that zuck made onstage. Getting pageviews is a priority, I guess.

The main problem with native development is how you are not as flexible as your HTML counterpart. Even with the massive amount of capital that Facebook has, a full native app would always be behind.

Obviously, I don't work at Facebook so I don't know all the details, but I remember when Joe Hewitt built the native Facebook app, while it was awesome, it was lacking many features 4 months after it's release.

Since developing on iOS can take as much as 2 times longer than HTML development (+ the release cycle with Apple approvement system), it makes sense, in my mind, that they opted to have as much of HTML 5 code as possible.

DISCLAIMER: My first language isn't english.

It occurs to me that if someone came out with a new technology and said "hey, you can now describe your entire interface's structure in one markup language, the visual look in a second language, and the code in a third language, and then your app will run anywhere that has the required runtime interpreter" they'd be shouted down faster than you can say "go Swing".

Yet that's essentially what HTML5 apps are all about -describing the interface in markup and processing it at runtime. In what way is native not always going to be better for a given platform?

Guess what he's actually saying is that if you want to created "walled gardens" and locking-in users HTML5 is not the way.

So if you want to collect fees from publishers, don't own the browser or the OS (and are not the content creator) - use a closed app.

From the viewpoint of FB this might be (a short-sighted) way forward. It's not in the interest of the publishers and content providers - but again that seemingly doesn't bother FB.

I'd say their biggest mistake is filtering the news feed by presumed interest. I talk to normal person after normal person who finds facebook increasingly more useless because this algorithm does not work correctly.

I sure am tired of hearing people talk about 'html5' as if the situation of native vs. browser apps is really any different now than it has been for the past 5 or 10 years.

Instead it's sometimes better to build an app on top of its native environment from the early days rather than spending enormous time to figure out the best workaround for life. You might choose the tool you're most comfortable with to build everything, at the same time just never ignore the quality that the users will experience.
A bad mechanic will always blame his tools. A saying the Facebook development team should print out, frame and hang in their building for all to see. Maybe Facebook should have asked the LinkedIn development team to build their app for them because they obviously know nothing about web development.
I've got both iPhone and android phone, and I always noticed strange scrolling and slow response on the iphone when using the html facebook app.

I don't see these issues with the android version, and it doesn't seem like Facebook is jumping at getting a native android app out there.

Is HTML really to blame?

Ditching the HTML5 app was a good call but _please_ fix the atrocious way the new app mangles images with the resizing/stretching. It really kills the speed of the overall experience when I have to enlarge every image to have any clue what its a picture of.
This was just a strategy for Mark to downplay Facebook's troubles. Avoiding talking about Facebook's other problems by pushing HTML5 as their biggest mistake and saying how it's now fixed. This gives them more time and calms investors down.
For those interested, here is the specific quote on video from Techcrunch's live : http://www.youtube.com/watch?v=GBp_xCGIATk
That is facebook's biggest mistake?

Is he blind or just wilfully ignorant?

Finally someone gets it.

Applications should be done natively.

HTML is for documents.

Sure, blame it on HTML5, the voiceless culprit. Blame it on the janitor, the office assistant, the programmer.

But never dare you touch a C*O for the failure of a corporation!

This is absolute nonsense.

Here's an example of what a small team + HTML5 is capable of: http://ro.me

I find it amusing that everyone tries to "interpret" what Zuckerberg is saying. It is in pretty clear 3rd grade English folks. Don't try to spin things too much. Of course there are always agendas, do you think that Steve Jobs didn't have agendas? I did not hear much reinterpretation of his statements in his latter years...
I'm already seeing weird conclusions drawn from this. Anyone can tell you, the mobile web app for Facebook worked. Well. It was very, very fast and looked nearly pixel for pixel like the "native" Android app.

Thus, it seems pretty silly to act as if HTML5 is incapable.

They are a bunch of PHP hackers, is it any wonder they can't write decent native apps?