[Twisted-Python] Maturity of twisted.web.woven?

Glyph Lefkowitz glyph at twistedmatrix.com
Mon Aug 4 20:04:47 EDT 2003

On Monday, August 4, 2003, at 05:59 PM, Steve Freitas wrote:

> In David Mertz's recent DeveloperWorks articles on Twisted, he states 
> the
> opinion, "Twisted's Web templating framework, woven, while becoming 
> quite
> sophisticated, is unstable enough that I will only touch on it 
> here."[1]

It is changing less than it used to be.  However, it isn't done.

> Do the core developers agree with this?

It's more or less true.

> The reason I'm asking is that I'm looking at coding a commercial 
> (read: credit-card accepting, livelihood-producing) website in the 
> next several weeks, and I'd like to do it in Twisted if that's the 
> wise choice. But I'd like to know if it might be wiser to pick 
> something that isn't being developed so quickly any more, e.g. > Webware.

Well!  You certainly wouldn't be coming to this list if you wanted an 
*objective* assessment, so I'll give you my highly distorted view of 
things :).

Woven is a web framework written by crazy geniuses, for crazy geniuses. 
  (That is, by Donovan, for me.)  Don't get too hung up on the word 
"genius" there, though - the operative word is "crazy".

If you are used to more "traditional" web development environments like 
PHP or JSP or whatever, you'll find the object model in woven more than 
a little confusing, and by confusing, I mean "better".  If you've been 
around the block with more hard-core web development models (like Zope, 
Cocoon, WebObjects) you will find that Woven extends the "object 
publishing" metaphor all the way down to individual XML nodes within a 
page; this is a very powerful paradigm to work inside of if you have a 
highly dynamic, interactive website with lots of re-usable objects you 
want to display in different contexts.

I think there are also things happening with Javascript and user events 
and other things that involve creating coherent abstractions around 
web-things which are neither coherent nor abstract.  Do you remember 
"push"?  It's like that.  Except of course it uses cross-browser 
javascript and therefore it terrifies me so thoroughly that I will 
speak no more of it.

The good news is that if you want to create an application which really 
wants to be interactive and hook it up to the web, woven lets you do 
really amazing things in that regard.  But don't just take my word for 
it - we (and by that I mean "the Divmod team") have been putting 
together a similarly livelihood-producing chunk of code which you can 
take a peek at over on http://www.divmod.org/ - the Quotient 
conversation server uses Woven extensively.  I am putting my literal 
money where my proverbial mouth is, and things seem to be going along 
pretty well in that regard.

The bad news is that you will have to track CVS.  You will have to 
hassle Twisted team members to fix bugs that affect your code.  You 
will need to read all the documentation - twice - and then ask for more 
documentation to be written.  You will almost certainly see tracebacks 
that unravel the very fabric that binds our HTML-formatted reality 

Now, take your pulse.  Is it over 130 beats per minute, after reading 
the chilling tale of bleeding-edge web development above?  If not, then 
Woven is the right choice for you.  I personally think it's worth the 
trouble. (Don't think that just because I'm wearing the "glyph #1 best 
Twisted developer" foam pope hat that I don't need to deal with any 
trouble... Did I mention that my girlfriend used woven?  When it was 
considerably less stable than it is now?)

However, it is definitely an adventure you need to be prepared for.

So, in the immortal words of Space Harrier: "GET READY"

More information about the Twisted-Python mailing list