[Web-SIG] Regarding the WSGI draft
Phillip J. Eby
pje at telecommunity.com
Fri Aug 27 15:40:15 CEST 2004
At 01:56 PM 8/27/04 +0100, Ben Sizer wrote:
>Phillip J. Eby wrote:
>>Any approach that ignores the economic reality of present-day Python web
>>apps, and provides no way for them to migrate gradually to a new
>>standard, is doomed to niche status at best.
>
>I see your point but I look at this from the other side; any approach
>that is focused on the current niche status of Python web apps,
Huh? I meant niche status *within* the Python community. My point is that
trying to promote another framework isn't going to get much past the noise
level in communicating about *current* frameworks.
>No new framework or API or
>'standard' Python web service is going to break existing code, just
>provide an alternative. Why therefore is there such a focus on
>accommodating existing users and having them migrate over?
Because if providing an alternative would actually change anything, then
things should have already changed by now. Simply providing a new
framework will not create any technical or social network effects, so that
leaves marketing as the force to drive adoption. And that marketing will
be limited to either 1) new users, or 2) people you can get to switch from
existing frameworks.
>>And so, the only way we're going to "steal" the marketshare of
>>existing frameworks is with the consent and co-operation of the
>>developers of those frameworks.
>
>I don't think the idea is to steal the marketshare of existing
>frameworks, as you put it. Rather, I'd think it would be about apturing
>the imagination of the average developer who would appreciate Python as
>a language
Okay, so you want to recruit non-Python developers; fine. Go for
it. That's entirely orthogonal to what I'm trying to do with WSGI. But, I
think you'll have an easier time of it once WSGI is ubiquitous and APIs
emerge that you can then use as a standard.
>>First, the current situation. Choice of framework is a high investment
>>for users, because once they choose, they are stuck with that framework
>>and possibly server.
>
>This is why I would like Python to have web support in the standard
>library that is on a high enough level that you don't necessarily need a
>framework to achieve something useful.
As a practical matter, you'll need commuity support to get something like
that in the standard library, and the political reality of the community is
that you'll have to show why accepting your new framework N+1 doesn't mean
that frameworks 1 through N should also be included.
>I readily agree that something such as WSGI would nicely form the
>backbone of the interchangeable modules. All I disagree with that you
>should then /need/ one of these competing frameworks on top of that
>before you can do anything useful.
It's not that you should *need* one of them; it's merely that if adding
such features gets in the way of WSGI goals, then we don't add such
features. And adding those features gets in the way of the goals if it
adds unwarranted complexity to servers, gateways, or middleware.
Therefore, it may make sense for those wishing to devise a higher-level or
"friendlier" API, to build it atop WSGI in parallel with the current
standardization efforts, and then propose it as a stdlib addition once WSGI
is stable and has seen some adoption, perhaps as part of an effort to
upgrade the stdlib-included web servers and gateways to support WSGI.
Such efforts would be easier to spin as "tools for WSGI" rather than "web
framework N+1".
>It sounds more like refusing to sell ready meals in stores because of
>the insistence that everybody likes their food cooked in different ways.
Not at all; we have dozens of lines of ready meals with names like
Albatross, CherryPy, SkunkWeb, Quixote, and so on. It's merely that the
marketplace is already crowded with such manufacturers and launching a new
line to compete with them isn't likely to be a profitable venture.
Instead, we've decided to standardize packaging materials and sell boxes
and trays and suchlike to all the existing meal manufacturers. :)
>If we provided a simpler and effective baseline, even if that standard
>only featured 90% of the power and flexibility of existing services,
>then I expect we'd see a rapid take-up of that technology.
You must be making some assumptions that aren't clear to me. If existing
services provide 100% of those capabilities, why hasn't one of them already
taken the lead? Perhaps you think that endorsement by the Web-SIG is all
that's needed. Maybe that could work, I don't know.
But, how will you obtain the endorsement of the Web-SIG? Keep in mind that
a lot of the people actually doing any work on the Web-SIG are authors of
existing frameworks, which means to get buy-in you have to support their
goals. To support their goals, you need an API that allows them to
continue to scratch whatever itches prompted them to write their particular
framework in the first place, not to mention avoid losing their investement
in application code already written to that API.
But, the higher the level of abstraction in the API, the greater the chance
that some facility on which they depend, will not be expressible in the
high-level API so as to allow them to continue to use code based on their
existing APIs, and therefore the more difficult it will be to get the
support of those participants.
WSGI lets us bypass all this, by beginning with something that everybody
can use, because everybody's using HTTP, and WSGI only deals with HTTP.
>In no way do I think that the current services and frameworks are
>useless. I just worry that there's this focus on what I'd vaguely call
>'enterprise' level web development that shuts out the majority of
>developers who are trying to do something simpler.
Fair enough. But personally, if that were my goal, I'd design *two* APIs:
one to emulate ASP, and the other to emulate PHP. Then I'd write
translators to do the mechanical work of translating most of the syntax to
e.g. PSP. That would do *much* more to bring in non-Python developers than
any new Python framework would. For one thing, the mere existence of such
a tool for ASP or PHP applications would create vast amounts of publicity
(blog postings, articles, etc.) that money couldn't buy, and they'd be in
exactly the right places: where those non-Python programmers will see them.
By contrast, announcing another Python framework seems to me unlikely to
create a splash even *within* the Python community, let alone outside it.
More information about the Web-SIG
mailing list