alan little’s weblog

whither python?

11th January 2005 permanent link

Iwan van der Kleyn has opinions similar to mine on python: lovely language, shame about the chaotic/absent infrastructure:

I’m not a language guru nor a framework wizard, but a mere mortal who designs and writes programs for end-users. For that task I need: a better standard ide, an integrated db interface with a proper set of db drivers (!!), a better debugger, a standard widget/windows toolkit, something akin to a standard for web programming, better documentation, a standard lib which is better organized, a formalized set of protocols and patterns for program construction. And an interpreter which is fast enough to avoid using C or Pyrex in most obvious cases.

Of course one valid answer to both Iwan and me would be “it’s all open source, pick where you want to start helping”. To which, however, Paul Rubin (further down in the same discussion) replies

I’m happy to use Python, as it is, for various kinds of noncritical and throwaway tasks. For critical projects I’m looking for tools that work (e.g. Linux, Apache, GCC), not “it’s open source, go fix it”.

Alex Martelli points out that the defined standard language isn’t where such things belong:

what YOU think should happen regarding the infrastructure, and what the people who donate their time to actually make things happen want, may be totally at odds. For example, you appear to keenly want one standard IDE to be blessed and receive all attention, one standard web framework ditto, and so on, and so forth; most core developers, on the other hand, appear to be very modestly inclined to spend their time and energy in that direction, so that only a rather minor fraction of the python-dev effort is channeled that way. Innovative efforts are best kept OUT of the core Python standard, many of us believe, as long as their innovative fervor continues: once something does get into the standard Python library &c, it won’t and shouldn’t develop very fast, nor at all freely, due to the tiranny of backwards compatibility, cross platform support, and the huge increase in maintenance/support efforts that comes when something suddenly becomes much more widespread and widely used than it previously used to be.

Fair enough. I’m all for emergent versus dictated standards. Nobody decreed that Apache should become the world’s standard http server, it became it by being better, and better supported, than the others. But now it’s there and and the rest of us have one less problem to worry about - you want to serve http? Install a current build of Apache and move on to worrying about other, more interesting things. But in web applications, for example, python doesn’t appear to have anything resembling an emergent standard either (unless you want to enter the strange world of Zope). And really, is web application infrastructure such an interesting area for “innovation”? Personally I’d sooner have a mature, supported, widely understood web application framework that I can just use without having to think much about it, and get on with using it to build applications that actually do something interesting.

As Iwan points out elsewhere, the issue with web development in python isn’t that there are no frameworks but that there are too many in various different states of baroque frighteningness (Zope/Plone) or not-quite-finished undocumentedness (the others):

The problem with Python is not that it doesn’t have any web-based frameworks comparable to Rails, the issue is it has too many of them and often much more heavy weight and able than Rails. Zope, Twisted, Webware, Peak are all heavyduty monsters while there are loads (dozens) of solutions implementing parts of the Rail stack much better then Rails does (SQLObject and ZTP are superb examples). But which one to choose? That remains the question.

A couple of related links: A M Kuchling thinks python the language is fine, and the development focus needs to switch to updating and tidying up the standard libraries. Good discussion in the comments section, including the inevitable and not incorrect “well then, pick a standard library, update it and tidy it up!”. And Kevin Dangoor explains why he chose python for a project he’s working on, and some alternatives he considered.

Update: Greg Wilson is “wondering why, ten years on, the Python community still doesn't realize how damaging it is to offer half a dozen half-baked alternatives instead of a single clear answer. Freedom of the press, different systems are best for different things, blah blah blah... I don't buy it any more. I just want the authors of Quixote, Twisted, WebWare, and the rest to sit down, hammer out their differences, and come up with something that's as technically and socially compelling as RubyOnRails”

related entries: Programming

all text and images © 2003–2008