I keep hearing this, especially from the Cappuccino guys, and it strikes me as a bit of a stretch. For it to be true, HTML/JS/CSS would have to stretch dramatically to accommodate all the functionality of existing OS frameworks, except they'll also have to be platform independent. Even if this happens, it'll be yet another layer on top of the current stacks, but will have to perform as well as software written for the layer below.
It might be plausible, but I don't think it's a given. "The web" has barely gotten around to doing roundrects easily, let alone have the abilities to allow you to implement something like InDesign, Maya or Cubase using its technologies.
"Some apps"? Sure. "Most apps"? I can even see that -- consumer apps and basic business apps the web can do really well. But "all apps"? [citation required].
> HTML/JS/CSS would have to stretch dramatically to accommodate all the functionality of existing OS frameworks
Yes, that's my point, and I think a major point of the article. It's getting there, but very very slowly. The main reason for that is the required consensus of the various browser vendors. There is nothing inherent to the web model (apps built with HTML/CSS/js and distributed by visiting web URLs) that makes it impossible to do everything you can do with "native" UI framework X.
> let alone have the abilities to allow you to implement something like InDesign, Maya or Cubase using its technologies.
The UIs for those apps could easily be implemented using web technologies. The number crunching would require an extension to our current set of web technologies, like Google's native client. JavaScript implementations have come a long way in recent years, but not that long. ;-)
Still, the point is not that all apps can currently be written using web technologies. The point is that it's theoretically possible and that the world is moving in that direction. Sure, there are barriers to overcome. So, let's overcome those. It's not impossible. It's not even that difficult.
I'm not sure that InDesign's UI could be done with current tools -- there's a lot of hardcore typography and image manipulation going on there at levels of precision that make pixel-perfect look slapdash.
Still, I take the point, but it still seems to me much more like something that would be theoretically possible than anything that will actually come to pass. As you say, to really make this happen, you have to stop limiting the progress of HTML, and that means breaking out of the browsers.
But ... if you break out of the browsers, you fracture the platform, and that means you lose the incentive to make these apps web apps in the first place. If your HTML/JS/CSS stack isn't as platform and browser-agnostic as it can be, ultimately you end up with a platform-specific way of writing apps that competes with native apps, and that's a losing battle.
Putting that aside, I'm not sure there's case that all apps should be HTML/JS, either. We can do cool things with the web stack, but ultimately it's designed and optimised for sending pages and forms back and forth. We put up with that because there are a great many benefits in doing so, but there has to be a reason to write our apps that way -- reasons that things like iTunes and the Safari Web Inspector have, but lots of other desktop apps don't and won't.
If your HTML/JS/CSS stack isn't as platform and browser-agnostic as it can be, ultimately you end up with a platform-specific way of writing apps that competes with native apps
You mean like browser-specific CSS? Or IE6 hacks? Or layout and rendering inconsistencies?
Web apps are the future of mobile applications for the same reasons they're the present of desktop applications. Ease of distribution. Ease of iteration. The freedom to do what you want, how you want it, in a market that's guided by users, not a big company acting as gatekeeper.
Comments
"Eventually, all apps will be web apps"
I keep hearing this, especially from the Cappuccino guys, and it strikes me as a bit of a stretch. For it to be true, HTML/JS/CSS would have to stretch dramatically to accommodate all the functionality of existing OS frameworks, except they'll also have to be platform independent. Even if this happens, it'll be yet another layer on top of the current stacks, but will have to perform as well as software written for the layer below.
It might be plausible, but I don't think it's a given. "The web" has barely gotten around to doing roundrects easily, let alone have the abilities to allow you to implement something like InDesign, Maya or Cubase using its technologies.
"Some apps"? Sure. "Most apps"? I can even see that -- consumer apps and basic business apps the web can do really well. But "all apps"? [citation required].
> HTML/JS/CSS would have to stretch dramatically to accommodate all the functionality of existing OS frameworks
Yes, that's my point, and I think a major point of the article. It's getting there, but very very slowly. The main reason for that is the required consensus of the various browser vendors. There is nothing inherent to the web model (apps built with HTML/CSS/js and distributed by visiting web URLs) that makes it impossible to do everything you can do with "native" UI framework X.
> let alone have the abilities to allow you to implement something like InDesign, Maya or Cubase using its technologies.
The UIs for those apps could easily be implemented using web technologies. The number crunching would require an extension to our current set of web technologies, like Google's native client. JavaScript implementations have come a long way in recent years, but not that long. ;-)
Still, the point is not that all apps can currently be written using web technologies. The point is that it's theoretically possible and that the world is moving in that direction. Sure, there are barriers to overcome. So, let's overcome those. It's not impossible. It's not even that difficult.
I'm not sure that InDesign's UI could be done with current tools -- there's a lot of hardcore typography and image manipulation going on there at levels of precision that make pixel-perfect look slapdash.
Still, I take the point, but it still seems to me much more like something that would be theoretically possible than anything that will actually come to pass. As you say, to really make this happen, you have to stop limiting the progress of HTML, and that means breaking out of the browsers.
But ... if you break out of the browsers, you fracture the platform, and that means you lose the incentive to make these apps web apps in the first place. If your HTML/JS/CSS stack isn't as platform and browser-agnostic as it can be, ultimately you end up with a platform-specific way of writing apps that competes with native apps, and that's a losing battle.
Putting that aside, I'm not sure there's case that all apps should be HTML/JS, either. We can do cool things with the web stack, but ultimately it's designed and optimised for sending pages and forms back and forth. We put up with that because there are a great many benefits in doing so, but there has to be a reason to write our apps that way -- reasons that things like iTunes and the Safari Web Inspector have, but lots of other desktop apps don't and won't.
If your HTML/JS/CSS stack isn't as platform and browser-agnostic as it can be, ultimately you end up with a platform-specific way of writing apps that competes with native apps
You mean like browser-specific CSS? Or IE6 hacks? Or layout and rendering inconsistencies?
Web apps are the future of mobile applications for the same reasons they're the present of desktop applications. Ease of distribution. Ease of iteration. The freedom to do what you want, how you want it, in a market that's guided by users, not a big company acting as gatekeeper.