Hi guys.
I realize this post is an infamous "versus" question, and undoubtedly redundant with older posts. However, most of the information I find on Rails versus Django is out of date and based on much older versions of the frameworks, so please forgive me.
First and foremost...I'm a Rails guy. I came to it three years ago and really enjoyed a lot of what it brought to the table. I'm not solely a Ruby guy...I have around 11 years of total experience, including Java, C/C++, Perl, Tcl, (some) Python, and more.
Anyway, I have an idea I believe will take over the world. I've already convinced a few folks it will as well and have friends and family funding to take on some offshore developers and get it in beta as quickly as possible.
Now, however, I am left with the decision of what tech to use. While I've really enjoyed Ruby...I'm growing tired of the magic, and the abuse of open classes. It's very nice when you need to inject some behavior quickly, but it can become a real pain when you have to maintain your project, or any of the plugins it depends on. I personally prefer Ruby over Python (largely because of blocks), but I envy the clarity-first attitude in the Python community. Given this frustration, I'm seriously considering a deep-dive into Django and using it for this project.
The pluses I see on the Rails side are:
1. Size of community (which, given some of this "community" includes PHP refugees, is not necessarily a plus)
2. My familiarity and experience
3. Number of companies using it and striving to improve it
4. Availability of offshore resources
Drawbacks of Rails include:
1. Too much magic
2. Documentation continues to be awful in places
3. Inconsistent API
4. Did I mention magic?
The (perceived) pluses on the Django side:
1. Clarity
2. Performance...I believe Unladen Swallow will really change the Python landscape and give it a competitive advantage
3. Google's support of the language itself (see #2)
Drawbacks of Django:
1. Learning curve
2. Smaller community
3. Slower development cycle of the project itself?
4. (un)Availability of offshore resources
So, this is my thought process so far. I'm pretty comfortable I could come up to speed quickly on Django, and I have the basics of Python still in my memory somewhere. But I wanted to get your opinions as I really respect the vision and experience of a lot of the folks I read on here.
I appreciate your help. I really think this idea will take off, so it's very important to me to make the right technology decision.
And saying to choose Rails simply because I have experience there just doesn't sound right. If that were the case, I'd still be using Perl or C.
Thank you!
While it's easy to pick up a language or framework, you only pick up best practices by constant usage and community involvement. How are you going to assess the Python and Django competency of your hires if you're that new to a language? How will you make competent estimates for a technology unfamiliar to you?
Both frameworks have been successfully used to rapidly prototype web apps. When you say "make the right technology decision", that is always defined by context. And in your context you have 3 years of experience in one, and 0 in the other. Unless the new technology is demonstrably far superior to the incumbent one, you'll probably be better served by going with what you know.
Note that my answer would be the same if Rails and Django were reversed in your post.