summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2010-11-05 06:38:21 -0400
committerChris McDonough <chrism@plope.com>2010-11-05 06:38:21 -0400
commit70f7c3f627953476bcbdb441ede0f27482fc69ca (patch)
treeab7bb8ac43867bbba4c6319d21fbf2516dbfc4a5
parent0af3949bc95026d6deeff329d50f1969af3d30c5 (diff)
downloadpyramid-70f7c3f627953476bcbdb441ede0f27482fc69ca.tar.gz
pyramid-70f7c3f627953476bcbdb441ede0f27482fc69ca.tar.bz2
pyramid-70f7c3f627953476bcbdb441ede0f27482fc69ca.zip
zope is too complex
-rw-r--r--docs/designdefense.rst93
1 files changed, 93 insertions, 0 deletions
diff --git a/docs/designdefense.rst b/docs/designdefense.rst
index 5c700019f..6cd8256a2 100644
--- a/docs/designdefense.rst
+++ b/docs/designdefense.rst
@@ -11,6 +11,99 @@ describe future steps which will be taken to improve it; in some cases
we just file the challenge as "noted", as obviously you can't please
everyone all of the time.
+Pyramid Has Zope Things In It, So It's Too Complex
+--------------------------------------------------
+
+On occasion, someone will feel compelled to post a mailing list message that
+read something like this::
+
+ had a quick look at pyramid ... too complex to me and not really
+ understand for which benefits.. I feel should consider whether it's time
+ for me to step back to django .. I always hated zope (useless ?)
+ complexity and I love simple way of thinking
+
+(Paraphrased from a real email, actually.)
+
+Let's take this criticism point-by point.
+
+Too Complex
++++++++++++
+
+- If you can understand this hello world program, you can use Pyramid::
+
+ from paste.httpserver import serve
+ from pyramid.configuration import Configurator
+ from pyramid.response import Response
+
+ def hello_world(request):
+ return Response('Hello world!')
+
+ if __name__ == '__main__':
+ config = Configurator()
+ config.begin()
+ config.add_view(hello_world)
+ config.end()
+ app = config.make_wsgi_app()
+ serve(app)
+
+- Pyramid is 5,000 lines of runtime code. Pylons 1.0 has about 3,000 lines
+ of runtime code. Django has about 60,000 lines of runtime code. You'd
+ practically need to bend the laws of space and time for Django to be
+ simpler than Pyramid.
+
+- It has 600 or more pages of documentation (printed), covering topics from
+ the very basic to the most advanced. *Nothing* is left undocumented, quite
+ literally.
+
+- It has an *awesome*, very helpful community. Visit the #repoze and/or
+ #pylons IRC channels on freenode.net and see.
+
+Hate Zope
++++++++++
+
+I'm sorry you feel that way. The Zope brand has certainly taken its share of
+lumps over the years, and has a reputation for being insular and mysterious.
+But the word "Zope" is literally quite meaningless without qualification.
+What *part* of Zope do you hate? "Zope" is a brand, not a technology.
+
+If it's Zope2-the-web-framework, Pyramid is not that. The primary designers
+and developers of Pyramid, if anyone, should know. We wrote Pyramid's
+predecessor (:mod:`repoze.bfg`), in part, because *we* knew that Zope 2 had
+usability issues and limitations. :mod:`repoze.bfg` (and now :mod:`pyramid`)
+was written to address these issues.
+
+If it's Zope3-the-web-framework, Pyramid is *definitely* not that. Making
+use of lots of Zope 3 technologies is territory already staked out by the
+:term:`Grok` project. Save for the obvious fact that they're both web
+frameworks, :mod:`Pyramid` is very, very different than Grok. Grok exposes
+lots of Zope technologies to end users. On the other hand, if you need to
+understand a Zope-only concept while using Pyramid, then we've failed on some
+very basic axis.
+
+If it's just the word Zope: it's, charitably, only guilt by association. You
+need to understand that just because a piece of software internally uses some
+package named ``zope.foo``, it doesn't turn the piece of software that uses
+it into "Zope". There is a lot of *great* software written that has the word
+Zope in its name. Zope is not some sort of monolithic thing, and a lot of
+its software is usable externally.
+
+Zope Is Useless
++++++++++++++++
+
+It's not really the job of this document to defend Zope. But Zope has been
+around for over 10 years and has an incredibly large, active community. If
+you don't believe this, http://taichino.appspot.com/pypi_ranking/authors is
+an eye-opening reality check.
+
+Love Simplicity
++++++++++++++++
+
+Years of effort have gone into honing this package and its documentation to
+make it as simple as humanly possible for developers to use. Everything is a
+tradeoff, of course, and people have their own ideas about what "simple" is.
+You may have a style difference if you believe Pyramid is complex. Its
+developers obviously disagree.
+
Pyramid Uses A Zope Component Architecture ("ZCA") Registry
-----------------------------------------------------------