Search code examples
javaspringframeworksgrailsstripes

Stripes, Spring, Play (or ?) : which high performance Java framework to use?


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 ?


Solution

  • 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.