
Rails versus Django - twampss
http://superjared.com/entry/rails-versus-django/
======
alabut
Oh christ on a bike, not another one of these. It's not even well-written - I
wish I could downvote this thing just for the giant chunk of writing
_completely in italics_.

Here's my problem with all of these articles with the rails _versus_ django
battle-to-find-the-one-right-answer approach rather than rails _and_ django
different-arrows-in-the-quiver: they always seem to focus way down at too
small a level of detail in their comparisons. I understand that being a
programmer means being down in the trenches with the framework every day, so
the temptation is to assume the important differences are down at that
altitude as well and that's where the focus of any comparison should be. But
it's totally wrong - they're just _different_ at that level (not necessarily
better or worse) and the important difference is at the higher level of what
these tools are good at. And for that, you can look to where they came from to
see their overall focus:

Rails -> came from building a web _app_ (Basecamp) -> great for building apps,
has to be rejiggered a bit for web _sites_

Django -> came from building a web _site_ (several newspaper sites in
Lawrence, Kansas) -> great for building sites, has to be rejiggered a bit for
web _apps_

The idea for this has been building in my head for a while now and was
solidified when I saw the creators of each framework say basically the same
thing in a video showdown a few years back:

<http://www.djangoproject.com/snakesandrubies/>

~~~
snprbob86
The best summary I've heard is:

Rails -> If you know Ruby

Django -> If you know Python

I've been using Django for a while now, but the more we evolve our site, the
less of Django we are using. Luckily, the separation of concerns thing really
does work and we are able to replace components as we need to.

~~~
alabut
Just in my own experiences at work and with friends, I've found the opposite
to be true - people pick up the language to use the framework and haven't met
anyone that knew either language before choosing which one to use. Plus both
frameworks (especially Rails) have a history of encouraging people to take
that route as well.

That also partly explains why I started a Ruby tutorial ages ago and never got
around to finishing the series, even though I still get pretty good
googlejuice from it:

[http://alabut.com/nonsense/2005/03/ruby-self-tutorial-
day-1-...](http://alabut.com/nonsense/2005/03/ruby-self-tutorial-
day-1-of-21-getting.html)

~~~
habibur
So true.

------
njharman
> Python doesn't allow monkey-patching;

Do I misundetstand what monkey-patching means? Because other than a few types
such as int & str and cmodules(I believe) I can patch my monkey with python
all I want.

~~~
hbien
Maybe he meant the community frowns on monkey-patching.

------
mpk
Oh, OK, I'll bite.

When choosing a framework, I want it to be community supported. This means
it's under active development and open to change.

When programming an app against a framework, I want it to simply not break
when updating to a point release.

I'm not really interested in a comparison of app implementation details of
Rails versus Django. What I'd like to know is the crap I'm going to have to
deal with moving from x.2 to x.3. Or y2.3 to y3.0. And how does the
plugin/addin/module structure enforce limits and consistency?

And while we're at it, someone come up with more interesting posts than Rails
versus Django. Can we get some well written comparisons of, say, a Clojure-
framework for apps versus a C# one or a server-side JavaScript one?

------
farhanahmad
They are both good. What matters is your background, requirements, and
timelines. Checkout my post for a detailed article on what to look for in a
framework.

<http://blog.shopfiber.com/?p=90>

------
johnrob
I am in the Django camp, but I am still interested in using ActiveMerchant.
Anyone have ideas what the best way to use both would be?

Perhaps one approach would be running a Ruby instance internally, dedicated to
exposing ActiveMerchant functionality.

~~~
smokinn
What about compiling ActiveMerchant to Python?

<http://github.com/why/unholy/tree/master>

~~~
sachinag
Oh God yes. Please, please, please.

------
axiom
Python has a numpy and matplotlib, as well as really easy binding with boost
(which gives you ublas etc.) This allows you to write really nice optimized
numerical algorithms that plug right in. That's what sold me for Django over
Rails.

~~~
scott_s
That's neat, but really, do you do heavy matrix and vector computations from
your web application?

~~~
axiom
Oh I didn't mean to imply it's a common need. But yes I do - in my case it
really makes the difference between it being feasible and not-feasible.

~~~
scott_s
Then I'm very curious what your web application is.

------
jamesbritt
The world of Web development is oh so much larger if you just look around a
bit.

------
joe_the_user
I haven't used Django. Rails is both great and seriously flawed. Comparisons
are generally fatally biased but they still get people thinking.

The transition of Rails to Merb shows that things are still in play. The
reason that even the short-sighted, flawed comparisons are worthwhile is
because we have so far to go towards creating a web framework that really
helps or, for that matter, a language that really helps.

However difficult the discussion here is, it is necessary.

