views:

101

answers:

3

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

Since we are ambitiously aiming to be big, scalability is important, and so are globalization features. Since we are starting out without funding, price/performance and cost of licences/hardware is important. We definitely want to bring AJAX well present in the web interface. But apart from these, there's no further criteria I can come up with.

I'm most experienced with C#/ASP.net, PHP and Java, in that order, but don't turn down other languages (Ruby, Python, Scala, etc.).

How can we determine from the jungle of frameworks the one that suits best our goal?

What other questions should we be asking ourselves?

Reference material: articles, book recommendations, websites, etc.?

+1  A: 

For me, the most important things to consider were:

  • Fantastic lead developers who I trust to keep working on the project.
  • Googling a question brings a lot of good answers.
  • Most importantly, I have to like the way the code flows.
  • Edit: Also they have to be anal about coding standards. If there is inconsistency, I get very annoyed.

Those 3 points brought me to Symfony. It is always using the latest cutting edge features of the latest PHP version. Symfony 2.0 is using namespaces before any other framework.

Two of your points were:

  • i18n - there is great support for it (helps that the company behind it is French, so i18n is a first class citizen).
  • Scales - Yahoo Answers and Vimeo use Symfony and contribute back code. If those guys can scale Symfony to 100 million users, you can too :)
Coronatus
I have to agree especially with your last point. If Yahoo adopts a framework, it's a pretty big notion as to it's quality.
alex
A: 

IMHO, for something that will have a lot of users, go for a compiled language.

If you don't try it, you will not know. So, I'd say do a small project in each of the frameworks you are seriously thinking about. I would prepare myself to do a lot of testing if it's something I'll be maintaining for some years. It's better to start off on the right foor than to get half way through a project only to realize you took the wrong path. There may be some requirements that end your search. For example, your servers' OS, a framework feature, or scalability. If you lay out your software plans and requirements, you probably will have very little left to choose from - unless your project really is quite generic or simple.

sims
"go for a compiled language" -- Why? Some of the most popular websites on the web are written in high-level languages. It shouldn't make that much of a difference unless you're doing heavy computation in the application.
musicfreak
Agree with musicfreak. Also, if you're using PHP, and need the speed requirements of something compiled, you can write a module for it in C.
alex
Yup @ alex's comment. I have an app that needs to apply an image algorithm (sobel) to hundreds of images. PHP took 10 seconds per image. I rewrote it in C and it worked so fast I haven't even needed to measure the time.
Coronatus
Which is why I said, go for a compiled language. The OP is asking about frameworks - not a blend of code.Rather than siting some popular sites, I suggest you actually do your own tests. You may not have the same computing resources.
sims
@sims - Oooooh, more than one programming language, let's all run and hide! /sarcasm. As for "may not have the same computing resources" -- Amazon EC2. 'Nuff said.
Coronatus
@Coronatus - I guess you love installing all those dependencies on a clients shared hosting account. Stuff like that is really fun! Oh you don't want your web app to portable and easy to install? That's so cool! How awesome! /sarcasm Ideally you like to have less dependencies. Of course the real point I was trying to make is to do tests yourself.
sims
A: 

It all depends on the type of project you will be developing. Are you building a web application or a heavy content website or something else?

You also mix up programming languages with frameworks. The frameworks for PHP that I know are: CakePHP, CodeIgnitor, Zend and Symfony. For an out-of-the-box heavy content website I would suggest Drupal or Expression Engine.

It seems you won't be developing yourself. In that case I would determine the cost and availability of programmers and how widely the framework is supported and by who it is backed. The Zend framework is backed by the guys behind PHP, while CodeIgnitor is backed by the guys behind Expression Engine. Drupal has professional support packages,...

bart