Post by Andreas JungBetter look into Pyramid
I did look at pyramid. Multiple times. My highest respects to Chrism.
So why am I using Grok instead of Pyramid?
Pyramid has a bit of an idenity issue. Is it for relational databases,
or the Zope Object Database? Is it for Traversal or for URL dispatch?
Then there are three different ways of configuring it. And multiple
different templating systems.
If you are a consultant, than pyramid is just the thing. Whatever the
customer wants, he gets. You want fry's with that. Great. You got it.
Grok is for the purist. ZODB is expected, although one can call a
relational database. Grokers are how it is configured although ZCML can
be used. Page Templates are used for templating, although other options
are possible. Traversal is your only option, although it can be
replaced. Indeed I just replaced grokcore.traverser. I have a clear
mental model of Grok.
A uniform mental model has a number of advantages. First it leads to
simpler code, although grok could use a code cleanup.
Another benefit is that one can do more interesting things on top of a
uniform base. I can build on top of all of the work that others have
done in Grok. For example, I am reusing the very rich Zope 2 page
templates for containers. No idea how Zopache would work with url
dispatch. Just too complicated.
And eventually there wil be performance benefits. Like the risc chips,
or the optimizations on the Objective-C dispatcher, a simpler model can
be more effectively optimized.
Another Pyramid issue is that all these options lead to code
complexity. I was just reading a posting on that this morning.
Worse yet that code has been optimized making it even harder to understand.
On the issue of optimizing for humans vs Computers. Pyramid code has
been highly optimized. For computers that is, not for people.
Optimizing code for computer performance makes it pessimal for human
understandability. Not that grok is brilliant on this point either, but
i could easily imagine Grok going on the Paleolithic diet, and becoming
a very small understandable code base, with modules that could be easily
swapped in by those who want to optimize for performance rather than for
people.
I should add that I am quite enjoying writing for Grok.
But the most important reason, is that I really like the logo
of Grok the friendly caveman.
Regards
Chris