[Twisted-Python] Maturity of twisted.web.woven?
Glyph Lefkowitz
glyph at twistedmatrix.com
Mon Aug 4 18:04:47 MDT 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
together.
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