InfoQ

News

GWT-Ext 2.0 Released: An Interview with Sanjiv Jivan

Posted by R.J. Lorimer on Feb 22, 2008

Community
Java
Topics
Rich Internet Apps
Tags
GWT-Ext ,
ExtJS ,
GWT
On February 6th GWT-Ext 2.0 was released. GWT-Ext is a widget library for the Google Web Toolkit (GWT) that provides a number of controls such as: trees with drag and drop, page-able/sortable grids, validating forms, and tab panels. The controls available in GWT-Ext come from the ExtJS Javascript widget library. The 2.0 release of GWT-Ext ties together GWT 1.4 and the recently released ExtJS 2.0. (For more information on ExtJS 2.0, see the InfoQ interview with ExtJS creator Jack Slocum).

Here are some of the changes in the 2.0 release of GWT-Ext:
  • Performance improvements
  • Unified component model
  • New layout management APIs
  • Bean-friendly APIs
  • Several new widgets
The complete 2.0 release notes are available on the GWT-Ext website.

InfoQ.com had a chance to chat with Sanjiv Jivan, the creator and primary developer behind GWT-Ext, to get his perspective on the 2.0 release:

Briefly describe in your own words (at a high level) the changes in 2.0.
First, I'd like to congratulate Jack and the Ext team for the fantastic work they've done with Ext 2.0. A lot of the improvements in GWT-Ext 2.0 can be directly attributed to the enhancements and improved architecture of Ext 2.0. 

The biggest architectural improvements in this version are a unified Component model and improved Layout management. All widgets now follow a consistent hierarchy and are subclasses of a base Component class which manages the creation, rendering and destruction lifecycle operations. This version has an architecture that separates the responsibility of Containers, which are only aware of child Components, and the layout of the Components within the Container which is handled by an assigned LayoutManager. Creating complex layouts is now a breeze.

GWT-Ext 2.0 also has a bean friendly API which makes it easier to use and also helps integrate with UI builders like GWT Designer. As for cool new features, there are a lot of them like support for grouping in Grid's, Accordion, ProgressBar, Drag & Drop support between Grid and Tree, and others. One of the other highlights of this release is a new an improved Showcase demo (http://www.gwt-ext.com/demo) that has a lot of illustrative examples along with the associated source to run each sample individually. I am a big believer in learn by example, and I hope that the effort put into building this Showcase demo helps the users.

Another point worth mentioning is the GWT-Ext 2.0 license. From what I have learnt, according to FSF, LGPL in the context of GWT libraries effectively translates to GPL unless clarified by the library author. I have added clarification to the GWT-Ext license page (http://gwt-ext.com/license/) so that most users can use GWT-Ext in commercial projects without violating the license.
Explain the approach taken to improve performance with GWT-Ext in 2.0. What kind of performance differences can developers expect?
There is a significant performance improvement in this version and most of the credit for this goes to the performance improvements in Ext 2.0. You can learn more about the changes they made from their site, but I'll go over some of the significant ones here in the context of GWT-Ext.
  • All components / widgets now support lazy rendering which means that they can be instantiated and managed without any overhead and their rendering is deferred to the point at which they are required to be attached to the DOM. This change alone can result in significant performance improvements, especially for larger applications.
  • All Components follow a standard lifecycle from creation to destruction which is managed by the framework allowing for proper memory management. Forms and Grids (tables) in particular improved a lot and users can expect much better performance with these widgets.
  • With GWT-Ext 2.0, separate "config" classes for each widget are no longer required. Users simply call Javabean setters on the Component itself to set a given property of Component attribute. This not only makes the API a lot cleaner, but also helps reduce the total lines of code.
  • Finally, seeing is believing. Several users have already commented on how their application is a lot more responsive and spiffy after upgrading to GWT-Ext 2.0. You can also get a sense of the improved performance by running the samples in the GWT-Ext 2.0 Showcase demo.
What hurdles do GWT-Ext 0.9.3 adopters face when upgrading to GWT-Ext 2.0?
The layout management API's have changed, but most users have welcomed this change as the new API is intuitive and allows you to put together complex layouts quickly and easily. Separate config classes are no longer required for configuring a Component - users simply need to call the Javabean setters on the Component itself. Making this change during the upgrade is mostly a matter of a few hours of grunt work and not really something that a great deal of though needs to go into. Again, users have welcomed this change. Infact the use of Javabean accessors instead of separate config classes was influenced by the user feedback from GWT-Ext 0.9.

The Java compiler is also your friend, and any incompatibilities that were not handled are reported by the compiler. And users are always welcome to post any upgrade related questions they have on the GWT-Ext forums. While the upgrade process might take varying amounts of time for different users, one user reported that he upgraded his application that had 10K lines of code to GWT-Ext 2.0 under two days. Users can expect the API to be stable going forward.
Where is GWT-Ext development going now that 2.0 is released? What is next?
GWT 1.5 has made changes to improve the performance across the Java-Javascript boundary and this could result in a quite a significant performance improvement in GWT-Ext. I am working on making the required (internal) changes to take advantage of this GWT 1.5 optimization.

I am also planning on adding wiki documentation, FAQ's and tutorials to help users get productive quickly. In addition to the ongoing enhancements, I am planning on focusing on the users to help them take their development efforts to production. In the end, this is the real benchmark of a successful library.
GWT-Ext is LGPL 3.0 licensed.  Community forums, Wiki documentation, download links, and further licensing information are all available at the GWT-Ext homepage.


Good info by Tim Ferguson Posted Feb 25, 2008 8:41 AM
  1. Back to top

    Good info

    Feb 25, 2008 8:41 AM by Tim Ferguson

    I just started looking at gwt a couple of weeks ago, and at first glance it looks very useful, but what really makes it stand apart is the continued "little goodies" I keep finding like this. It seems people are adding to the core all over the place making it very useful. I applaud your efforts and congrats on the new release!

    Tim Ferguson, xaware.org

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.