Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2011: Year of the fish


Published on

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.

2011: Year of the fish

  1. 1. 2011: Year of the Fish catching up with zope and friends
  2. 2. Zope is a 4 Letter Word Documentation === Source Slow ZODB TTW No Hosting
  3. 3. Apples to Apples Zope 2 Zope Plone 3 Silvazope.component (adapters 2+3 utilities) Zope 2.12+ Plone 4 Zope 3 zope.event ZCA ZTK Bluebream Grok zope.interface BFG TG Twisted
  4. 4. RTFM? now you can! ZCA Plone ZTK Pyramid Zope 2 Repoze (XXX?) Bluebream Zeo Grok
  5. 5. Configuration BFG Zope 2 Bluebream Grok ZCML X X X OImperative X O O XConvention O X O ODecorators X O O O
  6. 6. Routing BFG Zope 2 Bluebream Grok URL Dispatch think django nope not here different dimension zcml views, path zcml views, path zcml views + Traversal grok influenced traversing traversing code can be workedObject Publishing out, explicit default default default as complex as you Hybrid wanna get nada nety gtfo Acquisition is on the way out!
  7. 7. Databases BFG Zope 2 Bluebream Grok Persistence manual default-ish default-ish default-ish zope.schema + app models, database zope.schema, highly zope.schema, highlyModels/Schema dependent integrated forms integrated forms grok.Model (think Archetypes) optional, moderate tightly integrated, tightly integrated, tightly integrated, ZODB integration default default default optional, moderate Non-ZODB integration loose integration loose integration relational what? Supporting multiple DB’s does not imply persistence or tight integration!!!
  8. 8. Pyramid “Model”
  9. 9. Contributing BFG Zope 2 Z3/BB GrokSource Control SVN SVN SVN SVNCommiters * 21 56 47 14 Decreasing Substantial Trend Commits Stable Increasing Commits Stable
  10. 10. OOB Complexity Request ArchitectureC Response ZCA/Interfaces Index/Catalog Authentication Widgets/Form Libs Tight DB Integration Workflow/Publishing MultiSiteO PloneM Django TwistedPL Zope 2E BluebreamX GrokI webpyT TG WebOb BFGY Features
  11. 11. 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!)
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. The beat goes on... Templating WSGI Convention vs Configuration Internationalization Paid/Libre Support
  16. 16. Plone 4 with Dexterity Demo if time