Live data from Hacker News

Ask HN: Updated recommendation on Rails versus Django?

news.ycombinator.com

1–10 of 39 posts

Ask HN: Updated recommendation on Rails versus Django?

#1
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!

Re: Ask HN: Updated recommendation on Rails versus Django?

#2
I am obviously biased, as I run a django development company. That said, Ill start with answering the drawbacks of Django,

1. Learning curve.

Not more than any other framework. Plus the Documentation is top notch. (The documentation was what sold me when I was evaluating.)

2. Smaller community

Definately true. But beyond a critical size, size of community does not matter. Django is well above that size. (Irc: any given time ~200 Devs. Google group: 14000+ Users )

3. Slower development cycle of the project itself?

Why? If you give more details, I can answer that.

4. (un)Availability of offshore resources

Definately less than Rails, but still not as bad as you would have thought. A very small list, http://uswaretech.com/blog/2009/03/web-development-companies...

Thats said, given the information you have, I your case I would choose Rails. Even if most of the work you are looking to offshore, your existing Rails experience would be a huge plus, helping you evaluate vendors, keep track.

Re: Ask HN: Updated recommendation on Rails versus Django?

#6
If you've borrowed money from family and friends to hire some developers in order to get something working as quickly as possible you should use whatever tools are going to help you make that happen. You probably don't want to be tinkering around with a new language and framework on top of having to work with developers you're unfamiliar with when you're dealing with a project of this importance. Use what you know. If you have reservations about Ruby and Rails start thinking about one of the other languages you've used to get important work done. You can always explore other options once you're making some money and have paid back your initial investors.

Personally, I'd be a little miffed if someone accepted my investment for a specific project and then was using that project as a testbed for some fad web framework for no good reason. These people have placed their trust and money with you. You have a responsibility to deliver now.

Re: Ask HN: Updated recommendation on Rails versus Django?

#7
You're thinking of putting aside 3 years of experience in Rails and Ruby in order to learn a new language + framework. On a project that you're taking friends and family funding for.

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.

Re: Ask HN: Updated recommendation on Rails versus Django?

#8
You can't go wrong with any of them. I think Django has a slight edge by having a slower release cycle. I find it a desirable quality in a development framework.

While the number of man-months spent developing Rails is an order of magnitude greater than that spent developing Django, is it really that much better for the bottom line?

Most of the early efforts spent on Rails were to make the infrastructure and community more mature. Even the brilliant DHH was a PHP developer before he started Rails.

On the other hand, Django benefited a lot from Python's maturity.

Re: Ask HN: Updated recommendation on Rails versus Django?

#9
Look it is just a web app framework. If you know Rails well, you should be able to pick up Django fast (and vice versa). Sure you'll get a few surprises in some edge cases, but hey, in the end it is just a framework that mediates between http requests to databases and generates web pages. How difficult would it be to grok either once you know the other?

fwiw, I've built apps with both, I prefer Django, But I wouldn't agonize about switching to Rails for a project or two if required. And no matter how much advice you get only you can decide which one suits you better and you can decide that only afer using both in serious projects.

Just start writing code.

Re: Ask HN: Updated recommendation on Rails versus Django?

#10
You'd be crazy not to use Rails. If your idea is really all that you say it is, chances are good that someone else has thought of it too. Maybe they are building it right now, maybe not. First-to-market is practically a sine qua non these days, and you're talking about spending the next three months getting up to speed on a foreign technology? If I were you I'd start banging that puppy out in Rails starting like, yesterday.
Post reply on HN