One Size Never Fits All
It’s nice to get caught up in the fantasy of building an application that can be deployed on any type of device and work the same way across the board. Sun Microsystems called this “write once, run anywhere,” and it was the defacto slogan for Java. However, as anyone who has ever actually written for Java knows, the differences in Java virtual machines (JVM) means that that in practice, it can often take more time to try to debug a solution and get it working on another platform than it would to just write it natively for that platform.
Web applications are actually the closest example of “write once, run anywhere” actually working. Even then, browsers still need to be optimized for specific platforms in order to run applications built using web languages. This is one reason why native application building for smartphones has become so popular: native applications usually offer a better experience than simply using the web.
It’s fine to aspire for solutions that will work well across a variety of platforms, but users need to continue to be aware of the technological realities that prevent that from happening. If nothing else, the Apple-Adobe debate highlights that computer software — web based or otherwise — is not one size fits all.