The cons and pros of smartGWT
Asked Answered
V

7

30

I'm starting work on a smartGWT project in a few days and I'd like to know what kind of experiences you had. To avoid making this a bashing of smartGWT or GWT or a freestyle discussion, I'm going to provide some pointers for the discussion:

  • Do you feel that the provided widgets are integrated well? Is there any widget you miss in particular?
  • Have you encountered any problems when designing your application that were caused by the framework?
  • Is the datasource integration as usefull as the smartClient team claims?
  • What methods do you use to make your smartGWT application persistent? e.g. How well do Hibernate and smartGWT play with each other?

Feel free to add anything you feel is worth pointing out.

Voiceful answered 18/5, 2009 at 8:54 Comment(0)
C
23

I guess you already have your answers, but I would like to add a few more comments that may affect your decision:

Pros:

  • SmartGWT is the most compreensive LGPL GWT-based widgetery library you can find. So if you care for GPL pain, this is your thing
  • Comprehensive Showcase.
  • Really good performance (just check the Showcase).
  • Very active community in the forums.
  • SmartGWT extensions is another important project. For example, it has support for GWT-RPC based communication, which is not possible only with SmartGWT (unless you implement your own integration).
  • Rapid pace of development from the SmartGWT guys. Just count the number of releases since the SmartGWT project appeared.

Cons:

  • Besides the Showcase, I sometimes feel the only way to figure out how something works is by asking in the forums. This leads to a spread knowledge base. A community based wiki would be preferable.
  • Large amount of static files you have to use with your application (the famous 'sc' directory) which might lead to problems if your back-end is in GAE (because of the 1000 files limit).
Caylor answered 25/5, 2009 at 17:16 Comment(5)
Add missing documentation (although it is improving) and weak support on the forums to the cons list.Prather
Large amount of static files you have to use with your application which might lead to problems if your back-end is in GAE is there any workaround for that if you backend is GAE? e.g. using some cleaner themes with fewer images etcPessimism
@yetanothercoderu: Back in the day I was using GWT I managed to solve the problem by using a single zipped 'sc' folder file and using a servlet for unzipping the resources on-the-fly. I've posted this hacky solution here: forums.smartclient.com/showthread.php?t=5258 Note that performance is lacking.Caylor
Some updates to this old but good answer: 1. GAE no longer has this limit. 2. Documentation has had massive improvements, start at docs.smartclient.com and read the new QuickStart Guide 3. Take a look at the forums (forums.smartclient.com) - there's a tremendous amount of activity, lots of participation from Isomorphic with around 15 posts a day, and when people report real bugs, they are often fixed overnight.Chiton
After nearly 10 years, the support got way worse rather than better. SmartGWT questions almost never get answers (check the tag).Perlite
I
17

We used SmartGWT in our last project (duration: 6 months). The following is my personal opinion:

The widgets are really great! The documentation and API is verbose. We would use client-side again.

The server-side integration works, but did not save any development time. Instead we had a lot of problems where we had to find workarounds. Also, because of the new API, no other developer can maintain the project within investing a lot of time to learn the SmartGWT API.

Some Cons:

  • You have to learn a totally new API instead of using Hibernate and GWT-RPC or REST.

  • The data integration is done automatically, that is true. But if you need some (also little) changes, you have to write XML mapping files as with Hibernate or JDO. So the benefit is gone.

  • The forum support is bad: You get an answer to almost every posted question. But that answer often does not help. They ask you things such as “why do you want to do that”. Or they say: “use our tool and do XYZ with it” three times, although again and again I told them this suggestion does not work. After a few answers to a question the final answer is: “you need training, buy our support”.

  • The commercial support is way to expensive (costs approximately as much as the SmartGWT license).

We will probably not use the server-side integration of SmartGWT again.

You can read all my "lessons learned" with Pros and Cons at my blog:

http://www.kai-waehner.de/blog/2010/12/11/lessons-learned-smartgwt-2-3-component-library-for-google-web-toolkit-gwt/

Best regards, Kai Wähner

Indestructible answered 11/12, 2010 at 9:58 Comment(1)
+1 to the forum support part. Forum support is really bad. Thank you for the Blog post - I learned something from it :)Blackjack
C
8

Do you feel that the provided widgets are integrated well? Is there any widget you miss in particular?

You could create any missed widgets, there is no single framework that can provide everything you want. The widgets are pretty extendable.

Is the datasource integration as usefull as the smartClient team claims?

The data (JSON/XML) can be provided by servlet services, and they are understood by the widgets.

What methods do you use to make your smartGWT application persistent? e.g. How well do Hibernate and smartGWT play with each other?

In the backend servlet services of GWT, you can persist your data in the store by using any persistent layer in Java. Hibernate can be just used as same as normal java app.

Clothes answered 18/5, 2009 at 9:5 Comment(0)
I
6
Do you feel that the provided widgets are integrated well? Is there any widget you miss in particular?

Yes. The widgets have a consistent API and work well together.

Is the datasource integration as usefull as the smartClient team claims?

This IMO is one of their strongest feature. Once you start using their Datasource API you realize how little code is required to get a fully functional CRUD screen

What methods do you use to make your smartGWT application persistent? e.g. How well do Hibernate and smartGWT play with each other?

Hibernate works out of the box with the SmartGWT EE version. With the LGPL version using Glead works wells

Ischium answered 19/5, 2009 at 13:34 Comment(0)
I
4

I think SmartGWT has a ton of great widgets, but but but there is a HUGE price. Create a simple SmartGWT based project and watch how many files get loaded by your page. That, I think, is totally against the ideals of something like GWT. While SmartGWT may be a pretty good option for people on a deadline, if you want raw performance, stay away from it. The number of HTTP requests will simply kill your application.

Ipecac answered 28/12, 2009 at 10:23 Comment(1)
Incorrect. SmartGWT is for web applications that people use for an extended session and/or on a repeat basis. In this context HTTP requests for cacheable resources happen once ever, and dynamic requests for data is what performance tuning needs to focus on. And here, SmartGWT has a giant lead because of features like Adaptive Filtering: smartclient.com/index.jsp#adaptiveFilter Because of features like these, for applications that fit the usage profile described above, SmartGWT is the fastest solution available.Chiton
G
3
  • Have you encountered any problems when designing your application that were caused by the framework?

Yes. When I combined Google Eclipse plugin, SmartGWT, GWT 1.6.4, and Wicket the gwt compiler would emit bad javascript. By bad javascript, I mean javascrip that would not work in webkit, or firefox. I was not able to get good javascript until I removed it completely from the Eclipse project and restarted Eclipse. So, this combination would not work and I ended up building the SmartGWT piece separately in another project. The other issue is that the Smart client seems to want control of the whole page in a css sense. So, the integrated SmartGWT module was all messed up, because styles were not isolated properly. Your mileage may vary.

Personally if you use SmartGWT only and for everything then all will most likely be fine, but if you try and mix it, well my results were disastrous. So, I no longer use it.

Grayling answered 19/5, 2009 at 22:29 Comment(1)
This sounds like 1) a GWT bug causing bad JavaScript, probably fixed by now, and 2) CSS naming conflicts between SmartGWT and Wicket, probably neither framework's fault, so not sure why this would be blamed on SmartGWT. SmartGWT can play nice with any library's CSS - all of SmartGWT's style names can be renamed via the skinning system to resolve any such conflict.Chiton
C
2

Just as a counterpoint to the poster above who mentioned troubles with Wicket, the SmartClient forums (forums.smartclient.com) have reports of success integrating SmartGWT with a wide variety of other technologies. This poster's problems sound like 1) a GWT bug causing bad JavaScript and 2) CSS naming conflicts between SmartGWT and Wicket, probably neither framework's fault. All of SmartGWT's style names can be renamed via the skinning system to resolve any such conflict.

Chiton answered 10/6, 2009 at 23:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.