AJAXWorld News Desk
Three RIA Platforms Compared: Adobe Flex, Google Web Toolkit, and OpenLaszlo
Strengths and weaknesses evaluated in three Report Cards
Feb. 5, 2008 08:30 AM
Kevin Whinnery's 2.0 A Go-Go Blog
The defining characteristic of any RIA is that it has a stateful client that is (or should be) platform and browser independent. With the advent of new RIA platforms like Flex, GWT, and OpenLaszlo, developers now have all the reach of a traditional thin-client web application with many of the useful characteristics of thick-client applications, such as the ability to maintain state on the client. Is there a clear winner of the three, one toolkit that developers should focus on at the expense of the others? I don’t really think so. They each have their strengths and weaknesses.
Here I thought I would dedicate a little web space to throwing in my two cents about what I think those strengths and weaknesses are. Is there a clear winner of the three, one toolkit that developers should focus on at the expense of the others? I don’t really think so. Much of that decision is based on the requirements for your project. But Flex, GWT, and LZX are certainly not created equal for all tasks, and I hope to give you a sense of what tool is going to be the best choice for your project.
In grade school teacher style, I have scored these three frameworks based on my own appraisal of their utility in the area specified:
Flex Report Card:
- Language Syntax: B
- Development Process: C+ (B+ with purchase of the 400 dollar Flex Builder Eclipse plugin)
- Widgets/Features/Power of Toolkit: A
- Ease of Deployment: B
- Server-Side Data Integration: B+
- Client-Side Performance: A-
- Platform Flexibility: B-
Notes:
Adobe Flex, in my opinion, is the most powerful of the three frameworks in terms of what you can accomplish visually with the least amount of work. Native drag and drop support for many widgets, CSS-type styling for components, and fine-tuned control over component behaviors give the developer the most tools to do wild and crazy stuff with their user interface.
The language syntax is based on XML and ActionScript, which coupled together provide an expressive means of composing a UI. MXML tags work well to nest components and easily create layouts that are human readable. In terms of client-side performance, Adobe Flex 2 stacks up pretty well, as version 9 of the Flash Player (required for Flex 2) offers some serious performance upgrades over previous versions. Flex is agnostic in where it retrieves server-side data and provides solid functionality for SOAP web services, REST web services, and Java/ColdFusion remote object functionality (though I’ve never personally used the remote object stuff).
In the negative column, Flex is (ironically) the least flexible of the frameworks in terms of platform, as it can only run in version 9 of the Flash Player (and it can be compiled for Adobe AIR, but that is a topic outside of this conversation). The good news is that according to Adobe, over 90% of the web community in most developed markets already have Flash Player 9 installed, and that number increases all the time. And unless you purchase the spendy Flex Builder Eclipse plugin, the Flex development cycle can be a chore, as Flex files must be compiled via a script. Also, the command line debugger is not very user friendly when compared to most modern IDE debuggers.
See next page for GWT Report Card and OpenLaszlo Report Card...
About Kevin WhinneryKevin Whinnery, currently employed as a Systems Engineer at Lawson Software, is a Twin Cities based web developer. His official blog is at http://www.lightrailsystemsllc.com.