Web development frameworks – part 1: Options and criteria

At my company we are evaluating which web development framework we will use for the next few years.

Since our last evaluation we have been using Java application servers powered by Struts 2 as MVC, Tiles as templating engine, jQuery for Javascript awesomennes, DWR for AJAX calls and MyBatis as ORM.

But we think it’s time to re-evaluate and move on to a newer/better/friendlier framework.

In this post I’ll present you with our candidates and the criteria we are evaluating each framework with. Over the next weeks I’ll post the actual evaluation of each framework and finally what our choice is and why.

Before listing the candidates I should point out some of the assumptions and restrictions we made in order to shorten the list:

  • We will evaluate only frameworks based on Ruby, Python and Java. There is nothing wrong with .Net or PHP or other technologies, but we cannot cover them all and this three are our prime candidates anyway.
  • The company has a lot of experience and accumulated knowledge on the Java platform, so you will see more Java based frameworks. Though hopefully no bias towards them.
  • All frameworks must be free to use and preferrably open source. Additionally there has to be no need to use a proprietary IDE, application server or database to develop with them and/or use them in a production environment.

The candidates

The frameworks we chose to evaluate are:

  • Play Framework 2.0
  • Ruby on Rails
  • Django
  • Google Web Toolkit
  • Spring Roo
  • Spring Framework
  • Struts 2
  • JBoss Seam

Criteria

And the criteria we will use will be composed of the following items:

  • Learning curve
  • Development performance for simple tasks
  • Development performance for complex/singular tasks
  • Dependency management
  • Code performance/security tunning capabilities
  • Platform escalation/redundancy capabilities
  • Acceptance in corporate markets
  • Complexity of developing and consuming SOAP and REST services

A score scale of bad, medium and good will be assigned to each framework in each criteria item. To asses them we will perform the following tasks using each contender:

  • Install the framework in a development workstation
  • Setup a development environment using a free IDE, application server and database
  • Develop the “Hello world” or similar sample outlined by the frameworks tutorial
  • Modify the sample app to perform a specific database query over a custom structure and display the results
  • Add a dependency to a third party library and perform a computation using it in our app
  • Develop a “Hello world” REST service
  • Consume our own service from our app

We are starting with the Play Framework 2.0, I’ll post the results as I have them.

Reference: Choosing a web development framework – part 1: options and criteria from our JCG partner Ricardo Zuasti at the Ricardo Zuasti’s blog blog.

Related Whitepaper:

Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions

Get ready to program in a whole new way!

Functional Programming in Java will help you quickly get on top of the new, essential Java 8 language features and the functional style that will change and improve your code. This short, targeted book will help you make the paradigm shift from the old imperative way to a less error-prone, more elegant, and concise coding style that’s also a breeze to parallelize. You’ll explore the syntax and semantics of lambda expressions, method and constructor references, and functional interfaces. You’ll design and write applications better using the new standards in Java 8 and the JDK.

Get it Now!  

6 Responses to "Web development frameworks – part 1: Options and criteria"

  1. Hello. Like your set of rules. We did had some discussion and published some of our finding on this (http://blog.8thcolor.com/2011/07/rails-django-the-showdown/). Hope it can be useful. I’m quite curious to see your results, especially as you are evaluating non java frameworks as a java shop (and this means switching from language, framework, but also platform and ecosystem – it is not just picking a language : http://blog.8thcolor.com/2012/07/you-are-not-just-picking-a-language-follow-up-on-from-java-to-ruby-post/). Martin

  2. only one standard – JSF2

    • Andriy Andrunevchyn says:

      JSF is awful

      • JSF is the best and java web standard, people who complain from JSF does not understand his goal and life , you can find what another frameworks try to copy JSF core. Try JSF2 with primefaces, I success done about 40 JSF projects. If you start with php, jsp or another, during development you will try construct JSF schema:))

  3. LukasEder says:

    You’re missing Apache Sling. Here’s why, given your criteria:

    > Learning curve

    Very shallow, even if the documentation could be improved

    > Development performance for simple tasks

    Very good

    > Development performance for complex/singular tasks

    Very good

    > Dependency management

    Completely based on Maven / OSGi

    > Code performance/security tunning capabilities

    Very good

    > Platform escalation/redundancy capabilities

    Not sure what this means

    > Acceptance in corporate markets

    Sling is maintained by Adobe Systems and used in many internal and external Adobe products, mainly in CQ5 / AEM

    > Complexity of developing and consuming SOAP and REST services

    Sling is a very RESTful framework

Leave a Reply


eight + 2 =



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.

Sign up for our Newsletter

15,153 insiders are already enjoying weekly updates and complimentary whitepapers! Join them now to gain exclusive access to the latest news in the Java world, as well as insights about Android, Scala, Groovy and other related technologies.

As an extra bonus, by joining you will get our brand new e-books, published by Java Code Geeks and their JCG partners for your reading pleasure! Enter your info and stay on top of things,

  • Fresh trends
  • Cases and examples
  • Research and insights
  • Two complimentary e-books
Get tutored by the Geeks! JCG Academy is a fact... Join Now
Hello. Add your message here.