+ All Categories
Home > Technology > When Not to Use Plone: and Why You Might Consider Django or Pyramid

When Not to Use Plone: and Why You Might Consider Django or Pyramid

Date post: 12-May-2015
Category:
Upload: jazkarta-inc
View: 6,195 times
Download: 2 times
Share this document with a friend
Description:
In the many years that we've been providing Plone consulting services, we've done some projects where Plone was clearly not the best choice of technology for the job, and we paid the price of making the wrong decision. In other projects, we've steered the customer to use one of the Python web application frameworks such as Django or Pyramid, and we and the customer have been pleased with the results.In this talk, Nate Aune explores scenarios when a full-featured CMS such as Plone is the right tool for the job, and when a more lightweight web framework is preferable.A link to audio of the presentation is here: http://2011ploneconference.sched.org/event/31d3dc2be7404f5515cd47050e144cb7
Popular Tags:
47
When not to use Plone And why you might consider Django or Pyramid Nate Aune, Jazkarta Plone Conference 2011 San Francisco
Transcript
Page 1: When Not to Use Plone: and Why You Might Consider Django or Pyramid

When not to use PloneAnd why you might consider Django or Pyramid

Nate Aune, JazkartaPlone Conference 2011

San Francisco

Page 2: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Who is this guy?

• Plone developer since 2003

• Founded Jazkarta in 2004 (based in Boston)

• Carlos de la Guardia, Sally Kleinfeldt

• Oxfam America, UNICEF, Harvard, Rice, UMN Press, Bioneers, City of Albuquerque

• Sponsoring ZODB Bookhttp://zodbdocs.blogspot.com/

• Founded NodeRabbit in 2010

Page 3: When Not to Use Plone: and Why You Might Consider Django or Pyramid

I <3 Plone.

Page 4: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Close your eyes(cue harp music)

Page 5: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 6: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 7: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Kapil

Alan LimiMe

Stefan

Paul Everitt

JonahGogoGodefroid

Phil Auersperg

Page 8: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 9: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 10: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Rachel Patty Greg Rachel DinDin Gabrielle

login contact

ready to share? register

Home Community Invite My Page Forum Events Groups Blogs About Us

featured Health Activists

members

latest activity

Page 11: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Client requirements

• email newsletter

• video

• ad server

• user tracking

• single-signon

• personal dashboard

• support/helpdesk

• polls/surveys

• ratings

• tagging

• SEO

• custom workflow

• taxonomy

• integration with forum

Page 12: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Risk #1Functionality proves to be too complex for implementation

within Plone in a given timeframe due to changing factors that require attention from the development team.

Page 13: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Risk #2System Architecture fails to achieve desired

performance metrics, particularly in its ability to handle many concurrent authoring transactions.

Page 14: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Risk #3The Plone software stack is in a slight state of fluidity at the

moment where the developers are determining the best areas to integrate the Zope 3 component architecture.

Because of this, APIs are changing a little more often than is normal which means there is a potential for any third-party

developed application to require additional changes.

Page 15: When Not to Use Plone: and Why You Might Consider Django or Pyramid

June 25-Sept. 3Two months to delivery!

Page 16: When Not to Use Plone: and Why You Might Consider Django or Pyramid

From Client: Also, it would be great if you can provide the following asap: 1) As many examples as possible of large Plone implementations with hard numbers attached such as # of users per month, concurrent # of users/second, page requests/second, average response time per page.

Preferably reference “brand names” sites that most people might know. This is extremely important for the acceptance of non-technical stakeholders as Plone is not well known (yet).

2) Scalability of database “write” operations. Strategies and techniques. This is important because we are going to have lots of content creators/reviewers ( thousands or even tens of thousands).

Page 17: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Square peg in a round hole

Page 18: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Additive vs. Subtractive

• You are building on top of what’s already there.

• You are taking things away and finding yourself fighting the framework.

Page 19: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Content management features aren’t too hard to create in any of the new crops of Python web frameworks.

Writing a form, even auto-generating that form using some framework, accepting input from users, showing errors, managing users, etc: for any given project, satisfying these types of requirements tends to be pretty easy without Plone.

It’s often much harder to remove unnecessary features from Plone than it is to create the necessary ones from scratch.

-Chris McDonough

Page 20: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 21: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Product or Platform?

Do we always ensure that the needs of the product's users come ahead of the needs of the developers that want freedom to change anything/everything, take it in new directions, etc.?

-Paul EverittFeb. 2008

http://radio-weblogs.com/0116506/2008/02/05.html

Page 22: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Marketed differently

It's really, really important to figure out if your product is a platform or not, because platforms need to be marketed in a very different way to be successful.

That's because a platform needs to appeal to developers first and foremost, not end users.

- Joel Spolsky

Page 23: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Alienate developers

One of the biggest themes in software industry failures is a platform vendor that didn't understand that they were a platform vendor, so they alienated their key constituency: the developers.

- Joel Spolsky

Page 24: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 25: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Case study: KARL• KARL started as a Plone application with

FrankenPlone changes to its architecture.

• After fighting the framework, a switch was made to use the technologies of Zope combined with well-known packages from Python and WSGI.

• By removing most of the framework, KARL gained much faster performance, reliability, and simplicity.

Page 26: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 27: When Not to Use Plone: and Why You Might Consider Django or Pyramid

A large part of the reason why I’ve enjoyed Zope3 so much, is that the impedence mismatch between application development is much less than with Plone.

-Kapil ThangaveluJuly 2008

http://blog.kapilt.com/2008/07/02/introducing-content-mirror/

Page 28: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Plone is a product, and frankly thats a good thing for both the software and its users.

It’s however a bad thing when you’re building applications, there tends to be much more policy with products, that needs to be replaced or worked around when you’re building on them.

As a result, products tend to have two other downsides in application development: developer inefficiencies and computational inefficiencies.

Page 29: When Not to Use Plone: and Why You Might Consider Django or Pyramid

The Plone TaxStarting up and serving a page from Plone.

Over the course of a year its about a man month of work.

-Kapil

Page 30: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Plone tarballPylons

Page 31: When Not to Use Plone: and Why You Might Consider Django or Pyramid

We could drop in a Pylons in a cubby hole

of a Plone tarball.-Kapil

Page 32: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Z shaped learning curveA product is typically a much bigger software stack, and Plone has and utilizes many components, from zope2, zope3, cmf, archetypes providing foundations, in addition to a growing number of plone specific infrastructure.

-Kapil

Page 33: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Python

Zope

CMF

Plone

Archetypes

Five/z3

Page 34: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Product vs. Platform

• All-in-one product (CMS)

• Minimal customization

• Building a product or customized web application

• Don’t need all the bells & whistles provided by CMS

Page 35: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 36: When Not to Use Plone: and Why You Might Consider Django or Pyramid

CHARACTER GROUP

CHARACTER

GLOSSARY TERM

CHARACTER VALUE

PILE INFO

PILE

PILE GROUP

IMAGE TYPE

CONTENT TYPE

CONTENT IMAGE

TAXON

TAXON GROUP

Go-Botany Database: Entity-Relationship DiagramLast updated 23 Jul 2010. Auto primary keys (id) not shown

Taxonomic Authority

EXHIBITS

DEPICTED BY

Literature Source

Value String

Value Min

Value Max

Value FloatPERTAINS TOEXPLAINED

BY

Term

Lay Definition

Question Text

Hint

Visible

Image (temp)

EXPLAINED BY

Short Name

Name

GATHERED IN

Name

BELONGS TO

PART OF

Simple Key

DEPICTED BY

Description

Friendly Name

Name

Name

Creator

Rank

Alt

Image

DESCRIBES

DESCRIBES

LISTS

RELATES

IS OF TYPE

IS OF TYPE

M

N

1

N

1

1

N

1

M

N

M

N

1

1

1

1

1

N

M

N

M

N

1

N

1

1

1

1N

MTaxon Group

Entry

Glossary Term for Pile

Character

Taxon Character Value

GROUPED BY

Scientific Name

Page 37: When Not to Use Plone: and Why You Might Consider Django or Pyramid

DjangoA web framework named after a jazz musician

can’t be all that bad, right?

Page 38: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Why Django?• Batteries included (takes care of the hard

stuff - ORM, routing, templates)

• Core system is still lightweight (but not as lightweight as Zope 3 or Pyramid)

• Lots of 3rd party plugins

• Great documentation / developer mindshare

• Faster to learn (important because of NSF)

• Big sites using it: Mozilla, Eventbrite, Disqus

Page 39: When Not to Use Plone: and Why You Might Consider Django or Pyramid
Page 40: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Recombinant innovationsPeople do not suddenly come up with new ideas. They piece them together from what they already know. People often fail to come up with a new understanding of what’s happening, new ways of dealing with problems, when they lack the wide-ranging set of ideas from which to piece together alternatives.

The trick is to develop in-depth knowledge within a given field but, at the same time, develop the willingness to take that knowledge apart and combine it in new ways.

-Andrew Hargadon, How Breakthroughs Happen

Page 41: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Bridging distant worlds

This is difficult because, people are reluctant to abandon their old knowledge.

Bridging distant worlds provides a way to acquire knowledge without acquiring the ties that typically bind such knowledge to particular worlds.

-Andrew Hargadon

Page 42: When Not to Use Plone: and Why You Might Consider Django or Pyramid

After I delivered the first app, things got very silent. I stopped getting calls, no more emails, not even a single postcard! ...

Until I realized: the team didn't need me anymore. Python and Pyramid were too damn easy! My days as a consultant would soon be counted. :-)

-Daniel Nouri

http://danielnouri.org/notes/2011/03/16/pyramid-is-too-damn-easy---a-success-story/

Page 43: When Not to Use Plone: and Why You Might Consider Django or Pyramid

How long does it take your team to learn it and

be productive with it?

How do you choose one framework over another?

Page 44: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Plone Django Pyramid

CMS product w/ framework

Full-stack framework

Light-weight framework

“Batteries included” but w/ overhead

Choices made for you (ORM, templates, etc)

More options to choose from

Page 45: When Not to Use Plone: and Why You Might Consider Django or Pyramid

Thank you!Questions? Fire away!

Page 47: When Not to Use Plone: and Why You Might Consider Django or Pyramid

• How to use Plone as a frameworkhttp://stackoverflow.com/questions/854905/how-to-use-plone-as-a-framework

• Introducing Content Mirrorhttp://blog.kapilt.com/2008/07/02/introducing-content-mirror/

• Pyramid is too damn easyhttp://danielnouri.org/notes/2011/03/16/pyramid-is-too-damn-easy---a-success-story/

• Paul Everitt - Market the Whole producthttp://www.zeapartners.org/presentations/marketproductwholeproduct.pdf

• Product or Platformhttp://radio-weblogs.com/0116506/2008/02/05.html

• How Breakthroughs Happen - book reviewhttp://www.vedpuriswar.org/book_review/How%20breakthroughs%20happen.PDF

• What Django should learn from Zope (Mark Ramm)http://www.youtube.com/watch?v=fipFKyW2FA4

• Where next for Plone development by Ian Bickinghttp://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/

• Drupal: Product vs. Frameworkhttp://london2011.drupal.org/sites/default/files/product-framework-drupal.pdf


Recommended