What Trac Says About Python


I've seen several posts recently about Trac, a baby-SourceForge built on top of Python, SQLite, and ClearSilver (a language-neutral HTML templating system). If you haven't seen it yet, you should check it out: it's less than 6000 lines of Python (and 1800 lines of HTML template), but offers bug tracking, a wiki, scheduling, a Subversion browser, and more. I'm going to be using it to manage my undergraduates' projects starting in January 2005, and nine of those undergraduates are going to be working on Trac itself.

That's the good news. The bad news is that Trac doesn't use any of the lightweight Python web frameworks that Michelle Levesque is analyzing in her PyWebOff. It talks directly to SQLite (there's been talk of using SQLObject as a persistence layer, but its poor performance makes that impractical), and its templating system, ClearSilver, is actually written in C. I'm not faulting the guys at Edgewall—they looked at what was out there, and made the right engineering decision. I'm just 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 Quxote, 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</a>. Hell, I'll pay for the coffee, if that's what it takes…