• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

In Search of the Framework

 
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hey,
I don't mean to start "what is your favorite framework" or "Frameworks comparisons" thread, I'm just seeking your help and knowledge.
I spent a lot of time trying and evaluating many frameworks but I reach no conclusion.

* Spring MVC
Too flexible and customizable (could I say annoying?) but it doesn't offer a lot out of the box.
* Struts 2
Maybe Time has passed it away and should be kept in a museum.
* Stripes
Nice and minimal framework but (I'm not sure) it doesn't not offer a lot out of the box.
* Tapestry 5
Not even in my consideration.
* Wicket
Liked it a lot but I can't digest the JFC/Swing over the HTTP thing.
* Seam
I invested a lot of time in it, so delicious and powerful but the lack of help from their web site and being a JSF enhancement framework were stoppers for me.
* GWT
Sexy and breath taking but being a soooo client-concetrating and building the interface in the code were again a stopper for me.
* Grails
The framework I use right now.
I like the simplicity and productivity of Grails but many important plugins aren't well documented (if any).
And there is the Groovy thing, there is some thing in the language I don't know what it is but I don't feel its power.
Some times I feel it is just a simplified syntax over Java's.

Jobs trends show that the most wanted frameworks are: GWT, Wicket, Grails
I want to pick a framework and invest in it.
Thanks.
 
Bartender
Posts: 4121
IntelliJ IDE Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Some rebuttals -


* Spring MVC
Too flexible and customizable (could I say annoying?) but it doesn't offer a lot out of the box.



It is definitely heavily configuration based. I'm not sure what you mean by 'doesn't offer a lot out of the box'... if anything, Spring MVC is used by a ton of projects because it comes with Spring.


* Struts 2
Maybe Time has passed it away and should be kept in a museum.



I haven't used it a lot... I've heard that conceptually it's similar to Spring MVC (but Spring MVC has the advantage of being packaged with the rest of the Spring framework). The biggest problem is that Struts 1 was so popular - but Struts 2 was basically another project (WebWork 2) renamed Struts 2 and around the same time a lot of other frameworks were coming out. A bunch of people either stuck with Struts 1 or figured if they were going to learn a new framework, there was no real benefit of learning Struts 2 vs. some other framework. I think you mean Struts 1 rather than Struts 2 in your comment.


* Tapestry 5
Not even in my consideration.



Haven't used it - biggest complaints I've heard are changes between versions and slow release cycle. It's also a templating engine, which is conceptually different from request/response based frameworks (Spring MVC, Struts, etc.) and more similar (but not exactly) to component based frameworks (JSF, Wicket, etc.)


* Wicket
Liked it a lot but I can't digest the JFC/Swing over the HTTP thing.



Wicket doesn't use JFC/Swing... it's simply a component based web framework. I've heard good things about wicket (i.e. - that it's a better component based framework than JSF).


* Seam
I invested a lot of time in it, so delicious and powerful but the lack of help from their web site and being a JSF enhancement framework were stoppers for me.



Seam is popular among a lot of projects because it's based around the 'standard' JEE technologies (JSF and EJB as opposed to something like Spring), but actually makes them usable. :P


* GWT
Sexy and breath taking but being a soooo client-concetrating and building the interface in the code were again a stopper for me.



Yes, it's client-concentrating... it's an AJAX based web framework. Lots of people like it because it's backed by Google.


* Grails
The framework I use right now.
I like the simplicity and productivity of Grails but many important plugins aren't well documented (if any).
And there is the Groovy thing, there is some thing in the language I don't know what it is but I don't feel its power.
Some times I feel it is just a simplified syntax over Java's.



Grails is basically a framework similar to 'Ruby on Rails' but for Groovy instead. It's written on top of Spring and Hibernate. Not sure what the 'don't feel it's power' comment on Groovy was about... it's a scripting language with syntax similar to the Java language. The only complaint I usually hear about it is that it uses Groovy instead of Java.


Jobs trends show that the most wanted frameworks are: GWT, Wicket, Grails



I'm not sure where you're getting your job trends... It's going to be different by area, industry, etc. but I'd say that most projects are using either Spring (and Spring MVC for the web framework) or no 'framework' other than just JSF or JSP. There are still a lot of old projects using Struts 1 (please no new projects in this, though...). All the other frameworks are in use to some extent but are dwarfed by these. Out of these I'd say GWT (because it's backed by Google) and Seam (because it's close to standard JEE) are used the most.
 
Hussein Baghdadi
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Yes, I know Wicket isn't JFC/Swing, I mean Wicket programming model which it is the same as Swing.
 
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Groovy is substantially more expressive than Java, and the new AST transformation stuff is great. It's *quite* a bit more powerful than simply a "simplified Java syntax".

I'll echo the Struts 2 comment--you must be referring to Struts 1. Struts 2 is a reasonable Spring MVC alternative, and has good Spring integration. There are arguments for either, and both are pretty nice.

The Wicket programming model is pretty cool--component-based web apps often make a lot more sense than action/page based ones, but that can depend on the app. Swing is a great API, btw. Complex, perhaps--but when you consider all that it does, that shouldn't be surprising.
 
Hussein Baghdadi
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I mean WebWork 2 (not Struts1), is has a clean architecture but I feel it requires a lot of work (Struts2 == Struts1++ to me)
Yes, Wicket is a superb component based framework, so elegant, I used it in the past.
I found that component-based frameworks aren't for my taste.
Spring MVC 3 looks has new cool features, I hope to examine it soon.
 
David Newton
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You'd have to be more specific with S2 criticisms; I don't know what work you're talking about, and I haven't found it to be more work than many other frameworks. YMMV, but I still prefer it to Spring 2.5 (or less) MVC.
 
Ranch Hand
Posts: 15304
6
Mac OS X IntelliJ IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I find these days that investing in a framework is a waste of time and energy. When I talk to people about new contracts and they say something like "are you familiar with Struts2?" and I say "Not really, but I've using [Insert other MVC framework here]" they say "Oh, ok, great" because really, they are so similar now. It used to be different but not so much anymore.

Tapestry and Wicket are a bit different because they are component oriented but I've yet to encounter a contract offer where either of these were being used. I see a ton of JSF requirements but at its core, it's a tag library. Learn the tags, good to go.
 
David Newton
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hrm, I found JSF to be a pretty steep learning curve compared to anything else I've ever used, plus without Seam (at least with older versions) it really wasn't that compelling an environment for me. Well, it still isn't, but you know what I mean.
 
Ranch Hand
Posts: 959
Eclipse IDE Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm more of a component-based framework guy. In the past I had one project with JSF and recently I had one project with Wicket. I really like Wicket a lot. It's a very elegant framework. The learning curve is rather steep (but not as steep as JSF). GWT is surely something that I will look forward to learn in the future.

Currently, I'm still learning Struts2 since there is one project that requires me to use it. So I can't comment much on it. I heard Stripes has a very good review.
 
David Newton
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I agree, both Wicket and Stripes are very, very nice.
 
Hussein Baghdadi
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I tried WebWork2 in the past.
It has a good and flexible architecture but:
1. A lot of XML (xwork.xml)
2. Inheritance in XML (xwork1 extends xwork2 ...)
3. Specifying interceptors in XML
4. OGNL it is powerful but not well documented (I think it should be dropped in favor of JSP EL)
5. Uses Dojo
I don't know if Struts2 is a better framework now.
SpringMVC 3 looks so elegant and delightful to use, definitely I'm going to check it but right now, Grails serves me well.
 
David Newton
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
S2 can be completely annotation-driven via the REST plugin (if desired--I reuse a lot of my components, so XML actually works better for me, almost always).

Not sure what you mean by the inheritance thing.

Interceptor stacks can also be declared via annotation, but I don't find that very compelling... or necessary, since *very* few of my actions require non-default stacks.

JSP EL is pathetically weak compared to OGNL--I'd prefer to use a more powerful EL than JSP EL whenever possible.

S2 "uses Dojo" in only a very limited sense--it's not a *requirement* to use Dojo, the Dojo tags have been deprecated, and are being replaced with jQuery tags. The only real Dojo issue is that S2 uses an *old* Dojo--current Dojo is very capable. All that said, I much, *much* prefer to just use whichever JavaScript framework in its native format--tag-based solutions are almost always more trouble than they're worth.
reply
    Bookmark Topic Watch Topic
  • New Topic