2011: Year of the fish

16
2011: Year of the Fish catching up with zope and friends

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 of 2011: Year of the fish

Page 1: 2011: Year of the fish

2011: Year of the Fishcatching up with zope and friends

Page 2: 2011: Year of the fish

Zope is a 4 Letter Word

Documentation === Source

Slow

ZODB

TTW

No Hosting

Page 3: 2011: Year of the fish

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

Page 5: 2011: Year of the fish

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

Page 6: 2011: Year of the fish

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!

Page 7: 2011: Year of the fish

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!!!

Page 8: 2011: Year of the fish

Pyramid “Model”

Page 9: 2011: Year of the fish

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

Page 10: 2011: Year of the fish

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

Page 11: 2011: Year of the fish

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!)

Page 12: 2011: Year of the fish

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

Page 13: 2011: Year of the fish

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

Page 14: 2011: Year of the fish

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

Page 15: 2011: Year of the fish

The beat goes on...

Templating

WSGI

Convention vs Configuration

Internationalization

Paid/Libre Support

Page 16: 2011: Year of the fish

Plone 4 with Dexterity

Demo if time