an ordinary blog — andr3.net

rss feed

my lifestream rss feed

are you tired of this? then return to latest posts

Merging online and offline experiences

If you have ever picked up a book about Distributed Systems you'll see that throughout history we've been passing weight from the client to the server and vice-versa. These days we are witnessing yet another shift.

Adobe Apollo + Joyent Slingshot Last week I was attending the Usability Seminar here in Lisbon, organized by the APPU (Portuguese Association of Usability Professionals, roughly translated) – great event, by the way – and when the discussion was launched with Adobe's Apollo and Joyent's Slingshot logos on screen I thought, you're kidding me right? Why? Because I just can't seem to get what all the fuss is about! (And I know I'm not the only one [portuguese])


For a very brief introduction to what they really are, basically, people are trying to bring the web applications to the desktop. Adobe even mentions Apollo allows developers to leverage their web development skills by creating offline apps using known languages. There are many reasons behind this and one of the most praised is also one of the most idiotic. There's an example application showing off the ability to extend Ebay's concept and allow the user to create auctions while offline and then syncing them with the site when he comes online.

First rebuttal: This something that really makes sense with mobile devices not full-blown desktops! This has been properly documented, implemented and used a lot in the mobile world. So this really isn't a reason to go and make a brand new framework to allow applications to run on the desktop! What else do you got?

Another reason was the limitations of the web/browser. True. There are things we just can't do with Javascript, or if we can they take a lot longer to implement using scripting languages and the DOM. It's hard to remove completely the waiting times and sandboxy environment of the browser. But I'm not sold yet. There are other languages for that, specially in times such as ours when web services can expose certain parts of our system to ANY application. If you want to cache operations and sync it later there are plenty of choices to go around: Java, C#, C++, etc. Pretty much any language with TCP implemented can consume a webservice. So I still don't buy it as innovative.

The only actual reason I can kind of understand is the lacking interoperability with the various operating systems our beloved web apps tend to have. Printing is getting better due to CSS media types and such, but we still aren't able to interact directly with the OS, for example, to access peripherals or other parts of the user's desktop. For one, thank god, or we'd all be much more paranoid about security than we already are right now. But as a developer I can understand why one would want to be able to, for instance, sync the digital camera with my Flickr account directly, as in, with a push of a button. Merging our online and offline worlds. Cool. I'm still waiting on a wireless iPod that syncs automatically with the computer via wifi/bluetooth when I get home!

We've always had "offline" programming languages, so if there really is the need to bring webapps to the desktop, why not use one of the many out there? Laziness? Java's security wasn't achieved overnight, nor was C++ performance. All of this takes time, so could someone please enlighten me for why we really need these frameworks? Is it really that hard for web developers to learn new programming languages? If so, you might want to rethink your role as developers. No? Share your thoughts, please.


It could be, though, that Adobe just wanted to venture to other market... If that's the case, just say so! Don't pretend to be hip and setting the trend for the Web III – The revenge of the HTTP. (That's what I'm calling the successor of web-two-oh. Remember, you heard it here first!)

Related Links

Comments

↑ top