The ever-changing definition of RIAs and how people are killing it

The ever-changing definition of RIAs and how people are killing it

Summary: There's a long and mostly good article about various RIA technologies over at eWeek. I say mostly good because the author, Jim Rapoza, gives a pretty unbiased view of a lot of technologies.

SHARE:

There's a long and mostly good article about various RIA technologies over at eWeek. I say mostly good because the author, Jim Rapoza, gives a pretty unbiased view of a lot of technologies. It's a rundown that we (the entire space) needs more of and that I don't feel qualified to give (for obvious reasons). But the problem is that Jim limits the term RIA to primarily desktop technologies with the exception of Silverlight which is included in the desktop RIA roundup and Curl, where I can't tell if he's using the browser plugin for Curl or the desktop version.

Defining RIA
Let's first bite off the question of what desktop applications constitute RIAs. In general, I'm pretty broad with this definition. I think things like Mozilla Prism, Adobe AIR, Curl Nitro, and Microsoft WPF are all examples of desktop RIAs. WPF is the hardest to place because it's the most "native" of those examples seeing as it's the next generation of Microsoft's .NET framework for building Windows applications. In general, I think RIAs as a whole should be:

  • Cross-platform
  • Using web technologies
  • Have a focus on both performance/data as well as very usable, next generation user interfaces (the "Rich" part of RIA).

I also think that the best RIA platforms should have:

  • A good designer/developer workflow story
  • At a technical level business logic and user interface should be very cleanly separated so that the UI can easily be enhanced.

It's the last two that I think pushes WPF over the top.

Coding for the desktop in the browser
So with that definition of RIAs, we get a bunch of technologies. Some are RIAs on the desktop, like the ones included in the eWeek article. But the longer term, older, and some would say more future-compliant are the RIAs inside the browser. That's what Web 2.0 was built around and that's what continues to get a lot of attention. As a result it's VERY, VERY important to differentiate between browser RIAs and desktop RIAs and to compare apples to apples instead of apples to oranges (browser RIAs to desktop RIAs). This is where people seem to confuse Silverlight the most.

The eWeek article starts off like this with regards to Silverlight:

However, while Silverlight's browser and operating system support is impressive, as an RIA platform, its scope is much more modest. In tests, Silverlight proved to be a fairly basic and even old-school approach to building and using RIAs. In fact, Silverlight can't be considered a direct competitor to more advanced RIA platforms such as AIR. If anything, Silverlight is more of a direct competitor to Flash.

That's both semi-accurate and completely misses the point. Actually, it's kind of scary that the newest entrant into browser RIAs is being called a "basic, old-school approach to building and using RIAs". Are browser RIAs that boring? While I'm a huge advocate of desktop RIAs, I think the browser should still be getting a bunch of the attention. And in fact, the browser is still where most of the energy is and as a result a really good RIA platform will build on what they know in the browser and leverage that in their desktop clients.

Look at Adobe. We've got the Flash Player in the browser and you can use ActionScript as well as the Flex Framework to build browser RIAs. Then you can take that exact same knowledge/code and start building a desktop application on AIR. Look at Microsoft. You can build a C# and XAML application in Silverlight then take that code and start building a desktop application in WPF. Look at Java. You can write Java code along (soon) with JavaFX and run it in the browser or as a regular Java app. Seeing a pattern? Same thing with Curl. You can use the Curl language to build a Curl application in the browser and now with Nitro you can take that code and build a desktop application. Mozilla Prism is the most basic example because all you're basically doing is taking a browser application written in Ajax and turning it into a desktop application. The browser space is also where a lot of the Ajax frameworks exist and where companies like OpenLaszlo exist, so there's room for all of those to grow.

Ajax
The way all of these technologies incorporate Ajax has also been interesting to see. Silverlight allows you to use JavaScript to program RIAs with it. AIR supports the full HTML stack so you can create desktop applications with Ajax. Prism is obviously all about Ajax. So as a core RIA technology, JavaScript and HTML are still doing very well and should continue to get attention whenever anyone mentions RIAs.

It's a big, big world and it's only getting bigger. And yeah, maybe it's a pain that RIAs have started to fragment a lot. But in the end, competition is good and each of these technologies within both the browser niche and the desktop niche have their own strengths and weaknesses. It's how those evolve that will be the most interesting and because of the close relationship between the browser RIAs and the desktop RIAs, we need to keep an eye on both.

So that's my take on the RIA space. What did I mess up? Talkback away.

Topics: Browser, Hardware, Microsoft, Software Development

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

18 comments
Log in or register to join the discussion
  • Silverlight is NOT a rich internet application platform, it is a rich

    proprietary application platform. The key is the word "Internet" which implies that it is cross platform and based on standards.
    DonnieBoy
    • Checkboxes

      [i]The key is the word "Internet" which implies that it is cross platform and based on standards.[/i]

      Silverlight [i]is[/i] cross-platform: it runs on both MSWinXP and MSWinVista. As for "standards," ISO will be approving it later this year.
      anonymous
      • RE: Checkboxes

        I don't know about the ISO part, but Silverlight is cross
        platform. And it supports JavaScript, plus I'd consider C# a
        "web language" even if it's not a standard.
        ryanstewart
        • FSVO "cross platform"

          [i]Silverlight is cross platform.[/i]

          In that it supports more than one version of MSWindows, yes. That's a rather generous definition.

          [i]I'd consider C# a "web language" even if it's not a standard.[/i]

          Actually, it is an ISO standard, or I should say several of them. Every time MS updates their product, they run it through the rubber stamp mill so by now there have been (IIRC) three standard see-hash "standards."
          anonymous
          • The important thing is the the current version of C# is not a standard and

            is NOT cross platform. Ditto for Silverlight. You have to remember that MS does not benefit if those technologies work very well cross platform. So, we have the "fox guarding the chicken coup" problem.
            DonnieBoy
        • If you mean the Mono based version "moonlight", MS will NEVER make sure

          that they all work the same. You will have to use Windows for everything to work correctly.
          DonnieBoy
        • mhhhh...

          Silverlight is not cross platform. I only count it if it is out of the box. The Mono/Moonlight group hacking away at it does not count. Nor does its ability to run on XP and Vista count. Those are both MS platforms. Does it run on OSX currently? I have never looked into that.

          C# is not a web language. Its a general language. You may be thinking about ASP.NET which is often written in C# of VB.net. C# will be behind most of your .Net based desktop applications. As for a standard I imagine it would pass as a language but its runtime and development foundation (.Net Visual Studio) are not cross platform. So that doesn't do much to make it a truly wide ranging language like C/C++ or even Java. It will always be a proprietary language for Windows platforms.
          storm14k
  • Browser integration

    I'm not impressed by the "browser RIA" distinction. The fact that you can, sort of, invoke some of these desktop applications (e.g. Flash) from a browser doesn't make them browser-based any more than the fact that you can run EMACS from a browser does.

    In the end, they're standalone applications that can, sometimes, be invoked by browsers or file managers. The current incompatibility of Adobe's Flash player with 64-bit native browsers is a case in point.
    anonymous
    • RE: Browser integration

      What do you mean when you say you're not impressed by it?
      That those shouldn't count as RIAs? That I didn't include
      JavaScript enough? I agree that in some cases they are little
      sandboxes inside the browser, but the browser is just a
      delivery mechanism, and Flash/Silverlight/other plugins are
      meant to work inside that delivery mechanism.
      ryanstewart
      • Overbroad definition

        [i]What do you mean when you say you're not impressed by it?
        That those shouldn't count as RIAs? That I didn't include
        JavaScript enough? I agree that in some cases they are little
        sandboxes inside the browser, but the browser is just a
        delivery mechanism, and Flash/Silverlight/other plugins are
        meant to work inside that delivery mechanism.[/i]

        You've broadened the definition to the point where it included Microsoft Office, among others. After all, it also launches from a browser, is programmable to deliver LOADS of application functionality, accesses the Internet, etc.
        anonymous
  • RE: The ever-changing definition of RIAs and how people are killing it

    Call me a strict constructionist, but I tend to just look at the words in RIA.

    Is it an "application"? That is, user interaction to achieve a business objective,

    Does it leverage the Internet? Not just to update version, I mean is it integral to the applications performance?

    Is it "Rich"? Does it break beyond the "Click/Page Reload" paradigm? Are the controls, data transfer and containers asynchronous?

    Cross platform, workflow, everything else - that's all just a matter of feature set for the particular tool of choice. If cross platform is important to you, then choose the tool that fits that need.

    Just MHO.

    Davo
    davidmartinomalley
    • RE: RE: The ever-changing definition of RIAs and how people are killing it

      Yeah, I generally agree, but I try not to break down the
      acronym too much. For the most part I think the internet has
      become an integral part of everything, but that's one of the
      things that makes..say..Word not an RIA, it has some ties to
      the internet but the internet isn't an integral part of Word
      (yet).

      As I read over your definition again I like the way you put it.
      ryanstewart
  • The important thing for RIAs is that they really are cross platform,

    FROM THE START, and have a reference implementation with source code. For example, what Google has done with Gears, makes sure it works the same on all platforms. Yes, Gears is only one part of the RIA puzzle, but, that is what we need.

    Now, since with Adobe, we do not have the "fox guarding the chicken coup" problem, Flash/Air is more palatable, but universal interoperability is still at the whims of Adobe, and they do NOT support all platforms equally well.
    DonnieBoy
  • RE: The ever-changing definition of RIAs and how people are killing it

    Hi Ryan,

    There is so much confusion about RIAs so every clarification is welcome - thanks for that! In my opinion, there are two main essences to every Rich Internet Application:

    1 - There is a strong connection, or rather dependency, on the internet. MS Word, for instance, uses web resources too (online help, clip arts, templates etc.) but it has its valid purpose in the offline world so it's not a RIA. eBay Desktop, on the other hand, wouldn't even exist in the world without internet ??? that???s why we see it as a RIA.

    2 - User experience is very close or equal to traditional desktop applications.

    When you accept this point of view, AJAX is not just some old technology that is integrated into modern platforms in various ways but it is a RIA platform of its own. Applications like Gmail or Zoho Writer or tons of other AJAX apps out there are all part of this RIA movement and I think this is what most people don???t realize. I think that is because we don???t have a term yet for applications that are ???RIAs but not AJAX??? ??? and we probably won???t have a term for this anytime soon and that???s fine, I understand what an author wants to say when he writes about ???RIA wars???. But when you write an article like this which tries to define RIA, you should not forget that the good old AJAX is still there and not going away anytime soon.

    Regards,
    Borek
    BorekB
  • Prism is not an RIA

    Which of course makes sense: how does wrapping a regualr
    webpage/webapp in a chrome-less process constitute a
    "rich" interface?
    LibbyD
  • RE: The ever-changing definition of RIAs and how people are killing it

    This thread was doomed before it even started, the only person whom could add possibly add enough credability and weight to this conversation would be Jeremy Allaire.

    Let me clarify, I'm not saying he's the messiah of RIA, but i'd be curious to see where he thinks the direction of RIA of yesterday vs tommorow is heading.

    Personally, I think RIA is an abused term and ultimately you all fail in the end, as if a collective audience can't decide on a term to frame the conversation with customers that they in turn understand and comprehend. Then you are now back to where we all where in 2000-2001. Educating firt, selling second.

    This is why large corporations aren't quick to market the term RIA but are holding back a bit, waiting for the dust to settle. This is bad, as you the folks whom consider yourself RIA engineers/designers/architects etc are making life harder for yourselves in the various fields you dwell in.

    I won't enter the debate into Silverlight is or isn't RIA. As it will only kick off an argument and ultimately the only way to win an argument is if the other person(s) agree to let you win.

    What upside is there to all of this?

    -
    Scott Barnes
    Product Manager.
    Microsoft
    scbarnes@...
  • I wish they'd just stop with it...

    Its just another buzzword to rehash things that have already been done. We've had glitzy flash sites before and people didn't care for it. If its the offline component that's so interesting then why call them internet applications. And desktop applications should have adopted a layout scheme similar to that of web applications LONG ago. It should be just as simple to make a desktop app with flashy graphics as it is for a web app.
    storm14k
  • The definition of RIA

    As I recall it was Macromedia that coined the term RIA to
    describe more advanced programming with Flash including
    Flex.

    When I was an analyst with Burton Group RIA was one of
    my coverage areas. We provided a very simple definition
    that actually includes Ajax. This is how I would define RIA
    today.

    Rich Internet Applications are web browser technologies
    that provide a GUI framework that goes beyond plain HTML
    and CSS. In addition, RIA platforms provide for asynchronous communication with back-end services.

    By this definition Adobe AIR, Curl Nitro (my product),
    Mozilla Prism, Google Gears and widget engines (e.g.
    Yahoo Widgets, Google Gadgets) all fall outside the definition of RIA. They are, in fact, RIA platforms that have
    morphed into desktop runtime environments.

    That said, Curl is actually both a RIA - you can run applets
    constrained to the web browser - and a desktop application - you can install and use it run desktop applications. We have one runtime for both use cases.
    monsonhaefel