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.

Bothered by SLOW Web UI to manage vSphere? Want to manage ALL your VMware vCenters, AWS, Azure, Openstack, container behind a SINGLE pane of glass? Want to search, analyze, report, visualize VMs, hosts, networks, datastores, events as easily as Google the Web? Find out more about vSearch 3.0: the search engine for all your private and public clouds.

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.

This entry was posted in Software Development and tagged , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

6 Comments

  1. Posted June 25, 2010 at 1:16 am | Permalink

    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. Posted June 28, 2010 at 4:40 pm | Permalink

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

  3. Posted July 9, 2010 at 2:03 am | Permalink

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

  4. Posted July 9, 2010 at 2:31 am | Permalink

    No JSP was used. Only HTML and Servlet.

  5. Shreyas Agnihotri
    Posted March 30, 2011 at 1:57 pm | Permalink

    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. Posted March 30, 2011 at 2:09 pm | Permalink

    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.

    -Steve

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  • NEED HELP?


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.