Since we are using RIA in the title of this blog, and since we are going to be talking about them quite a bit, we should start with a definition as to what a RIA actually is. A RIA is not a simple thing to define.
"I know it when I see it" - Supreme Court Justice Potter Stewart
While that quote is in regards to a completely different topic, the sentiment is the same. RIAs are not something that you can check items off of a list and say "Yup, that's a RIA". The Wikipedia definition of a RIA is:
Rich Internet applications (RIAs) 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. the state of the program, the data, etc.) back on the application server.
While that is true, RIAs are more than that. In fact, that doesn't even touch on the 'Rich' aspect of a RIA.
Rich
What do we mean when we say an application is rich? A well designed and developed RIA provides an interface that allows the user to interact with the application in a way that is both intuitive and simple. This doesn't mean that the site is "flashy" or "Web 2.0", what it means is that the information architects, designers and developers all worked to create a workflow that makes sense to the user and provides a low friction way of accomplishing it.
One definition for Rich in this context comes from the definer of Web 2.0 (notice I didn't say creator). Tim O'Reilly has 'Rich Web Experiences" as one on his tenants of what comprises a Web 2.0 Application. I'm not saying that all RIAs are Web 2.0, just that the definition overlaps.
Internet (Interactive)
The 'I' in RIA is generally accepted to mean 'Internet" but at times the word "Interactive" shows up. Personally, I think either would work and that the word used doesn't really matter. Typically, the term RIA is used to describe web-based applications, thus the usage of "Internet". It is not uncommon though for RIA to be used to describe any 'Rich' application, regardless of platform. This is especially true when the application spans platforms, web and desktop for instance, with the same interface.
Application
Hopefully this one doesn't need a definition. I will say that RIA is not synonymous with website. Some people assume that if you build your entire site in Silverlight/Flash, that it's a RIA. I don't agree, and think that build and entire site in either of those technologies is usually a bad idea today. HTML/CSS is pretty good at what it does so there is not always a need to replace it.
Finally
In conclusion, my definition of a RIA is typically a web-based application that has desktop like performance and an intuitive graphical interface. Throughout the life of this blog we will explore this definition further and it is quite possible that its definition will be radically different than it is today.
If you have a different view on what a RIA is or disagree with anything I've said here, leave a comment and let's discuss it.
