Saturday, February 27, 2010

GWT and SmartGWT

I'm doing some work with GWT 2.0 and also with SmartGWT. I like both toolkits, but I'm in the midst of a very steep learning curve (meaning I'm learning a lot quickly). While I'm making good progress in becoming proficient, I'm finding that SmartGWT suffers from the same problem that many open source products with commercial support options suffer from: weak documentation.

It's completely understandable and I don't blame the developer(s) of SmartGWT. When you are working on an open source project and also trying to provide commercial support as a means of revenue, it's hard to find the time to produce good documentation. And the truth is that if you provide a good product with documentation good enough that developers don't need your services, you have just put yourself out of business.

Such is the nature of open source projects that have commercial support models as their primary financing model. There's nothing that can be done about it (except find a philanthropist who will fund the project; and philanthropists of any sort are a rare breed these days, not to mention those interested in the the obscurity of open source software).

So I'll keep climbing the learning curve with the documentation as is, and take good notes for the future when I've stopped working with these technologies and come back to them.

Oh, and if you know any philanthropists looking to fund open source projects, I've got a project or two of my own I can suggest...

8 comments:

Charles Kendrick said...

Hi Brian,

It's been our experience that most people who make this comment actually just haven't found the documentation, so please take a look at the FAQ, which links to all the high-level overviews:

http://forums.smartclient.com/showthread.php?t=8159

Note that SmartGWT is unlike other OSS projects with commercial support - we have commercial versions of the product:

http://smartclient.com/product/

So we are not at all relying on bad docs to sell support, and for that reason almost everyone comments that our documentation is much better than projects that rely on support revenue.

If you actually had already found the full set of docs and felt that something was missing, the best place to comment is our forums.

http://forums.smartclient.com/

Brian Gilstrap said...

I appreciate Charles providing pointers to the documentation. I was aware of the existence of the FAQ and the javadoc. But I went and took a deeper look at the FAQ (topic 8159). I also looked around other parts of the documentation in the smartclient.com forums.

Again, I want to say that I like SmartGWT, and I think the documentation that is on the website is very helpful. So my comments below should be considered suggestions for improvement. That said:

* SmartGWT is not an extension to GWT, but an alternative. It's a nice library, but a great deal of my initial confusion was due to trying to intermix GWT and SmartGWT. This is not called out firmly enough nor early enough (yes, it's in the FAQ, but it's in the sixth section and the 30th item in the FAQ).

* Either there isn't an architectural description of SmartGWT or I didn't find it while looking around. What I mean is some kind of "Introduction to SmartGWT" which lays out the model SmartGWT operates under, an overview of the framework, an introduction to how the different parts of the framework interact, etc. This can be hugely valuable for a developer who is new to the framework.

Charles Kendrick said...

Hi Brian,

Actually SmartGWT is more of an extension than an alternative. Many people use specific SmartGWT widgets, such as the Calendar, as an extension to an otherwise plain GWT application. This is also a useful incremental migration strategy.

As far as the warning about freely intermixing widgets, there are many things vying for prominent placement, and being an item in the FAQ is pretty prominent. Of course, everyone always thinks the thing that just bit them should be more prominent (no offense) but we have to more broadly weigh which misconceptions produce the most confusion as measured by support incidents.

About overview materials - the FAQ links to overview guides for all the different approaches for connecting widgets to data. There is some further conceptual overview information, more oriented on the widgets as such, in the SmartClient QuickStart Guide, which is also linked from the FAQ with instructions on which sections apply to SmartGWT. A pure SmartGWT version of the QuickStart Guide is also under preparation.

Dani said...

There is no better documentation than the source - so you wont ever get a better documented project than an open source project...

Charles Kendrick said...

Hi Dani,

Even though SmartGWT is open source, and hence this is a point in our favor, I have to strongly disagree - good documentation provides a much more effective process for solving problems than reading through source code, and documentation also defines what is supported and what is not.

That's why SmartGWT has more comments/documentation than code.

pdw said...

Have a look at the SmartGWT Showcase. You should be able to figure out how to do basically anything you are looking for by following the examples.

Charles Kendrick said...

Hi Brian,

Your post is getting some attention:

http://www.dzone.com/links/gwt_and_smartgwt.html

Now that we've pointed out that all of your questions were actually covered in the FAQ, I would guess your only remaining concern is a critique of which particular parts of the documentation are most prominently placed. If so, I'd appreciate if you revised your post so that it does not appear quite so negative.

Anonymous said...

Hi,

There are some goods post re smartGWT and GWTP here -> http://uptick.com.au/content/gwt-and-smartgwt-best-practices

- Mark