views:

1919

answers:

7

I have to develop a site which has to accomodate around 2000 users a day and speed is a criterion for it. Moreover, the site is a user oriented one where the user will be able to log in and check his profile, register for specific events he/she wants to participate in. The site is to be hosted on a VPS server.Although I have pretty good experience with python and PHP but I have no idea how to use either of the framework. We have plenty of time to experiment and learn one of the above frameworks.Could you please specify which one would be preferred for such a scenario considering speed, features, and security of the site.

Thanks, niting

A: 

CodeIgniter is a great PHP framework that is fast and has excellent documentation. Start reading through their user guide and it will give you a good idea how to work with the framework.

Justin Ethier
+14  A: 

This is a very subjective question but personally I'd recommend Django. Python is a very nice language to use and the Django framework is small, easy to use, well documented and also has a pretty active community.

This choice was made partly because of my dislike for PHP though, so take the recommendation with a pinch of salt.

Simon
+1, but IMHO i this days are more documentation for php that python. But, if you know this risk, go ahead like me and the others developpers :P
Agusti-N
+1  A: 

Most of the frameworks out there nowadays are fast enough to serve whatever needs you will have. It really depends on in which environment you feel most comfortable. Though there are nuances here and there, MVC frameworks share a lot of the same principles, so whichever you choose to use is really a matter of which you most enjoy using.

So, if you like Python more, there's your answer. Use a Python framework, and Django is the best. If you like PHP more (which I personally don't), you've got some more decisions to make. But any of the PHP frameworks are fine. They really are. Just pick one that looks nice with comprehensive documentation and get to work.

Matchu
A: 

Extending Matchu:

Or, -If you like PHP more- its time to learn/growup about other things like Python. Its not hard to learn, and when you get started it gets very enjoyable.

Many people has done the PHPtoPython/Django port, like Mozilla, Netgeo, Nasa, TheOnion, etc.

panchicore
+2  A: 

I've worked with CakePHP and Django and I really recommend Django. I don't know too much about CodeIgniter, but I remember ruling it out when I was evaluating frameworks myself about a year ago. CakePHP seemed much more developed at the time.

First of all, the Django community is much bigger and has spent a lot of time focusing on reusable apps. This means that you get a lot of functionality for free. Pair this with the django admin, and you have a lot of things already done for you. I haven't kept up with the PHP frameworks much, but I'm pretty sure Django is also more developed.

This is more of a personal thing, but I just like Python over PHP. Compare the way models are done in CakePHP and Django: http://book.cakephp.org/view/67/Understanding-Models, http://docs.djangoproject.com/en/dev/topics/db/models/#topics-db-models. The python is clearly more readable.

Keep in mind that Django gives you an awesome ORM and builds your schema for you, i.e. you never have to touch the database if you don't want to. With the PHP frameworks, you have to do your own db design, which just slows me down at this point. You can always go in and add indexes for speed later.

This is probably the most biased, but if you are starting a new application - seriously - just stick with Django or Ruby on Rails. There is a reason everyone talks about them and they have the biggest communities and best developers behind them.

You can also check out Pinax for a lot of Django goodies.

Casey Stark
A: 

If for the PHP part I would choose CodeIgniter - it doesn't get too much into your way. But it doesn't have any code/view/model generators out of the box, you need to type a bit.

But languages other than PHP appear to be more sexy.

pettersolberg
A: 

If you have plenty of time for development and use PHP then i suggest CodeIgniter for its supper simple and lightweight. But CI is not really a candidate for site with rich features, as you will have to write too many code and I don't think anyone can write code and optimize code for performance at the same time and believe that he does the right thing at first place. Ironically CI doesn't have authentication/authorization in its core.

Yii could be best choise for speed. Someone don't believe the speed chart on its official site but those are who don't even try to use it. Use APC cache and you are able to utilize Yii's ActiveRecord for DB manipulation tasks with speed almost equal to pure PDO code.

Yii is much more better for a rich features site considering how active its community is. It definitely beat CI on security factor with RBAC permission scheme, control filters and access rules.

Yii starts getting more developers as there are 4 - 5 attempt to create Yii based sandboxes/CMS. FlexicaCMS could be the outstanding and very promising one that worth to check out.

Pokamy