Opinion: Tim Bray on the Web vs Native Debate
Tim Bray who spoke recently about this topic during his talk to the Seattle Androids Developer Group, provided a detailed set of arguments to the debate without necessarily taking himself a definite position. He starts by a short disclosure:
I’m a Web guy... the Web has kept provided me with a steady paycheck since 1994, and there’ve been a couple of extra paydays along the way. So, I understand the Web, I like it, and I owe it.
First, he recommends that we start by qualifying the question:
Basically, almost everything on a mobile device needs to use the network, and almost everything does it via HTTP.
you ship compiled code that talks to a framework like CocoaTouch or Android or WinPhone7.
He explains that the big reason why games are written in native technologies is the ability to reuse existing engins like Unity and Unreal. In essence, C code is shared at that level between Android and iOS.
The big advantage of Web technologies, like game engines, is their ability to reuse client code across platforms. He contends that if the number of dominant platforms remains at two, the advantage of Web technologies in terms of cross-platform reuse might be small. If on the other hand the market becomes fragmented and application developers need to support Windows Mobile 7, RIM or WebOS, Web technologies might shine.
He sees some concrete barriers today for Web technologies such as access to on board features and performance but they are not unsurmountable. For him, the problem for Web technologies is more at the tooling and culture level.
The Android and iOS frameworks are built by elite, energized teams working with a laser focus on making it real easy for developers to build snazzy native apps.
The success of Web frameworks may also become their worst own enemy:
And he concludes, despite the intensity of work on the Web frameworks "It’s far from obvious that the browser is catching up."
Tim also warns that the problem that PhoneGap and Appcelerator are trying to solve by providing a solution where you can work with shared Web-based code and still have a native look and feel, including a presence in the App Store, "is really hard; much harder than it seems on the face of it."
Tim also provided his own case study with the Trip It application which provide both versions for no apparent reason since it doesn't really use any capability that a Web framework could not support. He concludes, like many smart phone users:
Here’s another piece of evidence: On my phone, I use the [Trip It] app always, the website never. Also, I’m a paying customer, and it was the slickness of the native app that helped push me over the free-to-paid line.
A smartphone is a very complex device, where a new kind of applications, "converged applications" are being developed everyday by tens of thousands developers. They are changing and often simplifying our everyday lives to a point that was unimaginable even two years ago, be it in health care, location-based commerce, social networks, finance (where depositing checks or accepting payments directly from your phone is increasingly common), entertainment... Even though they are all relying on HTTP, the device itself is also using a number of other telephony protocols which have been optimized for bi-directionality, network authentication, micro-billing, power and bandwidth consumption, unliked the Web which pretty much always assumed tethered, always on, devices.
Will the users keep prefering native apps, and the convenience of an App Store, or are they all dreaming to break away from a brutal business model and roam the web with the familiar ads. Are you on the fence like Tim? or did you already make up your mind? How many native apps vs web apps to you actually use yourself?
Web apps suck
Native apps perform way better and look way better (if there were good developers involved).
Of course, for development native is a very expensive strategy, whereas the web (apart from being cheaper) lets you reach way more customers. But regarding UX the web on mobile still has way to go.
I can see a mix of Web and Native Apps but Native wins
Simple functionality -> Web
Needs monetization -> Native
App Store searchable -> Native
(people look to the app store first for 'apps' rather than search engines; Cleverly, WP7 links Bing search results to native apps)
Exploits device features -> Native
One data point - FT.com