views:

114

answers:

6

I am still new to web framework and I am thinking of choosing either Ruby on Rails or Django. Which one should I go for as a beginner?

+1  A: 

Both are GREAT!! by I prefer Rails because of:

  • MVC! Model View Controller.
  • The wide community of Rails.
  • Many big projects like Twitter, 37signals products are built on Ruby on Rails.
  • The BIG and the HUGE libraries and gems for Rails/Ruby.

and many other reasons. Well, you have to see this: Rails Django-Comparison and rails-vs-django

Amr

amrnt
I also like Rails, but I believe Twitter no longer runs on Rails.
Karl
Twitter does, but they replaced some areas with Scala (or something) - RoR was not ditched.
Finglas
But Django *does* have MVC! They just use different names: Model = Model, View = Template, Controller = View. So its technically an MTC but its really the same thing.
indieinvader
The front-end of Twitter is still Rails, but the messaging queue is written in Scala: http://www.scala-lang.org/node/1008. Rails and Django both have pretty extensive, great communities, they are both (more or less) MVC, and they both have huge numbers of 3rd-party libraries you can choose from.
mazelife
+2  A: 

I have no experience in using RoR but 3 years of knowledge about Django. A very huge advantage of Django is its very good Documentation.

Especially for a beginner this might be the most important fact. Even most of the third party apps (pluggable modules/plugins) for django are document very good and are easy to use.

On the other hand Django code is in IMO more readable since its Python code - Ruby code tends to get messed up a bit faster.

Gregor Müllegger
It's true: the Django docs are about as good as it gets for any product/project I've ever seen -- open source or commercial. Even more astounding is the very high level of in-source documentation and consistency of naming. When I can't figure out something from the docs (a rare situation) I can go to the source and almost always find what I'm looking for including (gasp!) meaningful comments.
Peter Rowell
A: 

This is a little subjective since it can depend in no small part on your general programming background. Do you know Python? Do you know Ruby? In general, you're best off choosing the framework for a language you already know since then you're only learning one new thing instead of two.

If you don't know either, you're maybe a little better off with Ruby on Rails due to its greater mind-share in the general development community currently. This will make it easier to find help and example code online.

Ophidian
+1  A: 

If you don't know either, you're maybe a little better off with Ruby on Rails...

If you are experienced with programming at all, try this: I have found that almost all of my developer colleagues decide on RoR or Django based on the language. Both are a quick pick-up, and more often than not, one of the two languages will just "speak" to you.

I'm somewhat OCD with my code (and life) and for me, Python was a better fit. I felt calm while writing it, and more importantly, calm while reading it. However, the guy that sits next to me - and I have a mountain of respect for - found Ruby to be more appealing.

So my suggestion? If you already know how to write code and the meaning of Object Oriented, spend a day with each language. Almost invariably, you'll respect one, and fall in love with the other.

THEN pick a framework :)

Dave Martorana
A: 

I'll assuming you don't know Ruby or Python already, since that would be the number one determinate of which way to go. Having developed both Rails and Django projects, my take is that you probably can't go wrong with either, but my feeling is that Django is better oriented towards building sites for publishing, whereas Ruby is more oriented towards webapps. This is not to say that you can't build a great web app in Django build an awesome CMS in Rails, of course. But take a look at most of the high profile users of Django: NYTimes, The Guardian, Washington Post, LA Times, The Onion, AV Club, Everyblock. Those folks are more oriented towards publishing. Meanwhile, things like GitHub, BaseCamp and Twitter (partially) run Rails. So ask yourself what type of sites you are likely to be building and go from there. But really, like other posters have recommended, there's no reason no to spend a few days playing around with both and seeing what feels like a better fit.

mazelife
A: 

Both are good. From experience, though, you'll get better and more up-to-date documentation most of the time for both Python and Django.

hcalves