[Web-SIG] Re: Just lost another one to Rails
Ian Bicking
ianb at colorstudy.com
Fri Apr 29 23:27:52 CEST 2005
Shannon -jj Behrens wrote:
> At the risk of offending you guys with my continual blabbering, I do
> like the "tools not policy" approach shared by the FreeBSD and Mason
> worlds.
This is exactly what I see WSGI accomplishing. It's too lame of an
interface to be anyone's policy (in a good way, of course). It's always
been possible to use external libraries, but it's difficult to use
libraries that participate in the request/response cycle, and WSGI makes
that possible.
This can be used in both mundane and interesting ways. I think sessions
are a bit mundane, but they work well, allowing the session "library" to
modify both request and response, providing an isolated and well-scoped
way to add session services to a WSGI application. This doesn't
preclude such a library (middleware) relying on other libraries for the
bulk of their work (e.g., persistence); indeed, I think it's best to
keep middleware as small as possible.
A more interesting example of this kind of reuse is URL parsing.
Typically URL parsing is one of those intimate details of a framework
that can't be factored out. But paste.urlparser.URLParser is fairly
successful, I think, at implementing a specific algorithm without
greatly effecting other parts of the system; it doesn't make any
assumptions about the applications it delegates to, or about the
environment it is run in. It's not the only URL parser you'd want --
but that's a big part of what makes it interesting; it separates one
kind of policy (URL resolution) from another (how resources are
expressed).
I think other people have worried that this sort of thing is all fun and
games, but it doesn't give us a concise and unified framework. But by
firmly keeping policy either decoupled (urlparser) or entirely removed
(session middleware) it makes it possible to create a framework that is
the amalgam of these pieces of code without sacrificing internal
consistency.
--
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Web-SIG
mailing list