Giving up PHP. ...Can't decide between Rails & Django

Hi folks,

I'm a long-term (8 years) PHP developer who's recently started dabbling with Ruby & Python. I REALLY like what I've seen from both frameworks and quite frankly, am a little miffed I didn't jump on the bandwagon earlier.

I'm trying to make a decision between Rails & Django, but I'm struggling to get out of stalemate. If anyone can offer advice (which in this list I'm guessing means persuade me to jump on Rails), I'd be very appreciative. Here are my current thoughts:

WHAT I LIKE ABOUT RAILS * I prefer the syntax * There seems to be a lot more work for rails...with better pay * "Agile Rails" is a damn fantastic book * Seems to be a little simpler * Seems to have a greater depth of features * Better AJAX integration from what I've seen

WHAT I LIKE ABOUT DJANGO * I LOVE django-admin . For the sort of work I do, which is a lot of customised cart/cms stuff, this would save a lot of time. * Code reusability seems superior. Opinions? * Better perfomance? (Is this still valid? Ruby had a reputation for being a little sluggish when I looked at it 5 years ago) * I've half-built a shopping cart app in Django that I'm happy with. A quick dabble in Rails made this task seem a little more time- consuming, and I'm not comfortable with drop-in solutions

If anyone has any advice that may help tilt me I'd be most appreciative. The big one is auto-generated admin forms, especially things such as auto-javascripted many-to-many fields, inline forms (eg input fields for one foreign table inside that of another).

Obviously I expect some rails-tilted opinions here, but if anyone with experience in both can offer a balanced perspective on pros-n-cons of each it would be a big help.

I spent 12 years with PHP. I spent a good solid year with Django at a startup a few years back. I have been working with Rails for over 5 years.

I prefer Rails. I get much more done more quickly, mostly because I write less code and have more fun doing it. The Django admin will probably let you down eventually when you encounter something extremely complex, it did me. It works great for simple stuff, but then so do the many Rails scaffolding techniques. I prefer to just write the code and skip the auto-generated drop-ins.

Ruby is more meta- than Python in my experience. As a scripting language this lets you be more abstract and you end up writing less code that's more re-usable.

Yeah Ruby used to be slower than Python, might still be for all I know, but if your margin is that tight and your hardware that slim, you should probably be using C instead of a scripting language.

I didn't hate Python or Django, but I really couldn't imagine building a new website with anything other than Rails at this point.

Good luck.