Limitations of an Idealistic HTML5 Web Application

desktop applicationjavascriptwebweb-applicationsweb-development

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.
  • Speed? With the recent JavaScript engine race, the browser is no longer slow. Native C++ is only 3 times faster then chrome's V8 engine.
  • 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.
  • JavaScript/HTML5? Arguments along the likes of "I personally think HTML5 and EcmaScript are horrible development platforms" do not count.

Known Limitations:

  • 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.

Motivation:

The point:

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?

Best Answer

Off top of my head...

  • access proprietary hardware that exports its I/O by other means than a file. Be that scientific equipment, industrial machinery, or plain CD recorder and a digitizer tablet with tilt support.
  • only HTTP and a small family of other protocols. You can't create sockets as you wish, transferring whatever binary data you desire. That vastly limits connectivity with other systems and services.
  • No sane developer will create graphics-intensive game in Javascript. Broadband is not nearly comparable to DVD/HDD throughputs often needed. Support for 3D in Canvas is vastly inferior to what you get with game engines. No way to support joystick, multiple simultaneous keypresses, the open nature makes cheating easy. But primarily, the performance drop is not acceptable.
  • Heavy sandboxing. You won't get stuff that deeply integrates into the OS. Screenshots, antivirus, virtual drives, background tasks a'la system tray, administrative tasks etc.
  • can't be mission-critical. Depending on broadband at all times to run their basic software is not the preferred way most companies like to run.
Related Topic