As a native iOS developer this question has frequently come up for me and this is a response to a colleague of mine who also choose to consider this very question.

From my perspective, this debate is extremely flawed and is summed up perfectly by UX expert Aral Balkan who predicted Zuckerberg would blame HTML5 rather than admit to “abusing HTML to make native apps”.

He added:

“Now tell me these bastardised hybrid apps aren’t hurting the perception of web technologies.”

My gripe is not about Facebook, instead it is the failure of many developers to understand the economics around the app market. The simple factors in product development are, cost, quality and time. We are always told that we can pick two but not all three (in reality this is sometimes only one). Where most get it wrong with “Web Apps” (HTML5) is the miss-use of the technology in the hope that they can have their cake and eat it.

I am not going to go into the detail around the HTML 5 vs native debate, many others have done this. Instead, my issue is the failure to choose appropriate technology for your problem. After all every app is a “web app” of sorts, very few apps run with out web services and access to online content. Aral Balkan’s detailed article on HTML5 vs native gets right to the heart of the issue I feel many developers are missing engaging in this argument

Every decision you make for your product should stem from the user. You must think of the user’s needs first, before considering your own needs. In other words, practice what we call “outside-in design.” Think about the user’s needs and their context, design what the user will see and interact with, and then go about deciding how to solve all the problems that creates for you.

The key here is that every decision should stem from the user, not snobbery or stubbornness to defend a technology. Like any religious debate we must put aside our preduces and understand that there is no all encompassing right and wrong. Instead it is a sliding scale, what is appropriate in one situation is not appropriate in another situation. This is where Facebook failed it wasn’t the technology, it was their poor ability to understand their problem and design an appropriate solution.

By having this debate we mask and excuse those, who put simply, are just POOR designers. I would like anyone engaged in this debate to ask themselves this simple question, should every website that exists be a “native” desktop application?