views:

318

answers:

5

We are beginning to build out a webapp which will probably see a lot of traffic. We dont have a lot of money, so we want to reduce hardware cost. More or less, I think that means we will try to be as stateless as possible (as the Wicket way suggests - have bookmarkable URLs, etc. etc.)

The other problem is that we are gonna be hiring contractors (think oDesk or elance) for chunks of work - so there is the question of finding talent.

I have looked at Tapestry and seen a lot of API instability ( see: Why did you stop using Tapestry? ) which makes me reluctant to use it.

Seam and Wicket are highly stateful - not something I care for.

Grails looks to be very interesting. I know that there is a performance hit as compared to pure Java, but it might be worthwhile.

Stripes looks good, but I cant find examples of websites that have been built using Stripes

Which Java framework do you recommend for performance and simplicity ?

+1  A: 

Spring-mvc with jsp's.

Spring is lightweight, everybody knows it, a lot of documentation for it and it's really simple to start developping if you use spring-mvc (specially if you use the mvc-annotations).

If you want some nice effects, you can combine it with JQuery (also for easy-AJAX).

Cid54
+1  A: 

Spring MVC and Stripes would be on my short list.

Both are light and easy and gives you more flexibility of the web application.

You might also considering looking at AJAX functionality; which parts of the pages could be simplified/smaller due to the usage of AJAX.

SPee
A: 

Spring Roo (integrating Spring MVC) could be a good solution for you: this is pure java (easy to find freelancers), performant and easy to use with principles applied like Convention Over configuration;

Grails is also a good solution but you will need more hadware capabilities than Spring Roo and freelancers will be more difficult to find.

fabien7474
+3  A: 

The best performance is to be found with the action based frameworks (no paradigm mismatch as the component based frameworks have). My Shortlist would be Stripes first and Spring second.

Stripes Framework (Pro):

  1. Fast
  2. SEO friendly links
  3. Elegant easy to understand code (1 thread per action).
  4. Low learning curve, any Java web developer can quickly learn it.
  5. 100% open source, no chance of future license changes.
  6. Focused and small integrates with any stack.

Stripes Framework (Against):

  1. Less well known
  2. Not full stack

Spring MVC (Pro):

  1. Fast
  2. SEO friendly links
  3. Lots of developers have worked with Spring (but less with Spring MVC).
  4. Full stack, part of Spring framework.

Spring MVC (Against):

  1. Higher learning curve
  2. More complex code: because beans need to be programmed tread safe, result is procedural code.
  3. You might need to buy licenses from VM Ware in the future if you want to get all latest patches.
  4. License terms can and have changed for future versions.
  5. Full stack, you might get more than you need.
Kdeveloper
A: 

I would highly recommend Play! framework.

Java-based, Rails-like, easy to learn, highly productive, more and more real projects based on it, full stack, fast in coding and fast in production, active community...

branaway