Let's assume the following two assumptions are true.
- Your entire userbase has broadband access everywhere
- There is an imaginary browser X that implements the entire draft specification of the HTML5 and WHATWG groups, consistently and all users use browser X.
What are the intrinsic limitations of a commercial public HTML5 web application that we need commercial public desktop applications for?
I'm interested in the limitations of plugin-less web applications that don't rely on Flash/Java/SilverLight/etc bridges for extra features nor rely on browser plugins for extra features.
Possible Limitations that don't apply:
- Databases? We have WebSQL and indexedDB.
- File IO? We have the HTML5 File API which does both reading and writing.
- Development Tools? The web has matured and there is a whole range of tools available which are too numerous to list.
- Closed Source? Yes, all the code is open source. This is a double-edged sword and there are numerous opinions on use of closed source or open source code. I personally believe the advantages of open source code outweigh the disadvantages.
- Real time / security (top secret) critical code does not belong on the web nor can it. It needs to be written in a low level, highly controllable language like C or C++.
- Any tool that needs to interact with a foreign 3rd party piece of hardware attached to your computer will have a difficult time talking to your web application.
There is also a whole suite of programs that do not belong on the web. Operation systems, drivers, server software, low level APIs. I'm aware of that but I don't classify them as "commercial public" applications, these are the type of software that can be pre-installed on computers.
As an aside, I know the two assumptions are horribly unrealistic, but we might achieve them in 5/10/20/30 years. I'm interested in the type of applications and the features of the applications that make them completely incompatible with the web.
Given the set of problems where a desktop application is a valid solution.
- Why is a web application not a valid solution?
- How do I identify whether or not I can use a web application as a solution.
I've tried to remove the main difficulties with web applications (internet connection and browser support) by asserting they don't exist.
As a further aside, HTML5 offline applications and Modernizr are on track to solving both those issues.
What are the other difficulties with web application development?