Home > Software Development > Which Web Framework is the Best?

Which Web Framework is the Best?

Web based applications become more and more popular. Not only normal Web sites but also enterprise management systems are adopting this to deliver the functionalities due to the benefit of zero installation on the user’s side.

There are a lot of Web Frameworks today, probably more than anyone can grasp. For each programming language, there is one or more Web frameworks that help you to create Web based applications. Choices are definitely good but may give you a hard time to decide which one is best for your project. More often than not, there is no single best one that suits all your need. In other words, you have to decide the best in the context of your problem.

Time to learn how to "Google" and manage your VMware and clouds in a fast and secure


What should be in the thought process to a decision?

  1. Programming language. You have to decide what programming language to use for your Web applications. With the preferred language in place, you can only use the frameworks supported by the language. This usually limits much fewer options to your list. The most popular programming languages for Web applications are PHP, Java, C#.
    The choice of your programming language is not a choice sometimes. The most rational choice is to use a programming language you and your team are already familiar with. If that happens to be C, you then want to go down your list. Learning a new programming language and a new framework can be daunting. Not long ago, I tried to learn the Lift framework based on Scala language, and found it’s not that easy at all.
    If it’s a team project, you have to find one language that all or most people are comfortable with and at least one person are good at.
  2. Maturity of the framework and community. It’s important because most Web based frameworks are open sourced. Some of them are very well maintained and others are not. You want to build your application on the former. When you have questions, you have the community or a commercial company to get helps.
    With a mature framework, I expect it to be not only high quality, but also easy to learn. Having learned several frameworks, I can say their learning curves can differ significantly even with same MVC pattern.
  3. Richness of application. More users are not satisfied with HTML and static content now. They demand more dynamic and user friendly “RIA – Rich Internet Applications.” You can code your AJAX code for the client side using dojo, jQuery, etc. I found these AJAX with JavaScript is not fun at all. If you want some simple interaction, you can embed the JavaScript in your html page. For a large scale of AJAX, you will be better off with tools like Google Web Toolkit (GWT) which leverage Java as programming language and compile to JavaScript.
    The other good alternative is the Flex. You use ActionScript to code the logic and render the Web application with Flash plug-in, which is widely installed on most browsers except on iPad/iPhone. With the Flex AIR, you can compile the code to run as a standalone application. Compared with JavaScript, the Flash plugin is slightly less installed.
  4. Search engine friendliness. If you have a public Web site, the search engine integration is very important. If you use Flex or mostly AJAX, the chance for people to find your site from a search engine is pretty low if not zero. This may not be a problem for a private Web site that is open for members only, or a Web based management system for an enterprise.
  5. Scalability and performance. For most Web applications, it may not be a big concern at all. But for large scale applications, it could be a deciding factor.

In above discussion, we’ve made an assumption that you need a framework. This may not be true for really small applications. The one I developed for the contest in last year’s VMworld keynote was a very simple one without using any framework. The reason for that was it was so simple that using any framework would be an overkill.

Once again, there is no single best for every project. You have to decide with your problem context in mind.

  1. June 25th, 2010 at 01:16 | #1

    Maybe this is the most interesting:
    “This may not be true for really small applications. The one I developed … ”

    I suggest you still used _something_ while that development. At least some programming language? at least some web server? Please tell a bit more about this experience.

    Also – what exactly would be the bottle neck if you try to move to bigger applications?

  2. June 28th, 2010 at 16:40 | #2

    Hi Alex,
    Good question. I used Java as the programming language, Tomcat server as app server, and Apache for serving static content. Because the application is just for the VMworld keynote contest, we didn’t move it to bigger applications. Design could have been different if we had to move a big applications.

  3. July 9th, 2010 at 02:03 | #3

    Apparently between Java and Tomcat one could notice Servlet API. But did you use JSP?

  4. July 9th, 2010 at 02:31 | #4

    No JSP was used. Only HTML and Servlet.

  5. Shreyas Agnihotri
    March 30th, 2011 at 13:57 | #5

    Vaadin is a promising web framework which combines the goodness of java server-side technologies with desktop style programming. Nicely documented as well. Wonder if you got a chance to try that out? I am currently using it for small internal projects and it works wonderfully well.

  6. March 30th, 2011 at 14:09 | #6

    Thanks for sharing your experience with Vaadin. I haven’t got a chance to try it out yet. I think I will give it a try later.


  1. No trackbacks yet.