> End users do not care about "write once deploy everywhere"
No, end users greatly care about that. They want to access their apps on all their devices, and to be able to buy a new device and use their apps on it. Just like they want to access their movies and music on all their devices. To them, apps and media are content and the computer/tablet/game console should just let them access it.
You're implicitly referring to the subset of end users that have chosen or would like to choose devices from incompatible ecosystems.
I suspect this set of users is relatively small, given that it excludes what seems like the most common case: people that are satisfied with the platform they're on. I don't know that there are a lot of Android users (for example) that are eager to buy iOS devices but hesitate because they won't be able to use their existing apps.
I think you're wrong. Especially going forward, how about apps that run on your TV, your tablet, your phone, your computer, etc. Want a chromebook? Runs there. On a friends phone? Load it there. What happens if a platform dies out? Or another becomes significantly more attractive to you because they release a poor maps application? What if you want a cheap tablet for your kids? There's a ridiculous amount of use cases that do matter to most people. The reason you're happy with your platform is actually because they've locked you into it. If another closed platform came around with all the new desirable apps, you'd be unhappy for the same reason you're happy about it now.
The reason you're happy with your platform is actually because they've locked you into it.
I don't agree. Lock-in is when "I want to switch, but can't." Happiness is "I don't want to switch." Most users on most platforms are happy or at worst indifferent to the question.
I don't think it makes sense for most developers to target the scenarios you describe because although they are numerous, each is small. I don't think the edge cases add up to more than the common case on any major platform.
(Disclosure: I don't regularly use any smartphone, tablet, tv or anything that could be called a modern web application, so it's not my happiness I'm talking about.)
This seems like a bad assumption, and a worse one going forward.
And right now, I end up having to find the right device to run that app I want to use instead of using the device that I like with the app that I like...
No, I'm not. I said "platform". A single platform can encompass multiple devices.
An Android user that likes Android is less likely to decide to buy an iPad than he is to buy an Android-based tablet, on which is existing Android applications will (generally) run. iOS is much the same, and Microsoft is seeking this across desktops and tablets with Metro (or whatever they're calling it now).
Even within a single "platform" you can have apps that are available on some devices but not others. It's not that hard to find Android apps that are only available on phones, not tablets, and vice versa, or for that matter ones that work on some phones but not others.
They want to access their apps on all their devices, but they don't care if all versions are built with the same technology as long as they can accomplish the task, at least i don't care as an app consumer.
There's a continuity in user experience that native platforms provide that helps people accomplish the tasks they want to do.
Apps on each platform tend to look and behave in a similar fashion. E.g. on iPhone there's a tendency to use Tab bar buttons which are at the bottom. On Android you tend to have off-screen menu buttons and/or the Action Bar at the top.
Whether that's good or bad in terms of UX is a matter for debate but people get used to interacting with their platform in a certain way and it's disruptive to their user experience to suddenly find an app that doesn't follow these conventions.
For example, say you create an iPhone app where the menu buttons were at the top along the lines of an Action Bar you might find it creates a barrier to interacting with that app for a non-Android user.
On the other hand, if you use the same category of native apps in different devices, you'll notice inconsistencies that disrupt the user experience. Whereas with an HTML5 app you don't care if you're using a phone, a tablet or desktop, it's the same application.
So, this argument about UX really depends in which perspective of continuity you are considering, single platform oriented or cross platform oriented.
When I pick up my iPhone and open an app I'm not surprised by an app using a Tab Bar interface.
When I use an app on my Android phone I'm used to options popping up when you press the menu button.
Yes, in a perfect world you'd have exactly the same interface on all devices. That's not today, not tomorrow, not next year and most probably never will be.
When you want to launch an app on your Mac you might go to the Dock.
On Windows, it might be in a Start menu.
On Linux it's somewhere else.
On a TV the menus are somewhere else.
Finally, there's native capabilities that HTML5 will always miss out on. It's why Java apps look and feel odd. Even though they try and mimic desktop look-and-feel (and often do an amazing job) it never quite works.
No, end users greatly care about that. They want to access their apps on all their devices, and to be able to buy a new device and use their apps on it. Just like they want to access their movies and music on all their devices. To them, apps and media are content and the computer/tablet/game console should just let them access it.