Build Rich Internet Applications that Run Outside the Browser

Adobe AIR on Ulitzer

Subscribe to Adobe AIR on Ulitzer: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Adobe AIR on Ulitzer: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Adobe AIR Authors: Yeshim Deniz, Yakov Fain, David Weinberger, Maureen O'Gara, Tad Anderson

Related Topics: ColdFusion on Ulitzer, Adobe AIR on Ulitzer

CFDJ: Article

Three RIA Platforms Compared: Adobe Flex, Google Web Toolkit, and OpenLaszlo

Strengths and weaknesses evaluated in three Report Cards

GWT Report Card:

  • Language Syntax: B-
  • Development Process:B+
  • Widgets/Features/Power of Toolkit: B
  • Ease of Deployment: C
  • Server-Side Data Integration: A
  • Client-Side Performance: A-
  • Platform Flexibility: B+

Notes:

GWT has a lot of very cool, fascinating features that I have only begun to scratch the surface of. Generally speaking, if you like Java and your server back end is going to be Java, then GWT is almost certainly the way to go for you. GWT apps are written in Java, which allows you to use existing knowledge in that area to get started fast and get others up to speed quickly. You can develop GWT applications with your favorite Java IDE and debug them just as you would a regular Java app.

GWT apps integrate very well with Java server back ends by providing the best remote object style integration of any of the frameworks. GWT is also technically agnostic when it comes to retrieving server-side data, so support for other web service types is available as well. The JavaScript created by the GWT compiler performs well (see Gmail), and the finished product ends up looking pretty nice, if not on the same level as a Flex application. The generated JavaScript also protects the developer from browser quirks (for the most part), and functions very well cross-browser, giving GWT apps solid flexibility.

The big knock on GWT for me is actually what is touted as its greatest strength - the fact that you write UI logic in Java.  I am a huge fan of Java on the server side, but laying out components for display in procedural code gets tiresome very quickly (see this post for more on that topic).  But for registered Javaphiles that want to take advantage of their existing skills and IDEs, you can’t beat GWT.

OpenLaszlo Report Card:

  • Language Syntax: B-
  • Development Process: B-
  • Widgets/Features/Power of Toolkit: B+
  • Ease of Deployment: B-
  • Server-Side Data Integration: B
  • Client-Side Performance: C
  • Platform Flexibility: A+

Notes:Open Laszlo, without any heavy hitters advocating and supporting its development, is less polished than the other two frameworks on this list, but provides some features and characteristics the other two lack. IDE support is non-existent, but luckily Laszlo features an interactive debugger that lets you inspect your application’s state in the browser window and execute arbitrary methods, which is handy. Like Flex, it allows very fine-grained control over component look and feel, but lacks a CSS-type means of skinning all components in an application. But Laszlo’s main differentiator is that it is runtime agnostic, and is meant to (eventually) be compiled for all kinds of platforms, such as Flash and DHTML (currently supported), and in the future Java ME, iPhone, Silverlight, you name it. If you’re looking to run the same code on a lot of different devices and platforms, Laszlo is worth a look.

The main deficiencies of Laszlo are apparent in its lack of polish when compared to the other platforms. The out of the box widgets look shabbier and the animations are not as smooth as a Flex equivalent. In my personal experience, some of the components don’t work exactly as advertised, which requires a lot of message board hunting at times when problems arise. And client-side performance is an issue, as the Flash binary that gets generated by Laszlo does not perform as well as a Flex 2 equivalent, and the DHTML versions are a little pokey at times as well. For those that need the platform flexibility Laszlo provides, it really is the ticket. But in other areas, Laszlo does not have much to recommend its self over the other frameworks on this list.

Conclusion

Hopefully, this will help you start to evaluate for yourself the strengths and weaknesses of the various RIA platforms that are out there, particularly these three. All are generally serviceable for most RIA applications, but sometimes optimal choices can and should be made given the requirements of a project. If you’re looking for maximum control over presentation and the best possible appearance for the finished product, I would say Flex is probably the way to go. If you’re a Java developer using Java on the server side, or you just can’t stand the thought of having your app run in the Flash player and would prefer JavaScript, GWT is probably going to work out very well for you. Open Laszlo is going to offer a great deal of platform versatility, but at the expense of some polish and features available in the other two frameworks.

Godspeed on your next RIA development project…

More Stories By Kevin Whinnery

Kevin Whinnery is a core contributor and Technical Evangelist for Appcelerator, an open source Rich Internet Application framework. Prior to joining Appcelerator, Kevin has been a web developer on both the client and server side for ERP vendor Lawson Software and technical consultancy Perficient, Inc. Kevin is also the author of the upcoming book "Appcelerator In Action" from Manning Publications.

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
NN 05/12/08 04:50:27 AM EDT

Yeah you are right GWT is poor man's Flex.

After using GWT on two projects I am done with creating UI using Java.

Best combo is Flex + ROR or Flex + Java (server side rules no question about that)

Otherwise Appcelerator sounds great for page level RIA.

Flex Wins 02/04/08 11:28:48 AM EST

Overall Flex has the upper hand - not only has Flex Builder's price dropped (250, and don't forget that you get what you pay for with the free alternatives, ya spoiled devs...), but it's not fair to say Flex is "less flexible" on platform. You're saying it's not flexible because it only runs on the Flash 9 "platform", yet when comparing GWT's platform compatibility, you switch the definition of "platform" to the web browser (I guess). Problem is, Flash/Flex runs on that same platform, and arguably runs BETTER because it doesn't care about the browser or the OS, unlike JavaScript/Ajax. Flex is running in the "Flash VM" so it obtains platform independence quite well with that in mind. GWT... might be "pretty good", but it's basically the poor man's Flex.