I’m in San Francisco tonight waiting for Adobe Engage to kick off tomorrow morning. I enjoyed Engage quite a bit last year, and it looks to have at least doubled, if not tripled in size this year. One email said there’d be over a 100 people.
What with there being some AIR and Flex news circling around, why not discussion of how the desktop is fitting into all this RIA hoopla?
Rich, Desktop, and the Internet
First, we had one major concern here with RIAs. The Rich part. We wanted UIs that looked good, like all those nice Ajax-y applications, but even better. Flash and Flex based UIs have that GUI feel, but can be presented in the context of a browser, making you think this a really good looking web page.
At some point – apparently, very long ago for some – integrating more closely with the local desktop became a concern, at least for Adobe. The idea is that, sure, having all this stuff up in the web is dandy, and it’s even looking good now, but we’d like to be able to drag and drop pictures, documents, and even work offline. For Adobe, this was project Apollo, now AIR.
AIR is, in simple terms, a new browser that will run both Flex and web-built (HTML and JavaScript…that is, Ajax) application. Here, a “browser” is sort of like a web browser in that it’s both a “container” for a type of applications, but also a managed runtime for those applications.
It’ll operate in online mode, connected to and using the internet, and offline mode. In both modes, there’s “sandboxed” (moderated and limited) access to the local computer, or desktop in shorthand.
Offline Mode, Google Gears
Here’s where Google Gears typically bleeds into the RIA discussion. Gears itself is just a framework for allowing web applications to operate offline. Google Reader uses it pretty well. Conceivably, you could look at Google Reader and other applications that use Gears as competition for AIR.
Google Gears also serves as an interesting canary about this whole RIA with access to the desktop theory. My colleague Stephen O’Grady is fond of asking of all this RIA hoopla “do we really need this?” The same question stands for desktop access. Gears has been around for less than a year, but a few months short thereof. I used Google Reader with Gears quite a lot, but I haven’t encountered or heard of other mega-uses.
Granted, like everything from Google, the background story and versioning of Gears doesn’t engender the wide, rapid adoption that you see from official 1.0 versions of products.
Less Web, More Desktop
From the start, I’ve been a bit weirded out by the focus on desktop use-cases. Similar to Stephen’s question about RIAs, AIR often seems to me like a framework on a snark-hunt. That said, GUI development is no piece of cake. Thus, when I look at RIAs now-a-days, esp. ones with such a focus on the desktop, I tend to think they’re just another crack at doing a better, (hopefully) easier to use GUI. JavaFX fits that to a T, and AIR seems to be Adobe’s entrant into the GUI framework arena through the RIA door.
Oddly enough, I use a ton of desktop applications now-a-days. I’m not one of those people who’s moved all of their applications into the web browser – quite the opposite actually. I call it the Apple effect: when I was in Windows 24/7, I wanted to get as many applications as possible off the desktop, into the browser. Once I got on OS X several years ago, I slowly pulled back to the desktop: I actually liked using the operating system and wanted to use it more.
More Desktop, More Web
There’s another, more middle-of-the-road way to take this desktop thing: extended the web to include people’s desktop. For as long as the web’s been around, there’s been a thick, virtually impenetrable line between the web browser and the desktop. The only real way to hook your desktop up to the web was through cut-n-paste, uploading files, or downloading files. After all these years, that thick line seems “natural.”
Well, what if we assumed the line wasn’t needed? What if the web should be able to reach into your desktop, and vice-versa? Your desktop would be just another URL, metaphorically speaking, hooked up to the web. That is – and much of this is Adobe-think coming through my fingers – AIR is just expanding the web rather than running away from it.
Others’ Desktop Ambitions
Other RIA platforms look to be pulling in similar desktop support rather than just focusing on looking good. Silverlight 2.0 is slated to be something like the second coming of .Net UI’age, while JavaFX looks to me to be a go at both sexing up Java UIs and making coding in them pleasant, both with the “connected to the internet” part of RIA.
Who Calls It
It’s easy for an old-hand like me to get all worked up about The Web and keeping it pure. But, ultimately, it’s not me, Adobe, Microsoft, Sun, or anyone else who’ll determine what the web is. All those users out there who’ll vote with their RIA runtime downloads and clicks will.
Long before Ajax, many web developers would have told you that the JavaScript heavy methods of achieving Ajax goodness were highly irreverent, if not plain dumb because of all the cross-browser support. But now, you’re exactly those things if you don’t use Ajax. Users liked Ajax, and once the cross-browser pain was manageable, developers liked the ubiquity. For the most part, vendors were locked out cold of the “Ajax market,” put in quotes because it was largely a skills vs. software market. Adobe and other RIA horses are gunning for that same user- and developer-driven change effect, except this time, they’re hoping to score some sales along the way.
Disclaimer: Adobe, Microsoft, and Sun are clients.
Technorati Tags: AdobeEngage2008, ria, Engage2008
I'm not surprised that Google Gears bleeds into RI discussions. Gears is more than offline support. If Dion Almeer's thoughts are any indication, Gears aims to solve the most common problems developers face while developing ajax applications in a cross browser manner without having to wait for browser developers.
Several of the APIs proposed by Dion would go a long way alleviating some of the problems we currently struggle with.
To me, Gears is different than flash/silverlight as it attempts to solve the problems within the browser paradigm, rather than "forking the web" using plugins.
Here is the link to Dion's post(s)
http://almaer.com/blog/gears-future-apis-services…
uhm, Berkay, Google Gears *is* a browser plugin. It's like Adobe Flash Player, but just for greater-than-cookiesized local data storage.
AIR is neither a plugin nor "a browser", although AIR contains an HTML rendering engine like browsers do. AIR itself doesn't browse among webpages so much as enable webpage creators to provide a more capable desktop experience than what a WWW browser alone can safely offer.
Mozilla Prism is a way for webpage *users* to wrap an existing webpage in its own browser. Its appearance is similar to AIR, but its scope is that of today's web browsers.
The press releases may come out at the same time, but if you look at the technologies, they offer very different things.
jd/adobe
John, I didn't mean to suggest that gears is not a plugin. The difference between Gears and flash/silverlight still seems relevant. Gears tries to extend the browser platform, but not change the programming paradigm (ajax). Silverlight and Flash introduce a new programming paradigm.
Gears is already not just offline storage (worker pool, database, etc.) and assuming some of the APIs Dion is proposing in the URL above gets implemented, it can become much more.
They may be offering different things now, but there is a sense that they are alternative approaches to RIA.
Personal use case, going forward, we may be able to use Gears to solve some of the shortcomings we face with our ajax applications; use proposed gears desktop api to integrate with desktop or use a future version of prism. End result would still be an ajax application with desktop integration. Or we may change direction and rewrite the app with flex and run in AIR.
Hi there; I'm with the Google Gears team. I like to see Google Gears as an open source browser plugin that teaches contemporary browsers new tricks, such as offline, better performance, dropping shortcuts on the desktop, etc. Rather than introduce a new programming model its about augmenting the browser and the browser's existing model with more tools, in an open and cross-browser way, so that we can keep evolving the web and solving problems.
Best,
Brad Neuberg