The coming RIA wars: A roundup of the Web's new face

The coming RIA wars: A roundup of the Web's new face

Summary: A host of powerful new methods for rapidly creating compelling browser-based software (aka Rich Internet Applications) have recently come to market, or are rapidly heading there. While the technique getting the most press by far these days is still Ajax, there are a number of new approaches that are intent on dislocating this often finicky and hard to work with -- though very powerful -- browser software model. The goal? To help us more easily develop the next generation of Web applications that are every bit as good as or better than desktop PC applications.

SHARE:
TOPICS: Browser
25

A host of powerful new methods for rapidly creating compelling browser-based software (aka Rich Internet Applications) have recently come to market, or are rapidly heading there.  While the technique getting the most press by far these days is still Ajax, there are a number of new approaches that are intent on dislocating this often finicky and hard to work with -- though very powerful -- browser software model. The goal? To help us more easily develop the next generation of Web applications that are every bit as good as or better than desktop PC applications.

RIA Choices Abound with Trade-offs Extreme 

The motivation for all this is simple; most of the world of software is moving to the browser and SaaS -- and therefore the Web and your local Intranet -- despite the browser lacking an innate capability for hosting sophisticated applications.  This lack notably includes support for rich media such a video, audio, and 3D graphics.  The fact is, Ajax is a solution that makes the most of fairly severe constraints in the browser, particularly not having the full support of an operating system, no access to powerful programming languages, and very few good development and debugging tools.  Yet it does quite well enough because the best Ajax applications build on top of the model of the Web and favor granulated data and software widgets all usable, discoverable, and "assemblable" by the vital hyperlink structure of the Web.

But Ajax looks like it will face blistering competition from Flex, OpenLaszlo, WPF/E, XBAP, XUL, Java Browser Edition, and others

But a host of companies and open source efforts are in the process of delivering -- in a seemingly endless series that began earlier this year -- one RIA solution after another.  The majority of these succeed in making the creation, management, and maintenance of Rich Internet Applications (RIAs) not only easy, but far more cost-effective and with features that Ajax might never be able to match.

However, what many people are still not tracking is that all of these approaches require deliberate add-ons to the browser, usually via disruptive plug-ins, that in themselves often have dramatic trade-offs.  One of the worst of these is breaking the model of the Web.  This specifically is the concept of link structure and a transparent content model, which makes the Web so powerful via its ability to enable search, propagate links to others, resurrect views of information by URL, and so on.  Bottom Line: Application models with considerably less ability to trigger network effects just aren't as exciting in the Web 2.0 era.

That's not to say there isn't plenty of room on the Web for these and other user interface techniques; far from it.  Often your application will either require the unique features these RIA approaches or you will find that expecting the average software developer to create rich, sophisticated applications using Javascript in the browser is not a reasonable expectation.  The fact is, the declarative model of the new RIA tools -- and Flex, Laszlo, XUL, and XAML-based platforms in particular -- is an amazing advance that changes the model for developing software from a "how" model to a "what" model.

Read Ed Burnette's new post about the struggles of the Java community to bring a true browser-based Java RIA kernel to the world

But what do all these technologies bring to the table and which one is the best bet?  It's worth noting that a great many of the more successful Web sites are actively and liberally using Flash plug-ins to provide the rich application and media support they need (Flickr, YouTube, Google, to name just three of thousands).  That's because Ajax can never provide a complete solution to what you'll need to do in a browser until the browser gets a serious overhaul.  The most common RIA platform is actually the Flash plug-in, found in 99% of all computers in the world, and it alone can provide the browser safe local file storage, audio/video capture, audio/video playback, and more.

So let's take a look at the RIA choices we currently face and see how they stack up.  I would note that each of these are powerful, compelling solutions in their own right but all currently also have notable drawbacks in virtually every case.  It will interesting to see how the calculated guesses that the designers of these platforms made will play out.  Did they guess the direction the market will take and which tradeoffs will end up being the right ones? We'll see, but for now, it's clear that since an effective RIA strategy will almost certainly require a combination of Ajax and one or more of these solutions, it behooves us to understand them well.

The RIA Platform Roundup - State-of-the-Art as of September, 2006

Adobe Flex 2 LogoAdobe's Flex 2 - With the second version of the platform released a couple of months ago, Adobe seems to have a very strategic, long-term plan for Flex.  Flex uses a combination of declarative markup and procedural code to specify how applications should look and work.  Flex applications look extremely professional right from the start and there is a clear emphasis on providing a platform that enterprises could love, including lots of support for back-end infrastructure including Web services, messaging, portals, server-side event push, and more.  Adobe also has a world-class GUI builder environment for Flex called Flex Builder that can run as an Eclipse Plug-in.

Flex 2 requires the very latest Flash 9 player so if your applications are facing the Web, this could be an issue for some uses since this player is brand-new and deployment is still limited on the Web.  While developer and community support is still growing, and some count the number of Flex developers in the low thousands, it's clear that this platform is one of the most sophisticated and mature RIA products currently available.  Check here for my favorite Flex 2 demo app; click on the pie chart wedges and see how the graphs repopulate. The Flex language and SDK are completely free, but very expensive server-side run-time licenses can apply for the enterprise features.

Open Laszlo LogoLaszloSystems OpenLaszlo 3.x - The platform formerly known as the Laszlo Presentation Server (LPS) gave up its server-side requirement and went solo and open source in its 3.0 incarnation. Laszlo has been around for a few years now and is the brainchild of David Temkin, one of the original Apple Newton team members.  Laszlo has a very similar declarative model to Flex but has a rich set of options for being hosted on the Web including the ability to support the Flash 6 player and above.  The most compelling upcoming feature of Laszlo is the ability to generate Flash applications or Ajax applications from the same source code.  You can see this working today in the Laszlo Legals demo applications; the side-by-side Flash and Ajax applications are amazing.  Laszlo also support the usual round of Web services, has robust community support including a compelling integration model with RIFE.  Laszlo also has a Webified feel and has been used in very large-scale Internet applications such as Pandora and Monster.com.  Because it's open source, OpenLaszlo is also completely free and has no run-time licenses of any kind.

Microsoft .Net Framework 3.0 LogoMicrosoft's Windows Presentation Foundation/Everywhere and XBAP - Interestingly, Microsoft is bringing its own Flash competitor to market that will run on other platforms including the Macintosh and mobile devices.  While WPF/E itself is a powerful Flash analogue, it doesn't have its own application development model like Flex or OpenLaszlo, the latter two which generate Flash SWF files but provide developers with a non-animation-based and purely programming view of development.  This is where the XBAP product comes in, and ZDNet's own Ryan Stewart recently covered XBAP in a post, essentially describing it as Flex for the WPF/E platform.  The question is how popular WPF/E and XBAP will really be given the sometimes apparently waning popularity of the Microsoft development model.  But lest you count this out, consider that Windows Vista will put WPF/E, Avalon, and XBAP abilities on millions of desktops in very short order with some very compelling features.  You can get a feel for XBAP's look and feel in Tim Sneath's XBAP demo apps for WPF/EWarning: You'll need WinFx installed to see these.  The WPF/E SDK will be free, though the professional version of the development tools for it probably won't be.

Mozilla LogoMozilla's XUL - A fascinating study in how to add RIA features to a browser that few other browsers support, XUL is actually a fairly decent declarative language for building Web-based applications.  It's major drawback is that it is primarily supported only in the Mozilla browser (though there are plug-ins available for others).  You have only to look at Michael Robertson's growing list of highly competent XUL applications including AjaxWrite and AjaxXLS to see what the potential is.  While I'm sure I might get flamed a bit by the XUL community for saying so, XUL is currently a good working model for how not to build a broadly accepted RIA platform, despite some technical greatness.  If somehow the XUL community can build a great plug-in model for other browsers or generate Ajax code, it's not clear where this RIA technology is currently headed though there is clearly promise here.

The Roundup Wrap-Up

While three of the four of the RIA platforms here are likely to be something you'll have to consider, it's clear that the perfect mix of features in a RIA platform has yet to be found.  The first two plug-in-based RIA technologies discussed here have very limited XML support since the Flash-player does not include XML capabilities, while Ajax has excellent XML support.  Garbage collection and application performance for plug-ins currently appears to be superior, while image loading and pipelining in the browser is still better and faster.

Finally, HTML and CSS support in plug-in RIA technologies is also quite lacking and I've seen RIA applications that hover a HTML layer in front of the RIA widget in order to render rich content.  This is a neat hack but a necessary one when you leave the capabilities of the browser behind.  This latter piece demonstrates a technique that will get more and more common in the RIA world; the deep blending of browser capabilities, Ajax, and plug-in RIA widgets to leverage the strengths of both.  Ajax is disruptive but it's likely going to be a killer combination of RIA technologies that works best for the majority of folks.

Will widget support become a killer app for RIA platforms? Read Om Malik's take on the future of the Web as a galaxy of rich composable "parts" 

Consequently, making a final RIA choice for the Web or enterprise today is pretty difficult and it's clear that the right combination of features is still being sought.  Whether one these platforms will provide it, or an entirely new as yet unknown will, is up in the air.  And that's likely going to create the battlefield conditions from some real innovation and creativity.  As a result, the world's RIA story will likely to be quite interesting for at least the next several years.

What RIA platform are you looking at and why? 

Topic: Browser

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

Talkback

25 comments
Log in or register to join the discussion
  • Good article, one correction

    Dion,

    Great article.

    I'd like to raise one issue. You write: "The first two plug-in-based RIA technologies discussed here have very limited XML support since the Flash-player does not include XML capabilities, while Ajax has excellent XML support. "

    The Flash Player and Flex have excellent XML support and go beyond the browser both in language support and in performance. The Flash Player can load XML over HTTP, and also provides XML socket support. We handle SOAP, can parse RSS, etc etc. ActionScript 3, the core language of the Flash Player VM, is the ECMAStandard that JavaScript is also based on but it is a modern version of the standard that includes E4X, a powerfull way to manipulate XML. From WikiPedia:

    "ECMAScript for XML (E4X) is a programming language extension that adds native XML support to ECMAScript (JavaScript). It does this by providing access to the XML document in a form that mimics XML syntax. The goal is to provide an alternative to DOM interfaces that uses a simpler syntax for accessing XML documents. It also offers a new way of making XML visible. Before the release of E4X XML was always accessed at an object level. E4X changed that. It treats XML as a primitive (equivalent to a character, integer, or boolean). This implies faster access, better support, and acceptance as a building block (data structure) of a program.

    E4X is standardized by Ecma International in ECMA-357 standard. The first edition was published in June 2004, the second edition in December 2005."

    I think you will find the support for XML in the Flash Player meets or exceed that of the browser in almost every regard.

    -David
    Adobe
    dmendels2
    • Adobe: "Flash Player has excellent XML support"

      Making a more visible title for the above very interesting post from Adobe (without stating on the ground, that I don't know).

      The quoted Wikipedia "E4X" article is found at http://en.wikipedia.org/wiki/E4X .

      Also see:

      http://en.wikipedia.org/wiki/Macromedia_Flash
      http://en.wikipedia.org/wiki/Flash_Player

      Paris, Fri 15 Sep 2006 12:10:10 +0200
      Michel Merlin
  • More corrections

    [i]Interestingly, Microsoft is bringing its own Flash competitor to market that will run on other platforms including the Macintosh and mobile devices.[/i]

    Overstating the case. At last word, MS' commitment to non-MS platforms for "WPF/E" is that if someone else implements it, they won't sue them into oblivion. Maybe.

    As regards Flash, please note that it's strictly a 32-bit application and doesn't run on 64-bit systems except as a standalone application in a 32-bit emulation "box."
    Yagotta B. Kidding
    • Video Links

      This video shows WPF/E running on a Mac by the WPF/E team. http://channel9.msdn.com/Showpost.aspx?postid=193367
      The page also contains links to WPF/E running on mobile devices etc...
      joe1972
      • Fine example

        ... of exactly my point: the video doesn't play.

        Thanks very much, but I prefer accessible content. Inaccessible eye candy isn't worth much.

        [i]The page also contains links to WPF/E running on mobile devices etc.[/i]

        Well, since I can't access the site it may well be that there's one there that isn't an MS platform. I'm not holding my breath.
        Yagotta B. Kidding
  • WPF Corrections

    Seems like you have confused WPF and WPF/E. Both will provide the .NET programming model. WPF/E is the light version of WPF. It will be deployable as an object tag within a browser page and the object model of the WPF 'scene' will be fully exposed to the JavaScript on the page. This makes it very AJAX friendly.

    WPF supports the full .NET programming model and only runs on XP and Vista. WPF apps run in a browser as an XBAP - which is effectively a fully blown windows application running inside the browser. The benefits of a rich client, with the deployment model of a web page. The 'WPF/E' links that you posted are in fact links to WPF XBAPS.

    I'm not sure why you think Microsoft's development approach is 'waning' given its popularity in the enterprise.
    joe1972
  • Fine Example: RIA Comic Strips Site (where users draw online)

    Mainada Comics Sketch is a fine example of this new RIA aproach. http://www.mainada.net/comicssketch is a place for artists and users to draw their own comic strips online. This site uses rails/ajax approach and implements Open Laszlo features on top of it.

    It's a great example of the new generation of RIA sites and portals. Here you can browse comic strips with the conviniency of ajax, take advantage of flash to view animations and real time drawing strip playback. And due to Laszlo great features, anyone can draw complete comic strips directly online and publish them on-the-fly.

    This kind of mixture is great, having the right portion of html and ajax, to have a fluid yet google-friendly site and flash/openlaszlo components to give more dynamic and richness to it's main contents.

    Try openlaszlo. It's easy to integrate with ruby or any other related framework (ruby or python). If you have any talent or curiosity, feel free to use the site.
    tiagocardoso
  • AJAX and the lone developer

    AJAX is very simple and the proprietary platforms will have a hard time competing with a zero cost option. I have been working with AJAX for 6 months developing a database driven site (www.EuropeanHospitalRegister.com) and even though I am untrained and self-taught the coding was the least difficulty.
    r.tulloch@...
  • Microsoft

    You can get a feel for XBAP's look and feel in Tim Sneath's XBAP demo apps for WPF/E. Warning: You'll need WinFx installed to see these.

    Am I the only one that see's a problem with this? If we adopt the MS development solution, are we going to have people constantly downloading files in order to view our apps.

    Coz let me tell you something, nothing endears your users more that the helpdesk telling them "you need to download this/that file before you can use it".

    JMHO

    Cheers,

    David
    davidmartinomalley
    • Inconvenience

      [i]Am I the only one that see's a problem with this? If we adopt the MS development solution, are we going to have people constantly downloading files in order to view our apps.[/i]

      That's the advantage of the MS approach: they install it all for you without having to ask.

      [i]Coz let me tell you something, nothing endears your users more that the helpdesk telling them "you need to download this/that file before you can use it".[/i]

      As distinct from any kind of security review.

      Depending on whose model you're looking at, one of the great things about RIAs is that they totally break security policies -- which are, after all, so inconvenient.
      Yagotta B. Kidding
      • re:Inconvenience

        DUDE! Step AWAY from the marketing materials...

        Seriously, c'mon...(I'll refrain from punning your username). If you've EVER worked with file downloads, you'll know how much of a nightmare it is. You'd think MS would have this down to a fine art by now, but it simply doesn't!
        davidmartinomalley
  • Flash Apps

    For me, Flash was the way to go to achieve the "write once, play anywhere" front end to my web applications. It solves so many problems that the drawbacks seemed trivial.

    I like the way it hides my source code and servlet communications. It allows me to know that the way I developed its look and feel is how the user on any setup will see it as well. The ability to embed fonts is a great plus, ensuring there is no problem with the user not having the desired font on their computer. Flash resolves both the asynchonous consumption of web services and the cross-domain issues that are still problematic for straight AJAX developers who try to get their application to work on all browsers.

    As the article indicated, Flash is already installed on 99% of all browsers in the world, which should speak for itself as to which way to go to achieve greatest cross-browser compatibility. And, with the express install feature to automatically upgrade the Flash plug-in version, it's basically seamless.

    Needless to say, I love it. And, best of all, I can be done, once and for all, with the "my browser is better than your browser" pissing contests. I'm done with having to test web apps on multiple browsers and multiple versions of each browser. The nightmare is over.

    Ron
    rdgrimes
    • Die, Schlockwave Trash, die !!!

      > As the article indicated, Flash is already installed on 99%
      > of all browsers in the world, which should speak for itself as to
      > which way to go to achieve greatest cross-browser compatibility.

      Well, it may come installed on the standard distros, but how many of that 99% tear out the plugin/control after a week or so? I find that disabling Schlockwave-Trash "greatly enhances my browsing experience". Look Ma... no more singing/dancing ads on webpages.

      You better hope that an IE version of Flashblock is developed. Flashblock is the only reason I haven't removed Schlockwave-Trash entirely from my linux machine. And oh yeah, if your "Rich Internet Application" demands Flash 8 or 9, forget about the linux audience. Flash is only up to 7 on linux.
      Knorthern Knight
      • They just ignore Linux users (2%), and all works OK

        This is probably why none felt the need to reply you in 2 days. Flash continues to well serve 99% people in the world.

        Paris, Fri 15 Sep 2006 12:22:50 +0200
        Michel Merlin
        • 99% and 2% = 100%?? New Math?

          Anyway, Abode is close to releasing Flash and Shockwave runtimes for Linux so it's about to become moot.

          Still, I don't think I want you doing my taxes with that kind of math wizardry. :-)

          ttfn

          John
          TtfnJohn
  • Free Rapid RIA Development Option

    Currently under everyone's radar is a product called Snapp MX. Snapp MX is a unique virtual RAD tool written in Flash that allows you to create web-based business applications for any platform faster than any other technology on the market today. Snapp MX can be deployed on Windows, Linux, Mac and Unix platforms running a Java, .NET or ColdFusion MX application server. PHP will also be supported in the next couple months.

    With Snapp MX, Flash database applications, can now be developed without Actionscript coding or the need for any other Flash Authoring tools. Using the Snapp MX WYSIWYG editor, user interface screens can be created effortlessly by placing components into its workspace. Connections to database table/view fields are then made by simply setting the attributes of each component. Supported databases currently include MySQL, MS SQL, Oracle, DB2, Sybase, and Firebird. To complete an application Snapp MX also provides a sophisticated Web-Service code generator that automatically creates fully documented JAVA, C#, VB.NET or CFML. The resulting applications are secure, reliable, robust and scalable.

    A demonstration video is displayed on our web site at http://www.snappmx.com/snappmx/?screenId=571 We also have an online demonstration you can try located at the bottom of the page at http://www.snappmx.com/index.cfm?PgId=148
    Snapp-and-its-Done
  • Windows-specfic rich client tools

    Of these, Zeepe is the most mature, accessible and well-proven in the corporate space.

    http://www.zeepe.com/
    jerry.m
    • But not reliable

      [i]Of these, Zeepe is the most mature, accessible and well-proven in the corporate space.[/i]

      Perhaps so, but keep in mind that MS could break it at any time.
      Yagotta B. Kidding
      • Old fashioned view, that one.

        "MS could break it at any time"

        And a meteorite fragment could decapitate you tomorrow. Neither event is particularly likely, but if I had to bet - and knowing what I do about MSFT's view of Zeepe - I'd watch out for that deep space debris.
        jerry.m
  • Message has been deleted.

    opensourcepro