Django and Ruby On Rails
I’m not sure if this is a good litmus test for popularity contests, but when I mention Django to web application developers, almost no one has heard of it. When I mention Ruby On Rails (RoR), almost everyone has heard of it, including those who haven’t heard of Django. I wonder what it is about RoR that has made it a household name (among developers).In terms of features and productivity, I can’t say if RoR is worse or better than Django. From various articles and comparisons, it seems Django would have the edge. Maybe I can talk about that later. So let’s just say that the two frameworks, including the languages behind them, are close in terms of functionality. That is, there is no significant increase in benefit. And there are fantastic communities and documentation to help if you get stuck. Like anything, each framework has its strengths and weaknesses.If this is the case, what other reasons can explain RoR’s greater popularity? For one, I think that 37Signals (the creators of RoR) is good at marketing, PR, and best of all, explaining why they chose their approach. They speak at conferences and hold workshops to share their knowledge and (usually) promote RoR. In defense of Django, the Django community does their share of speaking. Just not to the same extent.Perhaps the biggest reason for RoR’s popularity is that multiple semi-popular, user-centered, and professional applications have been built on the technology. The list includes 37Signals’ productivity applications, 43Things, Penny Arcade, Odeo, A List Apart, YubNub, and Corkd. Not to take away anything from the Django developers, the current set of Django powered applications, or my own efforts (blondela.com and prrice.com), but it seems like Django is missing the killer stand-alone application that users are passionate about. The one that Django developers can say is profitable or scales to millions of hits per day. Or perhaps Django does have enough applications to warrant some attention, including Lawrence Journal World, Naples Daily News, and Adrian’s (lead developer for Django) Chicago Crime. And to push it over the top, Django just needs a few more applications to add to its portfolio.This discussion is a bit fruitless however. From a developer’s perspective, who cares if one framework is more popular? Pick the one that benefits you the most or that offers the path of least resistance. The path of least resistance (especially for lazy engineers) seems to be a good method for deciding the best framework/technology. And if we could measure “resistance,” maybe this would be a better metric than popularity.
on August 11th, 2006 at 7:36 am
Note that we’re intentionally holding off on marketing before we hit version 1.0. Once we do that, the marketing will be orgasmic.
on August 11th, 2006 at 8:00 am
Marketing is the difference, for sure. Adrian has said before that he’s got some great marketing ideas for Django, but I think the idea is to wait until 1.0 is out for the big push.
I think you’re right, though, that a killer transaction-based Django app would go a long way towards giving it the perception of being in the same place as Rails. Most of the really great examples of Django apps out there are publishing-oriented (which makes sense, given its newspaper heritage). These are great apps, but it has led, I believe, to a bit of a perception that Django is for publishing, and Rails is for transactional apps. To you and me, this is clearly an inaccurate perception — but I can totally see where the outside public might have gotten the idea.
Tabloo is probably the closest thing Django has to this kind of “killer app,” but from what I can tell, it’s not really taking off, popularity wise.
on August 12th, 2006 at 3:10 am
Thanks for the friendly reminder that Django has not yet made it to 1.0. Because Django is so useful as is, it hadn’t crossed my mind that version 0.95 (aka magic-removal) was only recently released.
Can’t wait to see the Django community get its marketing mojo on. Maybe I should participate more in the community and then I’d know that marketing is on hold.
on August 13th, 2006 at 8:39 pm
I think that there’s two main reasons to this, and you’ve hit one of them on the head. It’s a major problem (in terms of popularity) that Django doesn’t have an immensely popular “application.” When developers visit an online magazine or news site, rarely do they think “Wow, I wonder what’s powering this site?” However, when someone uses an application like Backpack or 43things, they feel compelled to ask this question.
The second point that I believe drives Rails’ popularity so much is the amount of immensely passionate and vocal developers that have latched on to the Rails core. It’s not to say that Django doesn’t have this, but more that the Rails’ crew are just louder. I remember the thing that really got me hooked on Rails was watching David explain his reasonings for building the framework to a group of people who had no idea what Rails was.
on August 14th, 2006 at 6:17 am
Adrian, Jeff — I don’t know if holding off marketing ’til 1.0 is a great idea, but since I have never used Django, I don’t know what features needs to be polished first.
RoR started generating serious buzz around 0.8, IIRC. And I can’t see that it’s hurt them much to start marketing before 1.0. So maybe you should consider ramping up the marketing as soon as you can.
on August 15th, 2006 at 10:01 pm
[…] I’m not sure how my previous article got noticed, but while it’s getting some attention, now is a good time to give a big thanks to the Django community for creating a framework that is not frustrating, and dare I say it, fun to use. Kudos to the people who started it: Adrian, Simon, Jacob, and Wilson. And to all those who have contributed. […]