#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2001
    Posts
    16
    Rep Power
    0

    GWT vs. JSF - Please State Your Opinion


    Hi,

    I'm looking to select a Java Web Development Framework. In comparing these two, most of the information that I find is very old. Please state your opinion. Which would you recommend and why? What are the advantages and disadvantages? What was your experience with the learning curve?

    How is the performance on linux, Windows, and integration with IDEs (Netbeans, Eclipse).

    Thanks in advance. Looking forward to the intelligent technical discussion.
  2. #2
  3. Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    May 2004
    Location
    Superior, CO, USA
    Posts
    2,418
    Rep Power
    1713
    Honestly, I'm not a big fan of either one. GWT has you write HTML code in Java. This is similar to writing Swing. You have layout managers and the like but the need for a compile step is frustrating to me. However, one huge thing that it buys you is that you've got instant cross-browser JavaScript. You don't have to worry about the browser variations as Google does that for you.

    JSF is a standard and I'm a big believer in standards. But it is a bit heavy weight for many environments. The concepts behind it make sense but there is just so much there that feels so heavy.

    Recently I've decided that the front end belongs on the front and the back end belongs on the back. I'm using a commercial JavaScript library on the front which allows my designers to work in CSS/XHTML happily and my Java engineers to do their thing. A well documented JSON or XML interface between the two and you have a SOA that can also serve smart phones.

    What kind of project are you building?
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2001
    Posts
    16
    Rep Power
    0
    Originally Posted by stdunbar

    What kind of project are you building?
    Thanks for your time and response. The project is a small one. A simple order placement application, which would handle registration of customers, placing and fulfilling orders (no payment). Similar to a pizza order application. But, of course, it may and probably would grow into something larger in the future.

    I agree with the cross-browser advantage of GWT. Although that is very attractive, I didn't think that advantage would be worth the overall investment - but I wanted other opinions. I would like to separate the front end from the back end, but I also want to minimize the front end headaches without getting caught up with so much crazy syntax (ever hear of freemarker?).
  6. #4
  7. Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    May 2004
    Location
    Superior, CO, USA
    Posts
    2,418
    Rep Power
    1713
    Makes total sense. I eliminated qooxdoo and ZK because I didn't want to get stuck learning some proprietary way of programming.

    I've used YUI and, now, ExtJS and both are very good front end libraries. ExtJS is commercial but you can develop with it for free. YUI doesn't quite have all of the features of ExtJS but has a much more friendly license. Both of them let you create very nice looking interfaces easily and use AJAX to the back end easily. And they hide browser specific issues very well.

    However, they are in a different class than JSF or GWT - you will write some (or, potentially, a bunch of) JavaScript and certainly XHTML/CSS with these. While none of the JavaScript I've ever had to write was very difficult (and none of it touched any browser specific features) it does need to be done with a pure JavaScript library. I've been a Java engineer for many years now and needed to develop on both sides to get it to all play nice together.

    Also, if you go down the JavaScript library route be aware that these are rapidly developing tool kits (though I wish YUI was developing a bit faster). Because of that quality documentation and extensive examples can be hard to come by. Not a week goes by that I read how to do something in ExtJS only to find that there is no documentation for the method described. I have to look at the JavaScript source to determine the best way to implement.

    Have you considered an entirely different route - use something like LifeRay? If you check out their sample site it is a full .com-like site with a Wiki, forums, and the like. You certainly don't need to implement all that but it provides a bunch of power.
  8. #5
  9. No Profile Picture
    Contributing User
    Devshed Novice (500 - 999 posts)

    Join Date
    Jul 2005
    Location
    Bay Area, California
    Posts
    841
    Rep Power
    1682
    You may want to consider Google Closure for a pure JS library.
    Core design principles when developing software systems.
    See my open-source project as an example of professional code.
    ---
    The opinions expressed do not represent those of my employer.
  10. #6
  11. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2010
    Location
    Israel
    Posts
    1
    Rep Power
    0

    My opinion


    I do not recommend GWT, because I had 1 year experience with that :
    List of GWT disadvantages:
    -simplest thing to be done requires 4-5 java classes with complex relationships
    -UI work fully concentrated in hands of very experienced java programmer, not simple
    -UI java programmer should also be aware of server side affairs very well, so hire 5 years experience programmer and GWT might become more friendly
    -not friendly for SEO
    -heavy dependence on Javascript, really itís pure javascript, with all disadvantages of this insecure and problem-making technology
    -seems to create memory leaks in browsers
    -compilation time is very long
    -requires your custom effort to integrate ORM or data layer
    -there is no clear separation between work of web-master, server side java programmer and art-designer.
    It seems art and presentation layer workers should access java code with good confidence.

    List of good things:
    -testing is quite simple

    I recommend Jboss Seam as a much more mature and thoughtful solution, including several UI options.
  12. #7
  13. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2012
    Posts
    1
    Rep Power
    0
    GWT
    I completely agree with beep02 on GWT. It will cost you dear in long run. There are three very fundamental reasons:
    1. Coding everything in JAVA will make it almost impossible for web designers to contribute effectively. They are adapt in markup language. JAVA is a different ballgame. HTML prototypes to application will be a huge rework.
    2. Since JAVA is powerful, programmers can bleed business logic in the ui layer code. It will soon become a convoluted mix of ui and backend. It seems trivial but it's the sole reason why web applications become non-maintainable.
    3. Javascript as the underlying engine has it's own disadvantages which you can search on various forums.

    I will recommend GWT only if you know nothing but JAVA and you will never get to work with a web designer.

    JSF
    JSF is far better in this regard.
    Pros:
    • It's component based so there are large number of vendors that can give you great widgets for free.
    • It's a JEE standard.
    • It keeps markup language intact for building UI. Using Facelets or JSF 2.0 will help you even further.
    • For integration with business layer you can consider Spring Webflow. It greatly externalizes lot of backend logic.

    Cons:
    • It stores lot of state data on client or server thus have a large memory footprint.
    • It doesn't have a good validation engine.
    • Creating new widgets is bit complex for new developers.
    • Since it's a specification and many vendors provide different implementation and plugins for it, you have to spend time creating a good package for yourself.

    JBoss Seam creates a nice package. Probably it's the best that gives you everything for JSF in a single instance.

    On a side note, if you would like to explore something new then TechnoSeals Nano Web is simply brilliant. It has powerful OOPs based engine, completely separates business logic from UI, doesn't require any programming language till you want to extend the framework and has a generator to create your content manager within seconds.

IMN logo majestic logo threadwatch logo seochat tools logo