2011: year of the fish
DESCRIPTION
From baypiggies presentation: As the first object publishing framework ever, Zope has been through several major overhauls and developed a bad reputation along the way. The reformulation of pylons and repoze into pyramid presents a great opportunity for zope to get back some street cred and offer sincere alternatives to front running frameworks like Django. This discussion will cover the current state of zope based technologies including repoze/pyramid, grok, bluebream and plone. It will look at the best use cases for each framework, strengths, weaknesses, and deal breakers. If there is time/interest we will look at the zodb and other core zope concepts that you will find in each framework.TRANSCRIPT
2011: Year of the Fishcatching up with zope and friends
Zope is a 4 Letter Word
Documentation === Source
Slow
ZODB
TTW
No Hosting
Apples to Apples
Zope 2.12+Zope 3
ZTKZCA
Zope 2
BFG
Bluebream
Grok
Zope 2+3
Plone 4
zope.component(adaptersutilities)
zope.event
zope.interface
Twisted
Plone 3
TG
Silva
RTFM? now you can!
ZCA
ZTK
Zope 2
Bluebream
Grok
Plone
Pyramid
Repoze (XXX?)
Zeo
ConfigurationBFG Zope 2 Bluebream Grok
ZCML X X X O
Imperative X O O X
Convention O X O O
Decorators X O O O
RoutingBFG Zope 2 Bluebream Grok
URL Dispatch think django nope not here different dimension
Traversal grok influenced zcml views, path traversing
zcml views, path traversing
zcml views + code
Object Publishing can be worked out, explicit default default default
Hybrid as complex as you wanna get nada nety gtfo
Acquisition is on the way out!
DatabasesBFG Zope 2 Bluebream Grok
Persistence manual default-ish default-ish default-ish
Models/Schema app models, database dependent
zope.schema, highly integrated forms
zope.schema, highly integrated forms
zope.schema + grok.Model (think
Archetypes)
ZODB optional, moderate integration
tightly integrated, default
tightly integrated, default
tightly integrated, default
Non-ZODB optional, moderate integration loose integration loose integration relational what?
Supporting multiple DB’s does not imply persistence or tight integration!!!
Pyramid “Model”
ContributingBFG Zope 2 Z3/BB Grok
Source Control SVN SVN SVN SVN
Commiters * 21 56 47 14
Trend Decreasing Commits Stable Substantial
Increasing Commits Stable
OOB Complexity
Zope 2
BFG
BluebreamGrok
PloneTwisted
WebOb
Features
COMPLEXITY
RequestResponse
Architecture ZCA/Interfaces
Index/CatalogAuthentication
Widgets/Form LibsTight DB Integration
Django
TGwebpy
Workflow/PublishingMultiSite
5 Reasons to Try “Zope” (again)
Never query with user=username again
“Automagic” persistence/transaction handling
ZCA: Learn once, apply over and over again
Internationalization
Buildout
Historical Bonus: Acquisition (get it before it’s gone!)
5 Reasons To Skip Zope (again)
Lack of talent/interest
No time for “Z” learning curve
100% certain you will have a HUMUNGO user base
Crippled by limited hosting options
Buildout
5 Reasons to Try ZODB
Rock solid and dependable
Objects in python are objects in the db
Keep blobs where they belong (for free!)
Pluggable indexing/catalog strategies
Avoid schema nazis
5 Reasons to Skip ZODB
Your app is all about reporting
Data isn’t suited for pickles/not hierarchical
High write conflicts
Low RAM/bad disks/cheap hardware
Replication not quite there
The beat goes on...
Templating
WSGI
Convention vs Configuration
Internationalization
Paid/Libre Support
Plone 4 with Dexterity
Demo if time