Web application frameworks are software which help you to create dynamic websites. By a dynamic website, we mean web pages with data from various sources like database and web services from different sites.
If you want to develop an application from scratch, multiple frameworks are available both in open source and in the enterprise realm. A developer would like to go for open source web frameworks. However, selecting a framework for web application is a really challenging task.
To simplify this process, one can use the following criteria to compare Web application frameworks:
- Ease in developing application prototype
- Complexity of framework
- Usability
- Proper Documentation
- Community Support
- Scalability
- Regular and continuous Updates
- UI look and feel
Based on these parameters, we have shortlisted a few frameworks to compare. These frameworks are:Play, Spring, Struts and Vaadin.
We will briefly discuss each of these frameworks and then provide insights based on the aforementioned criteria:
Spring
Spring is the most popular java web application framework. It provides various services for database management, database services etc. It follows MVC architecture. Spring provides configurations and tools which help in creating a standalone application easily. Despite its popularity, Spring has a drawback – it combines multiple features to make it usable by all. So while developing a simple web application you will have to deal with many components that are unusable or even unnecessary.
Play
Play framework stands second on the popularity charts for web application frameworks. In addition to Java, Play largely supports Scala. It too, follows the MVC architecture. Play provides support for REST based web services, Javascript frameworks etc. and also includes stateless services and asynchronous I/O.
Play is influenced by Scala deeply, which might make Java developers a bit uncomfortable while using this system. It still holds appeal when it comes to features like faster development as code changes are reflected in web page without deployment.
Struts
Struts is a legacy technology which was once quite popular among web developers. Many enterprise products have been created on top of struts framework like Intershop etc. to ease life of developers. Struts provides templates for UI but it fails to impress look and feel wise. Struts documents are available but they are not in proper order and many of the links are dead. So, sometimes finding the proper documentation is difficult or not possible at all.
Vaadin
Vaadin provides a number of components, which have been developed by users and contributed for others to use. It provides a drag and drop feature to add components and it generates a code for you.
Comparing these Web application frameworks:
Here is a basic comparison of the frameworks based on the criteria defined as above. We shall be providing more details in next blog.
Play | Spring MVC | Struts | Vaadin | |
---|---|---|---|---|
Easy Prototyping | Best | Good | Good | Better |
Complexity | Poor | Good | Better | Better |
Easy to use | Good | Good | Good | Better |
Documentation | Better | Better | Poor | Best |
Community Support | Better | Best | Poor | Best |
Scalability | Best | Better | Good | Better |
Updates | Better | Good | Good | Better |
UI Support | Good | Average | Poor | Best |