First of all, I know this has been asked to death here, but after searching a lot, the most recent post is more than a year old, and a lot has changed in these frameworks lately.<p>I'm a fairly experienced developer (Java, C#, Objective-C) and I want to try my luck with some webapps. I've used python for small things, but nothing that you wouldn't learn in a week, so basically, I'm new to python or ruby.<p>So, assuming I'm already a programmer and want to learn web programming with any of the above, which one would you recommend based on their functionalities and ease of learning?
Python will be more useful <i>if you decide to do something with the language other than ruby on rails</i>. People do all sorts of very powerful math with it as well (SPSS, SciPy, NumPy and various other things).<p>ROR is NOT for those who are willing to just get it done. You have to be the type who's willing to find the right way, or risk things blowing all to hell on you (Off the rails, as they call it).<p>I'd also say, the devs you hire between the two schools seem different. Can't explain it. Django seems to win it for me, both on a scalability ease and learning curve.<p>(I work with both as backends pretty daily, iOS developer).<p>Ruby feels cooler, but IMO, python lets you go home and see your kids faster.
Rails 3 is such a major improvement that I recommend it highly. The new modularity is enabling all kinds of interesting developments, like nesting apps within apps, authentications among multiple frameworks, and speed improvements.<p>Ruby 1.9.2 is also a major improvement in speed, and JRuby is icing on the cake especially for large scale projects, integration with legacy code, and detailed debugging.
You have a week of Python. Spend 2 days with Ruby. If you fall in love with Ruby, go with Rails. Otherwise, stick to Python. It's that simple. They're basically the same thing.
You won't get a non-biased answer here. Both of them are good and similar. If you are looking for something different, give node.js+express.js a try, it's good too though a bit less mature.
(Opinion warning, as in "this works for me", not an absolute truth)<p>I like Rails better because:<p>* I like Ruby more than Python (no "self" in methods, Ruby's list.map(func) vs Python's map(list, func), usable as a template language (ERB), open classes -> easy hacking)<p>* Rails `Books#has_one :publisher` vs Django `models.ForeignKey(Publisher)`<p>* Rails migrations + db reflection vs Django attr declarations `models.CharField(max_length=300)` (Yes I know about south, you still declare the attrs tough)<p>* Rails has Bundler <a href="http://gembundler.com/" rel="nofollow">http://gembundler.com/</a> , dunno about Py ...<p>* Django router <a href="http://docs.djangoproject.com/en/1.2/topics/http/urls/" rel="nofollow">http://docs.djangoproject.com/en/1.2/topics/http/urls/</a> vs Rails router <a href="http://guides.rubyonrails.org/routing.html" rel="nofollow">http://guides.rubyonrails.org/routing.html</a> (ie. declarative regexps vs executable well tought semantics)<p>* rails erb (haml etc) views vs django's-template-language because python can't do templates because of the indenting<p>* the list goes on but I'm bored<p>Ruby is beter at web stuff than Python.<p>Python has more science stuff (NumPy etc).<p>So I vote Ruby on Rails
<p><pre><code> the most recent post is more than a year old
</code></pre>
It gets asked every month or so, the last time I remember was just last month: <a href="http://news.ycombinator.com/item?id=1830063" rel="nofollow">http://news.ycombinator.com/item?id=1830063</a><p>And I'm going to refer to my comment from that discussion: <a href="http://news.ycombinator.com/item?id=1830895" rel="nofollow">http://news.ycombinator.com/item?id=1830895</a>
Write this applications in both languages:<p>- a url shortener.<p>- a easy blog system.<p>- a naive twitter.<p>Pick whatever feels more natural to you. If you wet stuck in any of this applications, you can drop me a line, I will try to help you.
Python vs Ruby - Both are great. I tried ruby first for a week or so and then move to python; I love python simplicity. According to my learning experience you can learn python faster then any other language (I am a ASP.NET/C# developer in my day job.)<p>Django vs Rails - I don't have any experience with Rails because you must know ruby first. Django is a natural choice for me because of python. Till now it seems good to me (around a month experience). It is seem not so cool in comparison to Rails but its good (I also know little bit of ASP.NET MVC).<p>Note: I am not an expert in both language/framework, so you can ignore my suggestions.
The best way to pick a framework is the same as the best way to pick anything-- make a simple app like a blog or a forum with both frameworks and decide from there which one you like better.
I chose Django because I love working with Python, and it still can provide a lot of value without the framework. Django is also less cumbersome when you first build a project (a handful of files vs multiple directories and files form rails.) Django also provides a lot of useful stuff out of the box -- like an admin interface.<p>Besides that, everything I've seen built in RoR can be built with Django, and vice-versa. The frameworks and the languages are pretty similar, so it's mostly a matter of taste.
(opinion warning)<p>ruby is more nice to the programmer. python has more corporate backing. django is a pain-in-the-ass compared to rails, pylons is better but still not the collection of power tools that is rails. i feel the python community is tail chasing the ruby community now-a-days. catching up will be hard as the python language misses the "principle of least supprise" that is a guiding principle for ruby. python (like c++) managed to supprise me after year of coding with it.
I like the python community better than the ruby one. So I ended up going with python.<p>That said, I really like Pylons. I wish I could find more people who use it. It is one of those frameworks that gets more powerful and makes things easier as your webapp gets more and more complex. This is opposed to rails or django where if you didn't design it at the get go and try to bolt it on you tend to be fighting the framework.
I use rails, I can only comment on pylons and turbogears from around 2006 when I gave up on it. I gave up on both turbogears and pylons due to 1. no community and 2. nearly no updates. Rails has a huge community, lots of plugins, etc as does Ruby. As for Ruby itself the language just meshes with my way of thinking if Python does that for you then go for Django
I'm happy using Ruby and Python and have built sites with Rails and Django in the past. These days I mostly use Flask (sorta like Sinatra in Python) as its lightweight and has templates that don't drive me insane (sorry Django). For a large app with lots of models and mixed developers I would likely choose Rails.
I would personally say Ruby. But then again; given a longer answer I would say the same thing I say about camera brands. Pick both up, which feels 'right' to you?<p>Ruby and Python are both great languages. I prefer Ruby as I see it as the current front runner.