Web frameworks have become a powerful tool allowing programmers to take an idea for the next great web application and get it online and in front of users quickly. Two popular web frameworks are Ruby on Rails and Django. Both frameworks are open source, and use the model-view-controller architectural pattern to simplify the creation of web applications. Both frameworks have risen in popularity, particularly with startups, but no clear winner has emerged. For those looking to enter the world of web development, the choice of framework can be an important technical decision.
Rails vs Django is also Ruby vs Python
Much of the debate between Rails versus Django comes down to the underlying language for each: Ruby on Rails versus Python for Django. The Ruby versus Python debate has continued ad infinitum, and a number of good opinions on the topic can be found here and here. If you are new to both languages, read some of the many, many discussions, but realize that both languages are powerful and quite enjoyable to use. Both are very accessible languages, and you could practically get started using either language quite quickly. Try some simple coding on each, to get a feel for which syntax works best for you, programming languages can be quite a personal decision.
If you are already familiar with one language over the other, the practical next step is to use the corresponding framework. Time spent acquainting yourself with the fundamentals of the other language could be spent building higher level features. The reality is that Django and Rails are both powerful frameworks that remove much of the agony of web development. The main asset of both is accessibility and speed, and as a developer, you should leverage that asset and start using the framework to develop and rapidly iterate.
Both Frameworks Provide Powerful Features
A number of discussions of Rails vs Django delve into specific features. They often cite Rails as being more abstracted, hiding much of the implementation. This can make rails more beginner friendly, allowing the programmer to focus on features and design rather than the "under the covers" aspects of web development. Django conversely, appears to focus more on the fundamentals of the code and transparency, appealing to programmers who want more control. In reality, the feature debate is far more complex. Django can work for beginners because it has a far more robust documentation set and one of the best open source communities going. Ruby on Rails can provide control, with many powerful libraries.
Get to Building
The main purpose of web frameworks is getting web applications online quickly and easily. To do this, a user gives up some level of flexibility. This tradeoff may occur in specific ways between Django and Rails, but tends to manifest in both in the implementation of specialized features, or at scale. Both frameworks work perfectly well as a rapid prototyping environment, and also work well for small teams looking to implement a fairly standard feature set over the web.
As a starting point, neither Rails nor Django will constrain you such that you can't program your way out if issues arise later. In fact almost any technology choice can potentially create unforeseen issues at scale, or in the implementation of specific features. The key point is that both frameworks allow you to build things immediately, and build quickly. By nature then, they lend themselves to easy testing. Try out both, and get started; a personal preference will soon emerge, at which point you should pick it, and stick with it. The time you save debating technical decisions can be used building great features and getting your creation online.