Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I recently attended a talk by a WebKit developer employed by Apple. The topic of the talk was advanced CSS techniques. The speaker demonstrated some incredible capabilities that WebKit has added to CSS, including transition animations, 2D and 3D positioning and transformation, and gradient generation (to name a few). When he combined these techniques into a demo web site along with the HTML5 video element, I was blown away.

Unfortunately, Joe is correct that "Web technology is still relatively weak, and improving slowly." On the iPhone (and, to a lesser extent, on the desktop) there is no comparison between the quality of native apps and the quality of web apps. Native apps still afford much more to the developer. Yet the web stack has proven to be very developer and user friendly. Unfortunately, it is crippled by the browsers (especially one browser in particular...).

Somehow we need to accelerate the empowerment of the web stack. One way to do this is to diminish the power of various "native" stacks. Ironically, Apple is one of the companies leading the way in this regard. The latest version of iTunes is almost entirely WebKit based. Mobile Safari on the iPhone can use all those amazing CSS capabilities that other browsers can't yet, even on the desktop.

In the end, I have to agree with Google's strategy: bet big on HTML5. Eventually, all apps will be web apps (though hopefully they won't require a native app -- the browser -- to run). I just don't know what to do in the interim while the web stack is still crippled by the browsers.



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


[deleted]


Sorry, the definition of "web app" that I intended here is a UI written in HTML/CSS and scripted with JavaScript. Also, it's distributed over HTTP, and usually it relies on data and application logic that lives on a remote server. Currently, this basically means it runs in a web browser.

I agree with you that the distinction is blurring and that we should attempt to blur it even more.


"The latest version of iTunes is almost entirely WebKit based."

Much of the store frontend is, but I think you underestimate the staggering amount of code that goes into a desktop app like iTunes.


How would one go about using a webapp without a browser?


If all apps are written in HTML/CSS/js, why would your OS have 1 "native" app that runs all other apps? The OS would just run web apps directly. The OS's UI itself would be written in web technologies. Maybe Chrome OS will do this. Given the short period of time they've been working on it, I doubt it, but I can hope.

See http://shoptalkapp.com/blog/2009/10/15/the-real-web-os


Having browsers mean X apps that run other apps, not 1. I think it is sort of a dystopian vision to have the OS be the only party responsible for rendering apps. Having IE, Safari, Firefox & Chrome (and Flock, MobileSafari, Opera, ...) in the mix has really spurred a lot of innovation and there's no reason why the innovation will slow down.


> The OS would just run web apps directly

You know, that's basically what Microsoft tried to do with internet explorer, but they ran up against such vehement opposition I'm pretty convinced that's why the concept hasn't progressed.

Next up is Google with Chrome/OS/Android, will they be perceived as Evil also? Only time will tell.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: