What do you guys think, is it a good idea to write a full web-app in Python+Django? Most people seem to be using Ruby (on Rails) these days, but I just started to learn Python, and I like it quite a lot. I've seen some apps written in Python, they seemed quite cool, but I wonder what the limitations are.
Full disclosure: I'm a django developer and have never written an app in rails.<p>People like to say that python+django is equivalent to ruby+rails. I largely agree, but that's only a first order approximation.<p>The rails community is larger than the django community. This means that whatever you are trying to do, you are more likely to find someone who has done it before in the rails community (along with the discussion, tools). This also means that the power tools for web-apps will be very good and plentiful. Due to that, rails > django. (Heroku is an example of this -- there is no equivalent for django that is so well established as being awesome). However...<p>The python community is larger and more diverse than the ruby community. This means that if you deviate from the usual track, there will still be a community to support you.<p>Python is popularly used in a variety of fields with very different needs. This leads to a very diverse ecosystem in python, both in terms of areas of specialization for developers and tools available. python > ruby. This makes me prefer python+django.
Any sufficiently complex web app eventually outgrows its framework. Frameworks are a really useful tool to jump-start a project, but eventually you'll be writing (and re-writing) things from scratch, be it for reasons of flexibility, performance or maintainability.<p>On that basis, I think you're much better off choosing a framework based on the underlying language rather than vice-versa. If you're happy with Python, pick a Python framework.
I use Django and Python for a lot of stuff. I have used rails in the past, but not for a long time. I prefer python to ruby, and that's ultimately what made me switch (as I write non-web stuff in Python).<p>Perhaps the two biggest differences between Django and Rails are where you save time. With Rails you get scaffolding, so you have CRUD functions for everything more or less straight off the bat.<p>With Django you get an admin interface which is great if you want a backend, but you still have to write your own frontend pages.<p>Rails has built in Ajax and Schema migration. Django has external projects for it.<p>In some respects Django is a bit like Arch Linux and Rails is more like Ubuntu. If you like your frameworks to have everything bundled in and like Ruby then Rails is better for you. If you like things to be the way you want or you prefer python, consider Django and Pylons (and web.py).
I was first a PHP developer (I still can be), but I'm working with python+django for 2 years now.
The reason why I began to user django is the time-winning.
In my opinion it's faster to make a webapp in python+django than PHP+(Kohana, Codigniter, Zend)<p>And what yuvadam sais: Django and Rails are pretty much equivalent.
You can't go wrong with either. And Django isn't the only Python web framework out there (Pylons, web.py, Google App Engine). Nor is Rails the only Ruby web framework (Sinatra is nice).<p>Both can be made to cleanly scale for whatever world-dominating project you have in mind.
I love Django to bits - this is the app I written in Django <a href="http://beepl.com/jan" rel="nofollow">http://beepl.com/jan</a> Hoping to go public in March this year..