Rich Internet Applications and Web 2.0 with GWT-Ext, GXT and SmartGWT!

Finally I get a minute to write my first blog entry.
Anyways, enough ranting and let's get down to some business. You may not be aware but we are intending to build our front-end using some cutting edge, actually, bleeding edge technology! I won't disclose too many secrets for the time being as we are strictly in stealth / undercover mode in terms of development (this might be because we haven't got anything done... or maybe because what we are doing is going to be unique!).
We initially started building our front end using the GWT-Ext library based on the ExtJS library. Unfortunately Ext decided to change their licensing model to an "Open Source for non-commericals only" model which really annoyed Sanjiv Jivan (creator of the GWT-Ext library) who in turn went off to develop an alternative called SmartGWT which is based on the SmartClient JavaScript library. You can read more about these trials and tribulations by searching Google and reading Sanjiv's blog (http://www.jroller.com/sjivan/). In the mean time, or better, just before changing their licensing model, Ext took on board a small project called GXT. Some may ask: "What is the difference between GWT-Ext and GXT" and the answer is: "There are a few". I'm sure that wasn't at all vague or unfulfilling in terms of answering your questions, so let me expand, in fact, I'll take this opportunity to expand also on SmartGWT:
- GWT-Ext (http://www.gwt-ext.com): This GWT Java library is based on the ExtJS JavaScript library (http://www.extjs.com). The ExtJS JavaScript library is very stylish, functionality rich and most of all performant. The way the GWT-Ext works is by manually placing the ExtJS libraries on your web page and then transforming your Java into JavaScript which in turn makes use of the ExtJS libraries. The GWT-Ext library was quite advanced and included large number of features from ExtJS. The main issue with this library is that it currently isn't being brought forward but merely patched due to Ext's license change and Sanjiv's subsequent switch to SmartGWT.
- SmartGWT (http://www.smartclient.com/smartgwt/): This GWT Java library is based on the SmartClient JavaScript library (http://www.smartclient.com) and is Sanjiv's new brain child. This library works in a similar way to GWT-Ext i.e. you link in the SmartClient libraries and then the auto-generated JavaScript will make the relevant calls. This library has been completed very quickly and the first stable release is ready to be used. Sanjiv once again suceeded to impress and deliver a second library in no time at all. However, we found the SmartClient library lacked a sense of sexyness and style but most of all was not as performant as ExtJS. This can be quite clearly seen when comparing the showcase for ExtJS and the showcase for GXT/GWT-Ext.
- GXT (http://www.extjs.com/products/gxt/): The output of this library is identical to that of GWT-Ext as it is also based on the ExtJS library. The one fundamental and core difference between this library and the GWT-Ext library is that the GWT-Ext library requires you to include the ExtJS JavaScript libraries whereas GXT does not. GXT is built with the original GWT concepts in mind. It will generate, optimise and include into your page only the required JavaScript code in pure GWT style! So if you compiled two identical applications, one in GWT-Ext and one in GXT, the GXT application would be lighter and faster than it's GWT-Ext counter-part. The only thing that sucks about this library is that it still lacks maturity when compared to GWT-Ext (although it's leaping forward and will soon overtake and leave GWT-Ext far behind) and the fact that you need to pay for commercial use.
So, you may be asking yourselves, what have we chosen at SambaStream? The answer is GXT.
We initially developed version 1 of our application in GWT-Ext but once the licensing troubles came to light and the fact that this library was pretty much going to remain stagnant for all eternity, we decided to port everything onto another library. The library of choice was GXT for some very simple reasons: a) it is more performant than SmartClient, b) it looks a lot better (although SmartClient are releasing a new skin in v7.0 which is much nicer, but still not quite there), c) it uses pure GWT principles making applications more efficient/compact and d) we expected porting this across to be a walk in the park and trust me, it wasn't!
Note that the cost factor was not weighted highly as the GXT licenses are affordable and the overall product is good and established.
Now, I had set out to write a technical blog explaining point (d) above with all the differences we encountered so far between GWT-Ext and GXT but I got side tracked with the History of our library choices. Watch this space though because the next blog will be geekness in words and will highlight a number of differences between GWT-Ext and GXT!
Peace out!
Ale
We chose GXT as our strategy and it has finally paid off. The Collaboration spaces we created are working nicely and it is fully developed using GXT and GWT. Feel free to join the free Beta program. All your feedback is welcome.
We are not going to distribute the information you provide when joining the Beta, but SambaJam works on an invite only basis, so we use your details to invite you into SambaJam. You can then use it as much as you like and as often as you like to share documents, organise your calendar, create wiki's, discussion forums and easily invite other people to work with you.
You should see a box with the form on the right hand side which you can fill in.
If the form is not there, click here to see the form:
http://www.sambastream.com/form/sambajam-private-betaLatest Tweets
Blog
- Implementing revolving backups on AWS EC2
- Google phases out support for IE6
- The end of the recession (nearly!)
- The business cost of snow days
- Paper Is The New Plastic
- Good Design
- November Minibar Presentation - Using Open Source to acheive the impossible!
- Some Photos from Recent Exhbition at London Olympia
- Last chance to visit our stand at IMS 2009 tomorrow!
- Press Release: SambaStream to reveal SambaJAM at IMS 2009
Delicious
Digg
StumbleUpon
Propeller
Reddit
Magnoliacom
Newsvine
Furl
Facebook
Google
Yahoo
Google App Engine
Submitted by Paul (not verified) on Sat, 02/05/2009 - 13:07.What are your thoughts in conjunction with Google App Engine? SmartGWT has its problems with file counts, sizes, and it doesn't seem to work well with the standard google 1.6 web app (very slow...probably due to its size).
And do you think that Sanjiv will be able to optimize SmartGWT in the same way that GXT has?
Thanks for your article.
Optimising SmartGWT
Submitted by David Gildeh on Fri, 29/05/2009 - 13:09.Hi Paul,
We haven't used Google App Engine at SambaStream so I don't think we can give much input there (we use Amazon Web Services instead). However with regards to optimisation for SmartGWT I would say that it will be almost impossible for Sanjiv to optimise it the way GXT does as it's essentially the same as GWT-Ext - a JavaScript library with a GWT wrapper of native functions to access it. Unless the included Smart JavaScript library is also written in GWT it will never have the optimisations that GXT benefits from.
Hope this helps,
David
-----------------------------------
David Gildeh - Director SambaStream
Thanks
Submitted by Casper Bang (not verified) on Thu, 16/04/2009 - 07:00.Thanks a lot for this breakdown. I am sure I'm not the only one slightly confused in regard to GXT and GWT-Ext in particular.
Keen on knowing your experience on porting the gwt-ext to gxt
Submitted by Sachin Shekhar (not verified) on Fri, 20/02/2009 - 19:45.Hi,
I too am working on a similar project that was started off on extjs reworked on gwt-ext and now moving into GXT. Can you share more information of your experiences. It will be of great help !!!
Thanks,
Sachin.
Post new comment