Home RIA: What is it good for?

RIA: What is it good for?

This year there has been an explosion in Rich Internet Application (RIA) frameworks. The first major player to announce one was Adobe and its Apollo framework, which Richard covered back in March and I wrote about during ETech. Richard also wrote an explanatory post on Apollo. Next was Microsoft’s announcement of Silverlight during Mix 2007. Mozilla has plans to implement offline mode in the next version of Firefox and this week Google jumped into the game with their offline framework called Gears.

Why this storm of RIA and offline functionality? As long as broadband, WiFi and mobile are all on the rise, why are we even talking about Desktop applications? Surely there must be good reasons and use cases for these frameworks. In this post we take a closer look at the intended use and marketing behind these RIA frameworks.

What is RIA?

To understand these frameworks and the use cases, we need basic definitions. We start with the definition of RIA from Wikipedia:

“Rich Internet applications (RIA) are Web applications that have the features and functionality of traditional desktop applications. RIAs typically transfer the processing necessary for the user interface to the Web client but keep the bulk of the data (i.e., maintaining the state of the program, the data etc) back on the application server.

RIAs typically:

  • run in a Web browser, or do not require software installation
  • run locally in a secure environment called a sandbox
  • can be “occasionally connected” wandering in and out of hot-spots or from office to office.”

The takeaway is that RIA is defined as a mix of three things: desktop-like UI online, offline apps that look like online apps, and online applications that can go offline. Together, these things are a bit confusing. But perhaps if we just said: a browser app with a rich user interface that has offline mode, then things would be simpler. So, to belabor the point, an RIA is a browser app – but it works like a desktop app (e.g. a rich email browser app that works like Outlook).

What is Apollo?

Adobe defines Apollo like this:

Apollo is the code name for a cross-operating system runtime being developed by Adobe that allows developers to leverage their existing web development skills (Flash, Flex, HTML, JavaScript, Ajax) to build and deploy rich Internet applications (RIAs) to the desktop.

Adobe emphasizes that their solution as a runtime. The company is marketing it as an RIA framework because it hits all three aspects of the RIA definition. The runtime takes care of the desktop and offline mode, while existing Flash plugins support the same function in the browser. But the company does emphasize the importance of downloading the runtime, which is separate from the browser.

What is Silverlight?

Microsoft defines Silverlight like this:

Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of Microsoft .NET-based media experiences and rich interactive applications for the Web.

Unlike Apollo, Silverlight is just a browser add-on and is not a separate runtime environment. Instead, it packages a .NET interpreter right inside the browser, making all .Net languages available to developers. And it achieves the same RIA goals – creating rich experiences in the browser while supporting an offline mode.

What is Google Gears?

Google defines Gears like this:

Google Gears (BETA) is an open source browser extension that enables web applications to provide offline functionality using following JavaScript APIs: Store and serve application resources locally, Store data locally in a fully-searchable relational database, Run asynchronous Javascript to improve application responsiveness.

Google’s solution focuses primarily on offline mode. From that point of view, it is not really an RIA framework – instead it’s an offline mode extension to the browser. It is not standalone, so like Silverlight it just enhances the browser capabilities.

So what are the use cases?

No doubt that these are all impressive frameworks, but what do we need them for? The companies have not gone to the trouble of doing all this just to satisfy the R in RIA. More likely, the primary target is support of applications in offline mode. A classic example is accessing email on a plane. For example, the fact that GMail is not available offline precludes corporations from dumping Outlook in favor of Gmail. Other examples where online apps could make use of offline functionality include project management applications, like Basecamp, and calendaring.

So being able to access some web apps in offline mode is useful. But is it also useful to build desktop applications that look and act like online ones? The answer to this question is far less clear. Why would we do this? the reason must be to leverage desktop functions such as access to local storage and the network. But this is also possible with Silverlight and Gears, right from the browser. So the use case of a full desktop application that looks like an online one, but does not run inside the browser, does not seem to be compelling.

Are all these RIA frameworks overkill?

So the major use case is offline support. While it is true that we still spend time offline, increasingly many of us are almost always online. With broadband, WiFi and mobile devices experiencing rapid growth, being offline is less of an issue. The major gap happens when you fly, although it appears that the solution to this problem is also on the way (i.e. on-board wireless internet access). When the internet reaches the skies, we will run out of reasons to be offline. So where does this put all of these RIA frameworks?

Conclusion

While there is an explosion of activity amongst major players delivering RIA frameworks, there seems to be just a single major use case – support of the offline mode. From this point of view, Apollo is a miss, but Silverlight and Gears are on the right track. Looking at the development side of this, Microsoft’s solution is superior because it allows developers to build .Net applications. This means more robust (compared to JavaScript) programming languages and tools. But beyond this, if we are increasingly more and more online, why do we care about the offline mode?

Perhaps it is optimistic to think that offline mode will disappear that quickly – time will tell. But even today, it seems to me that we have already proven that web applications are better than desktop apps at juggling our information.

What do you think about this? What real RIA use cases do see out there? And what platform makes the most sense to you?

About ReadWrite’s Editorial Process

The ReadWrite Editorial policy involves closely monitoring the tech industry for major developments, new product launches, AI breakthroughs, video game releases and other newsworthy events. Editors assign relevant stories to staff writers or freelance contributors with expertise in each particular topic area. Before publication, articles go through a rigorous round of editing for accuracy, clarity, and to ensure adherence to ReadWrite's style guidelines.

Get the biggest tech headlines of the day delivered to your inbox

    By signing up, you agree to our Terms and Privacy Policy. Unsubscribe anytime.

    Tech News

    Explore the latest in tech with our Tech News. We cut through the noise for concise, relevant updates, keeping you informed about the rapidly evolving tech landscape with curated content that separates signal from noise.

    In-Depth Tech Stories

    Explore tech impact in In-Depth Stories. Narrative data journalism offers comprehensive analyses, revealing stories behind data. Understand industry trends for a deeper perspective on tech's intricate relationships with society.

    Expert Reviews

    Empower decisions with Expert Reviews, merging industry expertise and insightful analysis. Delve into tech intricacies, get the best deals, and stay ahead with our trustworthy guide to navigating the ever-changing tech market.