On Fri, Nov 5, 2010 at 8:05 AM, Graham Higgins <gjhigg...@googlemail.com> wrote:
> Kevin J Smith wrote:
>> From
>> the page on pyramids it seems to suggest that pylons post 1.0 will be using
>> pyramids?  If so, statements like "no controllers" kind of frighten me ...
>> and quite frankly most things that are Zope related frighten me.
>>
>> Anybody care to clarify?
>
> Steady the Buffs, Kevin --- and any other Pylons users who might currently
> be going "Whoa?! WTF?".

Chris McDonough wrote:
> The word "Zope" is meaningless without qualification.  What *part* of Zope do 
> you hate?

> It's pretty hard to defend Pyramid against charges that won't be
disclosed.

Less confrontation, Chris, please. Pylons users are legitimately
concerned about any sudden changes in the API, abandonment of
previously-supported versions, and over-Zopeification. Also, Pyramid
is being introduced to them in a haphazard way, rather than an
announcement and discussion before the fact as TurboGears had [1] and
presumably BFG had. So people are rightly concerned about where Pylons
is headed, and asking for more details.

[1]: 
http://groups.google.com/group/turbogears/browse_thread/thread/47779d8587721037?pli=1

The merger/rebanding is very recent -- like a week ago. Graham and I
first heard about it four days ago. That's why not all of the pieces
are in place yet.

The reason for concerns like Kevin's is historical. I (and several
WSGI developers) left Zope in 2000 because it was a huge monolith, and
the documentation was geared toward content creators rather than
Python developers.  Zope has since fixed many of these shortcomings:
improving the developer documentation, splitting the code into
multiple packages, and spawning Repoze and BFG and Grok. But ZCML,
component architecture, and interfaces still strike fear into many
hearts. And Zope's greatest accomplishment -- Plone -- is still tied
to Zope 2, and is still more monolithic than many here would like. The
fears about Pylons are legitimate and need to be addressed. We just
need to have a dialog about what exactly is coming from Zope, why it
won't destroy Pylons, and what its benefits are.

The other concern is abandonment of previous versions.  Many people
were not happy with the move from TurboGears 1 to TurboGears 2. They
complained that the TG book was published right when its developers
were starting to move away from that paradigm, and that the window
between TG1 and TG2 was unusually short by framework standards. This
forced people to invest in TG1 and then immediately rewrite their apps
for TG2, or stick with TG1 which was now less-supported than they had
been expecting. So people are rightly concerned that Pylons mustn't do
that. Still, the state of the art evolves quickly, so some change is
inevitable.

My message to Pylons users is: the developers share your concerns. We
asked the same questions of Chris when we were first considering BFG
and a component architecture. We hate XML just as much as you do. We
asked, "What would a component architecture gain us? Are there any
alternative non-Zope implementations? Are these pieces separable from
the rest of Zope? How much Zope is enough and how much is too much?"

It turns out that that the Zope developers were smart to see the
benefits of components/interfaces early on, and they were willing to
split that out for the rest of us, just as they had earlier split out
ZODB. There is no alternative Python package for this that has been as
well tested over several years, especially in a web-framework
environment.

When Chris first explained the XML-based configurator, our first
comment was, "That will be unacceptable to Pylons users." So he made a
flexible configuration backend, envisioning multiple configuration
styles (XML, Python, INI, etc). Only the XML and Python styles have
been pursued. (The Paste INI file is not directly related to this. The
upshot for Pylons users is a Python module equivalent to
environment/middleware/routing.py .)

> FACT: Pylons 1.0 is not being killed off in any way, shape or form. Your
> apps will continue to work and Pylons 1.0 will continue to be supported for
> the foreseeable future,

And anyone is free to help with maintenance or take on feature
enhancements -- with Ben's approval. But really, what does Pylons 1
need?  We have already rejected larger Form/ORM/Auth dependencies.
"@validate" needs a replacement; that's the only thing I can think of.

> Ben recently discovered an
> architectural design flaw in Pylons [1]. The problem orients around the
> chosen strategy of implementing individual app extensibility by allowing
> subclassing of the WSGIController.
>
> Ben says that Bob Brewer (of CherryPy fame) warned him about it at the start
> of Pylons but back four years ago Ben was young, carefree and thought little
> of it --- I'm paraphrasing, you understand :-)

What is the flaw? The footnote seems to have been omitted.

> Architecturally, BFG is conceptually
> very similar to Pylons. Chris looked very carefully at Pylons when he
> created BFG and if you read through his blog posts, you'll find a posting
> titled "Tips for greenlighting a framework" in which you'll find: "Requiring
> that a user subclass a framework-defined class is almost always the wrong
> answer" [2].

Another missing footnote.

> Demonstrating a total lack of Zopish dogmatism, Chris has been

Well put. :)

> There's /explicitly-planned/ space in Pyramid to support the TG community's
> "full-stack" style too, should the community fancy jumping on board.

There has also been a dialog with the Django developers the past two
years, mostly covering basic WSGI issues and a potential common
request/response object (WebOb). The door is always open if they'd
like greater collaboration, or to port Django to Pyramid the way TG
was ported to Pylons. It hasn't gone very far because Django famously
prefers homegrown code, but we aim to keep the code "Django-ready" by
anticipating what hooks they'd likely need for their features.

And the same goes for any other type of Python web framework. If it
needs new plugin hooks to integrate with Pyramid, we're willing to
consider them. But that work seems to be done because most of the
full-stack frameworks we've seen fall into a few main categories:
CherryPy-like (TG), Pylons-like, Zope-like (only Zope), Twisted-like
(only Twisted), Django-like (only Django), and servlet-like (none
since WebWare nine years ago). Zope and Twisted are too big and unique
to be integrated, and servlet-like has long been abandoned, but we've
tried to accommodate the other major API styles -- to give application
developers the maximum flexibility and mix-and-match ability that was
Pylons' original vision.

-- 
Mike Orr <sluggos...@gmail.com>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to pylons-disc...@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-discuss+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to