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.
Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.
What should be in the thought process to a decision?
- 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.
- 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.
- 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.
- 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.