4 ms·
Let's look at some metrics of maturity and community size. Django and Rails are almost the same age. Rails is only a year older, which doesn't mean much after
by jarrett 14y ago
Let's look at some metrics of maturity and community size.
Django and Rails are almost the same age. Rails is only a year older, which doesn't mean much after so many years have passed.
The numbers of Google search results for "Python Django" and "Ruby Rails" are on the same order of magnitude, with Rails having around 50% more. Likewise for "Rails site:github.com" and "Django site:github.com"
The differential is bigger on Stack Overflow, with Rails having about twice as many tagged questions. They're still on the same order of magnitude.
One could of course do a feature-by-feature comparison, but I don't find those particularly useful when looking at frameworks. That's because a framework is a long-term investment. You're not just buying into the current or upcoming version, but all future versions. (Unless you make the expensive choice to switch.) If one has a feature that turns out to be really useful, there's a very good chance the other will acquire that same feature soon enough. Especially considering the size of the Django and Rails communities.
Will Django 1.5 or Rails 4 will change the balance significantly? My guess is not. It's like an arms race: One side or the other may claim the advantage from time to time, but with plenty of smart people working on both, cross-pollination should ensure that they stay fairly comparable.
All that being said, I prefer Rails (largely due to Ruby) and am quite happy with it. Though if I were doing scientific computing, I'd take into account what bayesianhorse said.
It's also worth considering that the whole paradigm underlying Django and Rails, wherein you render a bunch of HTML with your choice of backend language, may not last forever. With the client side getting heavier over time, the advantages of sharing code across client and server may push the mainstream away from Ruby and Python. Or not. This isn't a prediction; more like a "what if."
- rednukleus 14y agoYou left out the differential in the availability of books. In my experience, Rails has a larger online community, but Python has more printed books. I think this is a product of the speed at which Rails develops - it is more likely that a Rails book will be outdated by the time it is finished than a Django book.
- IgorPartola 14y agoAlso jobs. The following are searches for "Ruby on Rails" and "Django" in New York, NY Ruby: - indeed.com - 507 - monster.com - 66 - dice.com - 96 Django: - indeed.com - 242 - monster.com - 30 - dice.com - 65 Edit: formatting Edit 2: Though you could argue that Ruby is mostly used as Ruby on Rails, while you could search for "Python" jobs if you have experience with Django. Edit 3: what is with the downvotes? If you want to learn a new framework whether you can get employment is something to consider.
- LeonidasXIV 14y ago> what is with the downvotes? If you want to learn a new framework whether you can get employment is something to consider. Consider maybe, but becoming an X developer is usually not a great idea, for just about any value of X. So, if you want to do Webdev, why not be proficient in both to maximize your chances?
- jarrett 14y agoWell, true, but we all must prioritize. Working time is limited. "Be proficient in both" is not necessarily practical for everyone. It may not be for the OP. Also, it's conceivable that if you split your time amongst different frameworks, you could be at a competitive disadvantage against someone who's more specialized. (Of course, the complete opposite is also conceivable, so don't take this as me advising people to study just one framework.)
- IgorPartola 14y agoI remember a few years ago looking at the same stats and seeing Rails be an order of magnitude larger. They seem to have equalized quite a bit since. From the point of view of becoming a great web app dev, yes learning as much as you can is great. From the point of view of investing in yourself given a limited amount of time, that may not be true. For example if you have 6 months where you can switch careers, learning Haskell might not be your best choice. OTOH PHP seems great, since it is used in plenty of places. These numbers do not mean that if you know X you will get a job. They simply tell show that there is some level of usage of these technologies in the industry. Try doing the same search for Scheme or Haskell or even Erlang. All great to learn and will make you a better professional, just not greatly popular in the wild.
- legutierr 14y ago> It's also worth considering that the whole paradigm underlying Django and Rails, wherein you render a bunch of HTML with your choice of backend language, may not last forever. With the client side getting heavier over time, the advantages of sharing code across client and server may push the mainstream away from Ruby and Python. Or not. This isn't a prediction; more like a "what if." From that perspective, one thing that Django has going for it is the Django REST Framework (http://django-rest-framework.org/ http://django-rest-framework.org/), which is pretty great. Of course, it's probably the case that Ruby has something similar.
- jarrett 14y agoYep! Rails has a lightweight, API-oriented flavor. But even without the HTML templates--even if you're just serving up JSON or XML or whatever--you're still stuck with one language on the client and another on the server. What I'm really curious about is whether the advantages of having a single language on both client and server will ultimately outweigh all other concerns for most web projects. I have no idea what the answer to that question is.