InfoQ

News

The Three Religions of Rich Internet Applications

Posted by Geoffrey Wiseman on Jun 20, 2007 06:30 AM

Community
.NET,
Java
Topics
Silverlight ,
Rich Internet Apps
Tags
Apollo ,
Flash ,
Flex

From Ajax to Silverlight, Apollo and the Adobe Integrated Runtime to Flex and Flash, from JavaFX to OpenLaszlo, Rich Internet Aplications seem to be on the tip of everyone's tongue these days. Vendors are vying for attention, and developers are trying to select the 'right' technology.

In all that noise and confusion, it's easy to lose track of the fact that what people mean when they talk about Rich Internet Applications differs. There are different philosophies about how RIAs should be architected, from Chris Messina's Thoughts on Mozilla and the Open Web about which Brendan Eich opined to the new technologies being offered by Microsoft and Adobe.

Simon Morris cuts through all that to identify a taxonomy of Rich Internet Applications, the "three distinct religions in the RIA space."

Browserism is the belief that the web browser (or comparable page-centric markup-orientated HTTP-bound middleware platform) is the future of end user facing software; a belief solely based on observation that the web is currently the predominant tool for accessing the internet.

Neo-Desktopism is the belief that the web browser as an end user facing application platform is ultimately an evolutionary cul-de-sac. The goal of Neo-Desktopism is to evolve traditional desktop application technologies (for Java, this would be Swing and AWT primarily, although also includes the JRE itself) to a point where they can float free of a physical local client installation, deploying on demand just like web pages.

Pragmatic Neo-Desktopism is the belief that the web browser as an end user facing application platform is ultimately an evolutionary cul-de-sac, but we'd all get fired if we admitted that to our bosses.

All tongue-in-cheek aside, these really are three significant camps within the spectrum of Rich Internet Application technologies. Simon goes on to explain the philosophy he favors:

A desirable Rich Internet Application platform, I'd suggest, will be reached by mutating the current Rich Non-internet Application platform (aka, regular desktop app technologies) to a point where they can live in 'cyberspace' (ug!) rather than on someone's hard drive, while still retaining all the functional richness and user interface finesse of their ancestors.

Will Hartung points out that some applications blur the lines between these camps somewhat:

Just to confuse Simon, what IS Thunderbird? Is it Browserism or is it Neo-Desktopism? The VAST builk of Thunderbird is written in Javascript. The overarching goal is to further get the runtime behind Thunderbird (and Firefox) refactored so that it can be a headless system to upon which to better write client applications.

So, where are Rich Internet Applications headed, are they important and which technologies and architectures do you believe will survive and shape the way we build applications in the future?

We'll try and keep you informed as the situation evolves, here at InfoQ.

Feel strange on sequence and category... by sand wish Posted Jun 23, 2007 10:09 AM
  1. Back to top

    Feel strange on sequence and category...

    Jun 23, 2007 10:09 AM by sand wish

    1. "Apollo and the Adobe Integrated Runtime to Flex and Flash, from JavaFX to OpenLaszlo" should be reordered as "Flex and Flash to Apollo and AIR, from OpenLaszlo to JavaFX". Actually, I didn't figure out where the comparability is between OpenLaszlo and JavaFX. 2.The taxonomy of these RIA mouthpieces can be categorized more naturally as Browserism and VMism(VM=Virtual Machine). Comments are welcome :)

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.