Saturday 16 July 2005

Last week I mentioned the problem of over-proliferation of frameworks, toolkits, and so on, in the Python world. Although I’ve never developed a web site with a live Python back-end, I understand that the tools to perform this feat are among the most over-proliferated.

Nevertheless, I am excited by the release of Django, a new framework for developing web sites with Python. I’m excited for a number of reasons:

  1. It was developed by the guys at Lawrence Journal-World to build their web site, which is a good site.
  2. The guys who developed it have very good reputations and seem to Get It (Adrian and Simon, for example).
  3. The introductory tutorial Django at a Glance is very smooth and makes a good case.
  4. The Django web site itself is really nice, and the tag line (“The web framework for perfectionists with deadlines”) kills.

Perhaps you think a few of these things are cosmetic and shouldn’t matter. I say they all add up to having what it takes to do a kick-ass job as a web framework.


There's a nice list of Django 'gotchas' (things to watch out for if you're a newbie) at:

So far, I haven't even gotten far enough to run into them :-( as I can't get mod_python to work on Windows!
Over-proliferation is right. I'm currently working on a web/wap site that's Python driven (via Zope) but I've taken a look at most of the alternatives. As far as I can tell, they're mostly very good ideas, but what's lacking is the user base that demonstrated whether the ideas are good in practise. This can even be true of the more established tools; when Zope introduced ZPT templates they sounded like a great idea; unfortunately, the reality of trying to write any sort of logic with them shows the faults. When you're being paid to build something with a real commercial focus, it's difficult to justify being one of the first to try something new (and find the faults).
PHP is, by several measures, inferior to Python. But the huge advantage it has is that it's been used in anger and many of the kinks and problems have been ironed out by that. It'd be nice to see a smaller number of Python engines get the same take-up and then, maybe, the same usability.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.