Tuesday, April 22, 2008

GWT-Ext vs. Ext-GWT

If you haven't seen Ext-JS, you should. It is a wicked cool API for JavaScript containing tons of widgets and tools. What immediately attracted were the rich set of attractive widgets that comes with Ext-JS out of the box.

For us GWT developers there is a project that wraps the Ext-JS library for GWT, namely GWT-EXT (GWT before Ext). The initial release was in July of 2007, and since then it encapsulates most of the functionality of Ext-JS.

Now just yesterday something happened that could undermine this project. The same team that developed Ext-JS has now released an initial beta of Ext-GWT (Ext before GWT).

This has got to be a blow to Sanjiv Jivan of the GWT-Ext project, who has undoubtedly given up a lot of his free time for the development of the library. But perhaps it does not have to mean an end for GWT-Ext. The first thing it has going for it is that there are already a lot of developers using it, who may not want to switch to an entirely different set of APIs just because it is the "official" version. Also, on taking a quick glance at Ext-GWT, I already see at least one feature that is missing, and that I can not do without.

For me, I am not sure where I stand. I think that for now I am going to stick with Sanjiv's GWT-Ext, at least until Ext-GWT comes out of beta. And then I will decide based on the stability of each, and which provides the features I need.

What do you think? Is an "official" Ext-GWT really what we needed?

25 comments:

Federico said...

Reade here:
http://abotar.com/blog/2008/04/21/time-to-fork-ext-js-and-mygwt/

"Bad news but not really unexpected for me, Ext JS and MyGWT (a.k.a. Ext GWT) have just changed from LGPL to GPL today. In a nutshell, Ext JS and MyGWT are now useless for free commercial use. If you have already based your projects on these libraries, my general recommendation is to continue using Ext JS 2.0.2 until a fork is available or you can transition off Ext JS."

Anonymous said...

As I understand it, Ext-GWT is a rename of MyGWT. MyGWT has always been about as mature as GWT-Ext; it spent a little more time on integrating things properly, but didn't have as many of the full ExtJS set available to it.

I wasn't aware that MyGWT/ExtGwt had the 'official' support of ExtJS behind it. If this is true, with all due respect to sanjeev, I think he needs to throw in the towel or integrate his work.

Could be I misunderstand this whole thing though.

Stefan Schulz said...

The main difference between ExtGwt and GwtExt is that ExtGwt is no wrapper for ExtJS but pure Java, which has major benefits for Java-based developer teams; the big one is no hassle with JavaScript. I tried solving some "make a Store use my RPC service" issue in GwtExt, which really is some Javascript-Java-back-and-forth-shifting. I know, Sanjiv has an RPC solution, which is commercial (!).
The bad news really is the licensing change. If I understand correctly, GwtExt either sticks with ExtJS 2.0.2 (or forks it) or will require to become GPL for OpenSource only and something else for commercial applications, as it cannot wrap ExtJS 2.1+ for free.

Anonymous said...

You need to be mindful that ExtJS GWT is GPL3 while GWT-Ext with Ext 2.0.2 is LGPL. Also a LGPL fork of Ext is inevitable which is nothing but good news for the community.

Patrick said...

I like the visual attractiveness of the ExtJS libs; but like Stefan says I'm not crazy about all that juggling of JS structures one has to do to use it. Do you know of a GWT lib of attractive widgets available anywhere? Google-ing gets me all kinds of single widgets (a slider here, a canvas there) but nothing as feature-rich as the GWT-EXT demo page.

Robert Hanson said...

Patrick, I don't think that there is anything equivalent to Ext-JS out there.

Anonymous said...

All these unfortunate distractions really make it hard to decide to use any of these solutions. GWT without a complete widget lib is really not that compelling. There are lots of good js libs out there that are basically ready to go (EXT is one of them). I really would like to support Sanjiv (he has done a great job) but I am concerned about the forking issue. EXT-GWT really inst ready for primetime yet. Makes me want to throw in the towel and go back to DOJO. At least there are some cool layout tools.

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...

If I didn't misunderstand it, the change of license of Ext Js to GPL is not a major issue for us Web application developers. Unlike desktop software, Web applications are mainly (if not all) developed for single site use, which means that they are not developed to be distributed. GPL does not require derived work to be released. See this entry.
This means that it is all right not to make your apps GPLed, as long as you use the widget library to build single-site Web applications that are not to be distributed. Please feel free to correct me :)

Therefore, you may (depending on your application type, as mentioned above) use Ext-GWT without buying a commercial license.

Anonymous said...

Hai friends ..

Am in a big confusion, now am working with java and jsp with struts, But now i decide to change my user interface tool with a good one.. Am my gooling i found "ExtJs" looking good.. Actually i don't know is any difficulty in coding or in some layers.. i found someones commend that "ExtJs" debugging is most difficult, is it true?.
Even my next project is a accounting software,
what is the good tool "ExtJs" or "Ext GWT" or "Gwt Ext"
Am confusing with these three.... can any one give a good suggestion.


Thanks in advance

Robert Hanson said...

Anonymous,

If you like working with JavaScript, then I would use ExtJs. If you prefer Java, then I would use one of the other ones. I have had much better success using GWT over JS.

Regarding which one to pick. If you can afford the licensing then I would go with Ext-Gwt for a number of reasons. (1) you get some support, and (2) it is written in GWT as opposed to JS, giving you smaller and maybe faster compiled code.

If you are on a budget, then go with Gwt-Ext. It works well, but your users will have a 1MB download. This usually isn't a problem though.

Anyway, that is my opinion.

Anonymous said...

hi there!
i have a web application with java struts and i would like to add some gwt ext widgets like a grid or so. how can i integrate these witith old java application?

Robert Hanson said...

Anonymous (if that is your real name),

There is no easy solution to that problem. When you need to do is realize that GWT is just JavaScript. So the question is, how would you integrate JavaScript with Struts? Typically you would just stick the JavaScript in the page, right? Start with that... and then you need to figure out how to pass the data to the JS. You could use Ajax, or have the JS code read some data that you embed in the page.

Again, not a trivial thing to do unless your needs are extremely basic.

iConner said...

I like this example and try to use extjs-gwt in eclipse project. This is my first article about extjs-gwt:gxt
See more about Extjs-gwt on eclipse.
I think this extjs-gwt article can help beginner to learn.

Anonymous said...

Hi Robert!

I have some time using GWT, but I feel that I've not understod complete... :S

Also I've been working with the Gwt-Ext library --so-so!--. Now, Sanjiv release on November 17th SmartGwt...

I think a good look (I've seen the showcase: http://www.smartclient.com/smartgwt/showcase), then I'm testing on my application, but I'd want more documentation... Are you seen SmartGwt (sure!)?, Do you have any material about?

Well, I'll thanks your soon response

Robert Hanson said...

Hi Mary,

I just saw SmartGWT 2 days ago. I havn't had a chance to try it out yet.

Anonymous said...

Hello Robert,

Have you had the chance to investigate SmartGWT? What are you thought on it in terms of architecture, memory leaks and the fact that it is not a native Java GWT code? I would be interested to know your opinion! Thank you!

Robert Hanson said...

I only looked at it briefly at this point. Looked pretty nice though, at least from a visual perspective.

Anonymous said...

I'm trying to decide on a grid. I've looked at, SmartGWT, GWT-Ext, Ext GWT, EJS TreeGrid, Sigmasoft, YUI, Zapatec, Flex, and IT Mill Toolkit. I would prefer pure java rather than javascript so that would basically mean Ext GWT, but I don't' want to make my decision based on that.
Does anyone know of any others that I have not been able to find? Also which one would you suggest?

Robert Hanson said...

You should ask on the GWT list if you haven't already, you will likely get a lot of responses.

It is definitely a tough decision, and I don't have any answers.

Anonymous said...

I've been using GXT (Ext-GWT) since the days it was known as MyGWT. It's feature set has caught up with, and in some cases surpassed, ExtJS. If you are looking for pure Java, this is the way to go. You get all of the Java benefits for your UI, including debugging UI code!!!

BR said...

I have started using Ext GWT. I have not used GWT-Ext (which a very good friend of mine is using).

I love the framework. It's really very well done, and here are the reasons I went with it:

1. from the same guys that did EXT. This is important - because a. they have already demonstrated competence and b. they control the base.

2. license. I am doing a commercial project, and I like having support. It's priced very reasonably, and people deserve to be paid for producing great tools.

2 is actually the most important thing here. For me, as far as GUI frameworks go, having a dedicated company behind it is critical. For other things, like network plumbing an Apache license is fine. I can probably dive in and fix whatever I need to fix when I run into an issue. Not so with a JS library.

My two pixels.

BR

Rich Katz said...

We are using GWT-Ext because it does not have restricted licensing where as ExtGWT initially did. We are an open source group contributing to an open source consortium. As such, we can not predict the eventual end-use of our product, who its eventual end user would be, or whether all users in the chain would make their own project open source or not.

It would seem unfair of us to turn over a version to the consortium that had such usage restrictions built-in. Therefore, our project started using GWT-Ext. It has some good features for what we need currently, and has well constructed Swing-like interfaces.

I've been using Robert's book GWT in Action as well as the follow-on book from Manning: GWT in Practice.

I would really like to see books that discusses integrating GWT-Ext or whatever other unrestricted usage add-on tools there are, integrating GWT with other common web page management tools like JSP and Struts, and converting from GWT 1.5 to 1.6.

Thanks.

-- Rich

Manjunath Maruthi.c said...

Hi Robert i am using ext-gwt, how to handle the memory leaks in ext-gwt.Like destroying the components after it has been used.

Robert Hanson said...

@Manjunath, I have avoided using Ext-GWT since the licencing debacle, so I don't have an answer for you.