GWT, Flex, JavaFX, Silverlight or JQuery? The jury is still out

Like everyone else, we are interested in new frameworks to design richer web interfaces, usually known as RIA – Rich Internet Applications.

Most people will agree that there are three big contenders, but they all have limitations:

Too many choices

Too many choices, by Orin Optiglot

  • GWT, though my favorite as a long time Java developer, is still limited in the quality of interfaces it produces; it requires the use of third-party libraries, but there are not that many of them, and some have been tainted by changes in their licenses. Also, Google does not seem to put that much energy into it; in many ways, it still seems to be a one-man operation. However, my guess is that it is adequate to design classic interfaces, similar to the one designed in AWT/Swing/SWT.
  • Flex might the strongest contender to many, as they have all Adobe’s might behind them (unlike GWT). But it is clearly a descendant of Flash and as such might appeal most directly to web developers (as opposed to classic Java developers). However, they did make a lot of efforts to get closer to the Java crowd. My feeling on this one is that people like me might be good at working out the server part, but should still leave the UI part to web developers.
  • JavaFX might seem like an obvious choice for a Java developer, but it is still too young (1.0 to be released this fall) and does not have that much mindshare yet; it also requires a plugin to be installed. That said, at least one of my colleagues is very enthusiastic about it.

This list wouldn’t in fact be complete if I didn’t also mention:

  • SilverLight, which is really the answer from Microsoft to Flex. I don’t have a strong opinion on it, apart from the fact that it also requires a plugin on the browser, which is a serious disadvantage (just like with JavaFX). Many people upgrade to Flex while upgrading their Flash plugin, which they have to do anyway, now that there are so many Flash animations. Silverlight has no such immediate upgrade path.

All of those frameworks are good at avoiding the complexity of writing JavaScript code, either by writing it for you (GWT) or by using a specific engine on the browser (Flex, Java FX, SilverLight), which has the drawback of requiring the installation of a plugin (which might not even exist for some systems).

A relative of mine who is working at a small software house however points me to

  • JQuery. The assumption here is that it is vain to work around JavaScript; it aims at making it easier to code JS. So you still have a good chance to stumble on the many difficulties of writing JS. On the other hand, you do get to have a much better control of the final code. At any rate, JQuery does seem to be getting some buzz these days, including from my colleagues.

So, which framework should we/you choose? I think neither has a clear lead so far. So you might want to apply a set-based strategy, as recommended in Lean Software Development. Meaning that, when in doubt, implement all plausible strategies, and decide later which one to standardize on, once the dust settles. In fact, it is very possible that several of them will co-exist, or even integrate with each others.

If you do want to limit the set of strategies, my personal choice would be those three:

  • GWT
  • Flex
  • JQuery

About Eric Lefevre-Ardant

Independent technical consultant.
This entry was posted in gwt, java, valtech. Bookmark the permalink.

9 Responses to GWT, Flex, JavaFX, Silverlight or JQuery? The jury is still out

  1. Another noteworthy entry may be Cappucino (http://cappucino.org).
    And Backbase which provided us with good productivity during a project in 2006. It has somewhat of a learning curve but once you’ve got the hang of it it’s pretty nice.

    Here’s my rating:
    * GWT does not seem much exposure, but I like what I see in Drools Guvnor for example
    * Flex still feels fat and is having “flash” issues. When you include the Flash runtime, I would also include XUL (for example based on Firefox). Obviously this is a poor choice for public websites but for
    * JavaFX – I looked at it and tooling has some way to go.

  2. Markus Singer says:

    While I do like Cappuccino (please note the double c, so it’s http://cappuccino.org) for it feels like Cocoa, but I think they shot over the top. Bringing it’s own language (Objective-J) and this capable but huge framework doesn’t come without a cost.

    Regarding Javascript we need to realize the fact, that it’s here to stay and no toy language (any more). Knowing Javascript will be a must for future web-oriented applications.
    So, I suggest to embrace Javascript and go for frameworks like sproutcore (http://sproutcore.org) or JavascriptMVC (http://javascriptmvc.com/). It’s time to leverage what the current browser generation offers.

    Cheers,
    Markus

  3. I don”t quite agggree (with threee gees) with the argument that “your own language” is a problem.
    Take Backbase, they created an XML-based interpreted script language. Interpreted in the browser in JavaScript. And although this sounds silly it is not as what you do in these scripts is simply controlling the UI based on UI events. And for doing that this approach works just fine. Don’t try to do anything heavyweight though.

    >Knowing Javascript will be a must for future web-oriented applications.
    Agreed. And it can even be fun because of it’s functional aspects ;-)

  4. Well, I didn’t say, that it is a problem. But its usage is not for free. ;-)
    An appropriate abstraction layer makes sense and is necessary to handle the low-level plumbing in the browser.

    Good Night,
    Markus

  5. Another one for the list might be the UltraLightClient from Canoo. UltraLightClient (ULC) is a development library for creating web applications with a richer interface.

  6. Pingback: RIA Frameworks: the never-ending story (JavaCampParis4) « Eric Lefevre-Ardant on Java & Agile

  7. Rupert says:

    I belive GWT and Flex offers the benefit of a more component oriented development and the reusability of them due to they are a big framework. Flex also can relay on many other frameworks to implement patterns such as MVP variants and support for IOC. Flex seems to be easier to extend and customize if you know ActionScript. Also Flex offers the possibility to work with serialization technologies such as AMF3, really cool, and many other ways to integrate with backend services such as Blaze. JQuery offers the benefit of being able to be used on small apps (or implemented on alredy existing projects) where the use of Flex or GWT would be excesive or would suppouse rewriting the entire presentation layer also is able to achieve nice L&F and tremendously reduce javascript code typing.
    Each one is quite good on what it does and I wouldn’t marriage with any but would examine each project requirements and decide which would fit my needs better.

  8. Pingback: The IT Blog » Why Google Web Toolkit (GWT)?

  9. moosaka says:

    I’ve worked for two years with Canoos’ UltraLightClient. I think it’s way better than any of the mentioned techs but wherever I mention it nobody seems to have heard of it. Mostly you just write an app like you would write a desktop app with Swing and ULC takes care of the rest – mostly. It’s really very good, check it out. I should probably mention I am just a satisfied customer – no affiliation with Canoo on my side. Happy coding, all!

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>