RIA Frameworks

NOTE: I am not an engineer.  I am very good with HTML/CSS and I love jQuery.  The following is from that point of view.

I was wondering what the state of RIA Frameworks were these days.  Have more competitors popped up?  How easy are they?  As a non-engineer, I wondered if any were easy for me to use.  As a Designer, I wondered if any have some kickass interaction design baked in?  What frameworks are out there now?

  1. ExtJS.  We use this at Marketo.  Built pretty much for engineers, not css web developers. The sub-classing system makes code reuse very easy.  The samples are fantastic.  The API browser is fun to use and excellently designed. ExtJS really understands the subtleties of interaction design.  The CSS is very easy to manipulate so you can have your own look and feel.  As a designer, building an RIA with ExtJS has been very fun.  Marketo is a much better application thanks to it.
  2. jQuery UI.  This is pretty new and built on top of the best general purpose JS Framework around, jQuery.  This is absolutely usable by regular web/html/css developers.  It has a ways to go in terms of product maturity (graphic design, interaction design, features) but it is off to a great start.  Besides, it is open source and free and incredibly easy to use.
  3. Flex.  I have a friend who uses Flex.  He has gotten quite good at it.  I haven’t tried Flex builder in a long time.  It seems to be targeted at RIA applications and not casual use.  The pricing can be alot depending on if you need server-side components that come with it.  I wish they had a FLex-Lite which was targeted at CSS people like me.  I would love to write something that looks like XHTML/CSS and have it render in Flex.  I hate cross-browser testing.
  4. Silverlight.  I have no idea how this works.  Message to Microsoft:  If you could make Silverlight easy enough for me to understand you would have a killer application.  If not, it will get lost in the shuffle.  Sorry.  Message #2:  Have a samples page with source.  Give people an example of how it works.  Wierd, I can’t seem to make it work in Google Chrome.
  5. OpenLazlo.  This works alot like Flex, but is open source.  The syntax reminds me alot of ZK Direct RIA (Below), except the output is Flash versus HTML.  I wonder what the current state of SEO is for Flash pages.
  6. ZK Direct RIA.  I just saw this today.  The samples page was nice.  Shows real examples with the source. It says that it is open source, but its unclear if there is any pricing.  The source looked like XML, so it wasn’t that hard, but I couldn’t see easy ways to customize.
  7. Thinwire.  It came up first in google.  Open Source and free.  Terrible (non-existant?) website, so I really can’t tell how it is used.  Clearly targeted at programmers.  Hmm, are there really alot of ecclipse engineers making RIA apps?  Why haven’t I seen the actual products?
  8. Active Widgets.  This has been around for a long time.  The syntax looks really hard to me.  A little pricey. Anyone using this?
  9. Backbase.  Nice website.  It took me a little while to find the hello world.  Holy Crap!  That is intensely difficult.  Next!
  10. Dojo Toolkit.  I am sure there are engineers who love Dojo, but the complexity is so hard for me to understand.  It’s not as bad as Backbase, but it’s close.  All of these are hard.  It’s a pattern.
  11. Yahoo User Interface Library.  We used to use this in the early early early days of Marketo. Has Yahoo been standardizing on this library for all internal sites?  YUI is easily recognized by its insane use of namespacing.  Some people love this.  The interaction design on YUI is not bad.  They liked big target buttons, which I enjoy too.
  12. SmartClient.  UPDATE:  I wrote up an individual review.
  13. Qooxdoo.  Such a kooky name.  Clearly targeted towards engineers.  The Hello World made my head spin.  I tried the demo browser.  Very slow.  And the interaction/graphic design is horrible.  Look at the tree.  Come on, put a little effort in.
  14. WaveMaker.  I think this used to be called TurboWidgets.  I can’t seem to find a Hello World example.
There are more, but they all start to look the same.  Only jQuery UI allows me to get started and use the framework without having a Computer Science degree.  Doesn’t someone seem the commerical opportunity here?
Here is some advice for Ajax Frameworks to get people interested.
  1. Have a Hello World example ON THE HOMEPAGE!  Why do I have to search for this?  It’s the clearest, most simple advice I can give.  Show what it is like to use the framework quickly.  Don’t make me hunt around for it and then get confused when I just want a simple idea of what it is like to use your framework.
  2. Have an examples link on the homepage.  Not complicated examples.  Simple examples with source code.  If I am shopping around for a framework, keep it simple and informative.  Don’t try to WOW me with complexity.  Wow me with simplicity.
  3. Have an API browser.  Why isn’t this obvious?  This is NOT a PDF file.  Use your own framework to make an API browser.  Eat your own dogfood.
  4. Make your website in your own framework.  Eat your own dogfood!
  5. Differentiate.  They all look the same, so you need to make sure you stand out somehow.
Ill keep an eye out, but right now, I think ExtJS is the best for engineers and commercial complicated apps and jQuery UI is the best for everyone else and medium-complexity apps.

57 thoughts on “RIA Frameworks”

  1. Pretty much all Aptana customers write rich web apps and since Aptana is based on Eclipse… In fact we have a very nice RIA, new for v1.2, that runs inside Studio providing deployment and management of apps to our Cloud service.

  2. This is the best list I have found! Thank you for sharing. Is Ext JS your favorite? I just started using them and think its awesome.

  3. @Bill: Just because you use Aptana doesn’t mean the application is rich. I don’t see anywhere on Aptana’s site something like, “Here is what the dynamic tree/grid/modal/menu/etc looks like”.

    @Rachel: That is exactly what I do NOT want. I don’t want a WYSIWYG tool. I want to write TEXT in a text editor. I just want the output to be flash. All of those tools are WYSIWYG. I hated that when I tried Flash. Plus, I want the page to be SEO compliant.

    @George: I have been very pleased with ExtJS for a commercial app situation. However, if I was just whipping up a simple website with cool UI, I would go with jQuery UI.

  4. Glen, that’s because we support all of them and don’t push one JS library over the others. However we do have a full time person in Engineering for a month or so who is charged with building up our relations with the library developers and developing content for us showing how Studio supports Ajax work. She’s also driving our participation in the OpenAjax alliance, especially around the metadata and interop definition projects.

  5. Hey Glen, I would dare to say that you are comparing apples with bananas, making a nice fruit salad.
    Without a definition what RIA Framework means for you I cannot digest this.
    I can understand your 5 minute look impressions, however I think that a real review (thats how TSS advertised this blog post) should go deeper.
    Your 5 point requirements list is a good idea, but somehow you didn’t like qooxdoo, despit it looking different, didnt you?

  6. Have to agree with Fabian here – you report of SmartClient that the “syntax looks hard”. But ExtJS, your professed fav, is a near-clone of our syntax (increasingly so as of Ext 2.0).

    Did you get your reviews mixed up?

    We have a lot of former Ext users coming to SmartClient because of the ExtJS license switcheroo, and they say it’s easier..

    Try to imagine a roundup of marketing tools with “Marketo: Weird UI. Hard to use.” Say something well-founded or don’t mention us, thanks.

  7. Yes, of course my analysis could have been deeper. But I ask you. Do your customers do deep analysis? I couldn’t find a deep analysis on the web. One point about UX is that first impressions matter. My first impressions shouldn’t make anyone defensive. They should make you concerned. It’s an opportunity.

    Regarding Qooxdoo. Look at this page. http://demo.qooxdoo.org/current/demobrowser/

    Tell me truthfully that the interaction design is good on this page. This is what I get paid to do and I say it’s not good IxD.

    About complexity, someone ELSE has to analyze that, I am not qualified to say how easy a framework is. I can only say, “Is it easy enough for me to use it” and most of the time the answer is no. I think that is another opportunity.

  8. Sorry, one last thing. I almost didn’t mention SmartClient. I was starting to get tired of looking. However, it is a full-fledged RIA framework. I didn’t give it much of a look because I was getting RIA weary. I will take a closer look.

  9. RE: ’5. Differentiate’

    Backbase sells primarily to Fortune 500 clients and is optimized for the most complex Ajax projects: a clear differentiation. Although it may not be the easiest to use, it is the most scalable and comprehensive Ajax framework available.

  10. Additionally, the A in RIA is Application. Some of the things mentioned are really low level frameworks and are not RIAs – just the RI. The can be used in RIAs. They can be used for RIW (W = Website) or to roll your own RIA without a RIA framework.

  11. I wonder why GWT is not on the list. GWT is unique in the sense that you can use Java to do the JavaScript stuff. That looks like a productivity plus – more developers seem to know Java than JavaScript.

  12. hi,

    You did misspell it, its OpenLaszlo not OpenLazlo, but the link to the platform is correct.
    The status of SEO in FLash is… well better render the OpenLaszlo Sources in DHTML then in Flash, this is the best way of bypassing that problem.

  13. Just one appointment. Flex is completely opensource, like laszlo, only flex builder isn’t. In the server side of flex you can choose BlazeDS that is opensource or you can adquire a license for Adobe Livecycle services.

  14. For Java developers, you have GWT which nicely abstracts you from javascript code. There is also Ext GWT which has the look and feels from ExtJS and provides a Swing-like API.

  15. ZK is the best tool for Java developers and web-designers at the same time because of its Direct RIA architecture.

    Moreover, ZK is the leading open source Ajax + Mobile framework. ZK developer community is extremely active with 20+ translations, 100+ articles/blogs, and 100,000+ lines of codes, 700,000+ downloads, from 190+ countries.

    See the Versatile widgets!

    AUTHOR NOTE:
    Links removed. Commadot.com is not for advertising please.

  16. GWT could in theory be added. Basically, I was trying to compile a list for product managers to say, “If you want to build an RIA, then these products would give you the components pre-built. Like Swing for the Web.

    I didn’t want to compile a list of products that you have to then roll your own components.
    JSF Matrix is cool, I hadn’t seen that so far. However, I am not sure it is helpful to make a decision. I would love other people’s opinions on that.

    Yes, my list has subjective notes on them. But it’s my blog and I am allowed by the blog police to do that. (I hope)

  17. Speaking of Swing for the web, take a look at our product AjaxSwing. It literally takes Java Swing applications and renders them as AJAX websites. It is the best choice for companies that have existing Swing applications and for developers who are familiar with Swing. It is also the only framework that truly gives you both Java native GUI and AJAX version of the front end without XML programming.

  18. @nico : Thanks for mentioning Ext-GWT. *Very* impressive from the first looks (I have not tried coding them yet). If this is what I can do with a GWT add-on, I am really glad I found it in time.

  19. If you’re interested in something like Ext-GWT, you should be aware of SmartGWT, also a GWT wrapper, but with a much broader and deeper underlying JavaScript library (SmartClient), and with an LGPL rather than GPL license, hence free for commercial use whereas GPL is typically not acceptable.

    Glen, it would be great if you could update the SmartClient review, at least to say that you’re taking another look. It seems like hundreds of people are still coming by and getting an incorrect idea of your impression of SmartClient (judging from our conversation at TAE yesterday).

  20. Hi Glen, it’s a shame that you find silverlight hard to understand. Basically you have xaml files (kind of xml) for the presentation which are editable with a tool called blend (it allows you to design and animate your page, ver 2.5) after for event (when you clicked on a button for example) you have to handle it with C# (vb.net , ruby and python is ok too if I’m not wrong) you need visual studio 2k8 and silverlight tools. As far as I know Chrome doesn’t support Silverlight 2 plugin maybe the reason why you can’t try the sample. A lot of people are now developing with this technology and in my opinion there will be more and more people switching between flash/flex to SL. They have just released the sl2 rc 0 , it s a young techno but already powerful.

  21. Just another GWT voice. If you’re looking for ‘Swing on the Web’ then I think GWT is an obvious choice. Coding GWT feels almost identical to coding Swing.

  22. You might also be interested to check dhtmlx library (dhtmlx.com). They offer a set of ui widgets with really nice list of features and good performance. It’s GPL, but the PRO version is commercial.

  23. Regarding Qooxdoo. Look at this page. http://demo.qooxdoo.org/current/demobrowser/

    Tell me truthfully that the interaction design is good on this page. This is what I get paid to do and I say it’s not good IxD.

    Well, I had a look. Can’t say there’s anything I as a programmer don’t like. For one, the fact that you can do RIAs without having to worry about CSS oddness in different browsers. But then again, if you’re CSS-savvy, you probably like playing with browser-dependant styles.

    I honestly don’t get your argument. The ppl who did the demo browser are engineers, not interaction designers. It’s up to you to take what they did and build nice interfaces out of it.

    1. ExtJS has a great interaction design out of the box, so you dont need to build anything. Why not just write in binary? Because the less you need to program the better off your company will be.

  24. Check the opensource: http://www.ajax.org it has very nice demos and examples. Its still a bit hard to start with version 2.1 but upcoming 3.0 should solve all those issues. It will push ease of use and databinding to a whole new level surpassing XAML and MXML. 3.0 will be focussed on collaborative applications and an IDE is in development.

  25. I don’t know what interaction.UI design you do, but I surely wouldn’t trust your professional skills if you say qooxdoo’s demo browser is bad. It’s targeted at programmers, not product managers, and it’s marvelous for that purpose. I used it, so this is not an opinion formed in 5 minutes of browsing. If you want something for managers, look at http://demo.qooxdoo.org/current/showcase/.

    Anyway, I’m inclined to disregard your review alltogether, since, as someone already put it, it’s … a nice fruit salad, resulting from putting apples and bananas in the same bowl.

  26. Read The Inmates are Running the Asylum. Engineers are usually not good interaction designers. Also, this was written over a year ago. The qooxdoo demo and showcase has changed dramatically in that year. I appreciate your insight though. Have a great day.

  27. You are correct – Engineers are usually not good interaction designers. But, Good Interaction Designers are UI Engineers!!! Apple & Microsoft has proved this.

    I wonder you didnot mention about Vaadin (http://vaadin.com)

  28. Hi,
    Looking for an IDE for creating RIA with the following features:
    * wyswyg editor
    * the app is browser and opsys independent as much as possible
    * creating apps for enterprise environment
    * sandbox – for local storage: saving bulk data -> less datatransfer, immediate data
    * charts: clickable objects encapsulated for drilling
    * the app created can be secured
    * advantage: “portal” layout, meaning I can drag&drop webboxes
    * databinding via webservices (pref JSON) or “gets”
    * styling
    Now I see ZK and Qooxdoo to be good for me for the first sight.
    Could you please recomend me something?
    Thank you in advance!
    L.

  29. Thanks Glen, even today your review is one of the best exists.
    I completely agree with your attitude to this, especially regarding the first impression, hello world and eat your own …
    When starting a project I won’t spend half of it researching the web, if an RIA provider can’t impress me quickly with how easy to use their framework is an the way it looks in the end then it only means it won’t be easy to use and it’ll look like a command line app in he end.
    Thanks again

  30. Interesting post, that survives, thanks Glen. Agree with the Hello World and simplicity outlook. In fact, here’s my Hello World Fun post http://goowealth.wordpress.com/2010/12/21/hello-world-fun/
    (may update). Writing this post makes me appreciate simplicity even more so.
    Now, if we put these important elements into the equation, what do we get?
    1. Open source/GPL/no-feature-limitations
    2. So simple, possible just click and drag on an Obvious-Hello-World-Example
    4. Rich features and embracing other techno.
    3. Strong Community Forum Support/No-or-few-unresponsive-nonreply

    (I’m new and not expert in RIA)
    http://en.wikipedia.org/wiki/List_of_rich_Internet_application_frameworks didn’t have Jquery or Sencha? Nor have I exhausted the list.

    I’like to think forum support and prompt replies is as effective as googling web job applicants’ online apps rather than just read their resumes. From what I saw based on this alone, Zkoss wins.

    Maybe my vote on RIA list goes to zkoss for now. Forum is active and java script supports ruby, features rich, possible GUI programming to some extend.

    Welcome new suggestions too…

  31. For a web application framework/toolkit, you may also look at dhtmlx: http://dhtmlx.com
    Each UI control (like grid or treeview) can be used as a separate interface element or within a common application interface.

Leave a Reply