You're comparing a framework to a language.<p>Rails vs Django vs Cake vs CodeIgniter vs ....<p>As someone who just went through this selection process for a large scale production site...<p>Rails. Rapid development, deployment. Serious effort to scale. Needs a lot of metal. Database heavy applications require a lot of tooling/optimizing, to the point that Rail's features for autogen become defeatist at a certain point.<p>Django. Rapid development, awesome performance, stuck with the Django way or the highway. Once you get deep into development, the benefit of the rapid development can become a hindrance. See notes above about Rails.<p>PHP w/ MVC Framework. Rapid development, frameworks not designed for scale, most frameworks designed for a language other than PHP (most seem to think they're being written for Java). Easiest to scale out of the three I've mentioned, not hard to make the framework bend to your needs.<p>.NET, if you want to pay licensing fees that could sink your business if you don't have the budget. <p>That said, we chose PHP with PostgreSQL. We rolled our own framework taking design cues from Rails, ASP.NET and Django. Foremost built for scale, ease of development second priority. We run weekly performance comparison with other PHP frameworks, and are able to beat them all by 50% or better; but that's because of a design choice for the framework. We chose performance over ease. I'd much rather spend the upfront effort to sleep well at night once launched. Heavy use of memcache, strict rules regarding use of session, cache at every level (database calls, html fragments, models). Custom templating for views that incorporates reuse and encapulation principles via ASP.NET/JSP style tag libraries/controls.<p>That said, PHP sucks. Horrible hackish language. But it's easy and sleazy, scales easily. Scaling the database is a separate issue. MySQL possibly better for this, but PostgreSQL is a better RDBMS on many levels. Most frameworks for PHP suck because most of the people designing them aren't disciplined in other languages and make horrible assumptions about best practices.<p>Flame away.
Thanks for all the feedback...I just wanted to see what people thought.<p>At work I'm attempting to scale a mix of procedural php(60%) and object oriented php(40%) for a temporary 'system'. While I build a new one from scratch; I have complete freedom as to what the new system is written in and I was feeling that Ruby on Rails would be a good starting point because of its 'rapid development'.<p>The 'busy' season for my company is less than 2 months away and there are alot things that need to be done:
-Restructure DB
-Handle Web Service Consumption(WSDL with SOAP binding) on multiple occasions
-Deploy our own web service for Sales through 'affiliates'
-Have be able to be extended in the future by programmers other than myself<p>I am kind of stuck because with PHP it's ridiculously easy to consume webservices via nusoap(os library/class), but then I lose the ORM, but I have the freedom of customizing my DB interaction.<p>Then if I choose the ORM(rails) I have to deal with a slightly complicated webservice communication procedure. Plus there is a high probability that I will have to customize the db interaction so much that it may defeat the purpose in the first place.<p>So I'm leaning towards writing my own PHP+MySQL code from scratch, but I'm all alone so writing it wouldn't be something that seems accomplish-able in 3 months. Ruby on rails seems fast enough, but that web service thing seems like a real PAIN. I'm stuck between a rock and a hard place.<p>Anyway, Thanks for everyones feedback!
Python + Postgres, or ColdFusion + Postgres.
Failing that, I'd choose PHP if there's a chance anyone besides me will ever touch the project, or Ruby if its gonna be me all the way. Just because good php coders are easier to come by than Ruby ones, and because you've added "Scaling" as an item.
I'm saying Python and Ruby and not Django/Pylons/Rails because I won't pick a framework be default - only if it 100% fitted a particular project. Otherwise I'd rather code it myself from scratch.
Harel
Of those choices? Rails, hands down, but don't limit yourself. There are a lot of options out there. I find it interesting that you're comparing Ruby/Rails and PHP - they don't have much in common. It's also noteworthy that Ruby works pretty well without Rails. RHTML works a lot like PHP, but with Ruby as the language.<p>What, exactly are you trying to do with it?
Depends on what you mean by webservice - SOAP or REST.
Rails works great for REST, but not for SOAP.
For DB interaction, I really like ActiveRecord. Don't think that PHP can offer any serious ORM alternative.
As for scaling, well, Rails has just a few real world test cases, whereas PHP has many.
Depends on what you mean by webservice - SOAP or REST.
Rails works great for REST, but not for SOAP.
For DB interaction, I really like ActiveRecord. Don't think that PHP can offer any serious ORM alternative.
As for scaling, well, Rails has just a few real world test cases, whereas PHP has many.