[Chicago] Django and Rails and PHP (oh my!)

Atul Varma varmaa at gmail.com
Wed Dec 21 01:09:30 CET 2005

On 12/20/05, Ed Summers <ehs at pobox.com> wrote:
> "There should be one-- and preferably only one --obvious way to do it."
> It's as if the python community is being hoisted on its own petard ...
> or is being gutted by an out of control inversion-of-perl pattern.
> Perhaps it's time to not take this matra so seriously? Perhaps I'm the
> only way taking it seriously...
> I think there are lots of web frameworks for python, as there are in
> other languages, because of the age of the respective language and the
> age of the web. I like having choices and a rich user community. I
> don't like being cajolled by the blogosphere into using one particular
> tool.

The mantra you mentioned is actually the reason that I prefer Python
over Ruby when it comes to syntax and other language elements.  In
fact, I'm not really sure if it's part of the Python "philosophy" to
apply that mantra to things other than syntax: just look at all the
different modules and formats the standard Python library alone
provides for manipulating dates and times--I get a headache every time
I have to deal with it.

I also agree that it can be nice to have choices when it comes to
frameworks, but my problem with the Python ones I've seen--with the
possible exception of Django, which I haven't yet looked very closely
at--is that they're all severely lacking in some way; either their
architecture is too constricting or inconsistent or confusing, their
documentation is scant or out-of-date, or all of the above.

While the Ruby folks are great at marketing and Rails has an
ever-increasing mindshare, I think what makes it truly appealing is
simply the fact that it feels extremely well put-together.  The
product has a clear vision and philosophy, its architecture reflects
that, and most of all, it's extremely well-documented.  Simply by
looking at the website, one gets the feeling that they won't use it
only to find out 5 days later that some of its documentation is sorely
out-of-date, or that some fundamental task they need to accomplish
just wasn't conceived of by the creators and the coding solution will
look like a horribly ugly hack.  In other words, all the Python-based
web frameworks I've used--the main ones being CherryPy and Zope--both
look and feel like hack jobs from the start, and their documentation
reflects this, if not their architecture as well.  Ruby on Rails, on
the other hand, looks like it could be a commercial product, and
everything about it that I've seen--not just its marketing, but
everything else too--reflects such professionalism.

So, that said, if Python had 20 different web frameworks that were
just as solid as Rails in all the respects I mentioned above, each
framework would be an asset to the language.  But so far the only
framework I've seen that comes anywhere close to Rails' level of
excellence is Django, based on some of the documentation I've read.

So, in a nutshell, I guess my 2 cents is that I don't really care how
popular the web framework I use is: I just want it to be extremely
well-documented, cause little confusion in my head, and I want it to
allow me to write code that's both concise and readable.  It's clear
that Rails was designed from the ground up with all that in mind, but
that isn't the case with most of the Python web frameworks I've seen.

- Atul

More information about the Chicago mailing list