[Twisted-web] web2 log patch

Andrea Arcangeli andrea at cpushare.com
Fri Jan 20 18:45:41 MST 2006


On Fri, Jan 20, 2006 at 07:51:59PM -0500, glyph at divmod.com wrote:
> The harm comes from continuously repeating the same vague, baseless 
> differences of opinion with Twisted developers.  The fact that Andrea 
> Arcangeli happens to prefer code that is in the library model rather than 
> the framework model is not a serious criticism of Twisted.  Nor is the fact 

I repeated it so many times but it seems you didn't got what I meant
yet. It was never a criticism to Twisted, I was talking about
Nevow. The only criticism I have to Twisted is that it doesn't scale in
SMP, despite it theoretically could but nobody attempted it yet (ok,
python would be bad at running it so I guess it wouldn't make much sense
in practice even if it's an attractive idea in theory). Not scaling in
smp is bad but I don't want to get into those details, for now getting
twisted.web2 stable single threaded would be enough...

The API provided by Twisted is not a limitation because it offers all
features already, it's just an extension of the socket API (which is
fixed in stone anyway). Twisted just provides an abstraction of it and
that's good in my opinion.

To make a parallel in the kernel we've lots of apis where you've to
register into.  The VFS is the most obvious example of that.
Filesystems have to be written following a strict API and there's no
(sane) way to make a filesystem without following those strict rules and
those strict callbacks. Because again this API is the one that userland
sees (reiser4 tried to break that rule, but I think they backed it out
since it wasn't backwards compatible).

However in a moltitude of other cases it's possible to create a library
that is being called (instead of calling). USB is an example of that.
The lowlevel drivers just use a library. It's the driver code that calls
into the usb highlevel, not the other way around. parport is similar.
When it's possible to do that, it's much nicer to do that, since it
leaves an higher degree of flexibility to the developer.

SCSI unfortunately didn't do that, and scsi become hard to maintain in
fact. All scsi drivers in linux are just implementing callbacks and
that's sometime not flexible enough (I had myself troubles with
recursion into the scsi higlevel code when I was hacking on ppa
initially).

Please don't confuse my criticism to the nevow way of hooking inside the
app way beyond its templating library job, with a criticism to twisted.



More information about the Twisted-web mailing list