2. HTML wasn't designed for applications
The buzz on HTML5 is that it's HTML souped up with improvements to support Web applications. But better app support wasn't always the direction of the HTML standard. Originally, the successor to XHTML 1.1 was going to be XHTML2, which would have emphasized semantic markup and integration with XML. True to its roots, XHTML2 was a document-centric markup language.
The XHTML2 effort foundered, however, and a splinter group called the Web Hypertext Application Technology Working Group (WHATWG) broke off from the W3C's HTML activity to begin work on a different draft of the standard, one that emphasized elements useful for Web applications. It was this work that eventually became the basis of what we now know as HTML5.
But was HTML5 really the best direction to go? HTML5's ballyhooed
<canvas> tag, for example, essentially means "insert a bunch of programmatically generated graphical content that can't be described by markup." That's a pretty strange use of a markup language. If we keep going down this road, are we not perhaps shoehorning Web standards into a role for which they were never really suited? It may be a necessity for the Web, but do we really want to put ourselves in the same bind everywhere else?
3. HTML sucks for building UIs
One of Apple's big innovations with the original Mac was publishing a detailed set of Human Interface Guidelines for developers. As a result, unlike DOS programs, Mac apps looked alike and behaved alike. They all used the same kind of menus, the same dialog boxes, and the same alerts. The resulting impression of coherence and consistency was a big reason why the Mac OS was so wildly successful, even when GUI desktops were still new and unfamiliar.
With Web apps, we're back to the DOS days. Interface designers are free to create any kind of buttons they want, have menus that slide down or pop up from anywhere, and generally paint the entire window any way they see fit. Without a standard set of widgets, apps built with Web technologies feel inconsistent and sometimes downright alien. Even if you go out of your way to build a UI that looks dead-on like a native iPhone app, the same UI won't fit in on an Android phone. Who's going to take the time to build Web-based apps that feel "native" on every platform? Nobody, that's who. (Let's not get started on the screen-size issue.)