Maybe web apps aren’t all they can be?
I was reading an old blog entry by Paul Stamatiou earlier about The Web App Revolution, and it definitely got me thinking. I keep hearing people make these proclamations about how certain desktop apps are just aren’t suitable to be web apps, how they’re just ‘too much’ for a browser to handle. I’ve always had the sinking suspicion this line of thought is bogus, or at very least shortsighted, and here’s why.
“For example, iTunes won’t have any online competition until everyone gets a fiber connection to their house…”
I’m streaming music (sure, not my choice of it) over Pandora as I type this, but clearly the playback and track management wouldn’t be a problem in a web app. I can only imagine Paul’s referring to the feature of syncing with an iPod, and with this, he’d no doubt be right. As it stands, I can’t really think of any way someone could build out a web app that would sink your music to your iPod without something like fiber to the curb. One way I could envision a web app filling this gap is a wi-fi or networked iPod, but as far as I know, there’s no hope in sight for this little pipe dream.
To take the view that bandwidth is what’s holding back this type of application is a bit foolish though. It won’t be too long before someone fills this gap (hopefully the right way, IMHO). Even a trickle of bandwidth could synchronize a big-ol’ multi-gigabyte music collection given enough time. I agree that this particular application is an impossibility today, but it can’t be too far off, right?
“…creating a web application capable of what Photoshop can do would be nothing short of impossible.”
This type of application requires a bit more imagination, but there’s more than one way to implement a web app! Sure, AJAX is the only thing going that allows a pure in-browser, no plugin experience (for now, but Open Laszlo may change that). Sure, Flash can do some really interesting things but to run an app as featureful as Photoshop inside a memory hog like Firefox would probably require something like a terabyte of RAM. Pure AJAX or pure Flash aren’t the only two options for thin computing, though.
I can easily envision a simple Flash wrapper implementing a nice, clean UI for something like Photoshop and just having the canvas work as a simple VNC (or something like it) into a good high-powered server running some sort of GIMP or Krita service modified with a restful interface. If you think about how Photoshop performs under load, you typically wait for a filter to churn away before an image is re-rendered anyway.
The first issue that comes to mind with this setup would be zoom-in — it wouldn’t be as snappy as a rich-client like Photoshop. But that could be mostly remedied with some smart caching. Much of the other maneuvering around the canvas would already be accommodated with the cached image.
Another issue would be the passing of large files, but exposing a webdav or ftp share to the user could largely take care of that one. Sure, this could inconvenience the hard-core professional, but that’s really not the target demographic. After all, you probably won’t find any full-on email campaign management companies trying to shoehorn their processes into Gmail any time soon.
The menus and mouse movements would all be trapped and handled locally, so it could have a very snappy feel without the overhead and bloat of the full app. Sure, rendering the actual path of a tool like airbrush, as its drawn over the image, could cause delay if it were a pure VNC-like environment. Much of that could be taken care of locally until the mouseUp event where it would get pushed down to the server for final render, a process that could happen much faster than a moderately powered desktop.
I’m sure there are a few things I missed, but I think that even with the modest tools and bandwidth we have today, a very full featured desktop-like web app could be cobbled together. Maybe not a Photoshop-killer, but substantial none the less. I’m sure it wouldn’t take too much brainstorming to come up with a ton of useful features that wouldn’t even be possible with desktop app.
With this kind of technique, even processor hogs like CAD or video editing could be brought to the web — and could even be improved by doing so. The only stumbling block I see is Flash, or rather, Adobe. At least for now, I just don’t think JavaScript — and its inconsistent implementations — is up to the challenge. Flash is more than capable, and ActionScript 3 could handle these reqs and more with ease. But can you really trust the company that brought us the huge browser-freezing Acrobat plugin to keep the Flash plugin lean and mean? If only Adobe can keep its hands out of the Macromedia cookie jar, I smell a business plan!
May 10th, 2007 at 3:41 am