Tuesday, February 24, 2009

Ext or Flex?

For the past few months I have been evaluating another claimant to the realm of RIA:Ext. Ext looks good. In fact it can be quite formidable if combined with Google Charts and Google Visualization. So, given a choice, what should one pick? A brief comparison before I give my views:

Flex
  • Cost per license: $699

  • Technology: Flash and ActionScript

  • USP:
    • More developer friendly and reliable than JavaScript any day

    • Hides your UI code

    • Produces very maintainable and testable code for complex dashboards

    • Very well tested and reasonably predictable

    • Strong user community and support, thanks to Flash and ActionScript legacy

    • From Flex 3, communication between JavaScript and Flex has become easier.BlazeDS is now available as open-source and facilitates integration with various backends

  • Weaknesses:
    • Cost

    • Learning curve

    • Flex can prove to be a hammer to kill a fly for most web applications.

Ext
  • Cost per license: $289

  • Technology: javaScript

  • USP:
    • If you don't have a reasonably complex dashboard that needs significant data visualization,it is a good alternative

    • Hides your UI code

    • Lesser cost

    • Less complicated than Flex

  • Weaknesses:
    • Can be difficult to debug

    • JavaScript

    • Not that strong user community yet

I feel, Ext is impressive but not as good enough as Flex due to the inherent evil nature of JavaScript :). I could not find too much help on the web either to address the countless bugs I face when I use Ext. The fact that I expose some part of my business logic when I use a JS based RIA still holds true for Ext. In its attempt to prevent its precious JS code from being nicked away, Ext has taken great pains to obfuscate its files. Even with it debug javascripts, it can get very frustrating and difficult to debug any issues. This brings in my concern for a maintainable and testable code if my UI is reasonably complex.

Nevertheless, it builds significantly on top of other available RIA options and tries to integrate with JQuery, Protoype, YUI and even AIR. It is definitely an upcoming force that will mature in 2-3 years. It also holds the cost advantage against Flex. All-in-all one may think of using it if one's UI is not as complicated.

But if I have a UI to build that has to be complex, extremely reliable, maintainable and testable, my vote goes to Flex any day.