@David
Good question. I actually get this question all the time.
Ext4j is for people that want to (or are already using) use Ext JS in their project.
Below are a coupe of reasons why I decided to write a wrapper instead of using GXT.
Which by the way is a great tool but dont quit meet the requirements of my customers.
1) Licensing.
Most of my customers already have an Ext JS license and are not willing to pay for another product.
Since Ext4j wil be Apache nothing will change for existing Ext JS c users.
2) Develeopement Pace
Ext JS is always a step ahead of GXT when it comes to features, components, themes etc..
3) Community.
The Ext JS community seems a bit more active than the GXT one. There for example way more extensions for Ext JS than GXT. One could argue that it s easy to create those in GXT but no one does.
4) Look and feel
This is a bit subjective but I found that Ext looks a bit better than GXT
5) Code Reuse.
People I work for most of the time also want a mobile client next to their desktop client. Ext4j will play more nicely with some mobile wrappers I wrote. I could nt get GXT to work with my existing tools.
So if you want to build on Top of Ext JS and add structure programming and the powerful Java ecosystem Ext4j could help.
Otherwise simply go with GXT.