The document discusses modernizing Plone to improve the developer experience for Plone 5. It notes that Plone 4 focused on modernizing the user experience, but Plone 5 should focus on the developer experience by improving documentation, code quality, and community culture. The complexity of Plone is justified by its large and powerful feature set, but the new Dexterity content types system could help reduce complexity. The framework values of Plone should include easy debugging, extensibility, and clear, simple APIs.
Introduction to Basketball-PowerPoint Presentation
Old Dogs and New Tricks
1. Old Dogs &
New Tricks
By
[ a highly opinionated talk about the future of Plone from a Framework Team member, developer, project
manager, consultant, loud mouth, and general advocate of change aka ]
Elizabeth Leddy
2. WARNING
Although this presentation seems to be filled with factoids, it is actally filled
with lazily validated stats, graphs that are extrapolated far beyond
mathematical reason, and pirated imagery. It is highly likely that I have
misinterpreted historical results or became so blinded with anger about
certain things that I did not Google sufficiently or give good thoughts to
decent alternatives. Except any statements about Grok. I’m confident there.
More importantly, this is a very opinionated piece. Officially, much of this
will theoretically be addressed by an official Roadmap Team who is busy
providing you with the important fluff you need to sell to your customers,
clients, and neighborhood dentist. Maybe there will even be widespread
community use for this roadmap and upon its arrival people will cheer and
eat cake.
In the meanwhile, I can only assume that I will firmly disagree with whatever
comes out of this process because I am an asshole by nature and go full steam
ahead with the contents of this presentation. There is no intention to ruffle
feathers or miscommunicate. I encourage all of YOU to get up and talk/blog/
vlog your vision for Plone, controvesy and all. Be loud, be proud, be Plone.
4. 4.[1,2,3] Trend
‣ Modernizing the User Experience ‣ Modernizing The Architecture
4.1
‣ Commenting ‣ Performance++
‣ Theming (Diazo) ‣ Repackaging Party
‣ Search ‣ Keep up with Zope releases
‣
‣
Collections
Content type creation
4.2 ‣
‣
Standardizing APIs
HTML 5
4.3
(Dexterity ) ‣ Python 2.7
‣ Events
..... .....
5. New Release Process
PLIPS Releases
45
4.3*
30 4.2
4.1
15
4.0
0
4.0 4.1 4.2 4.3 4.4* 0 100 200 300 400
Proposed Accepted Days from Last Release to Alpha
Merged Incomplete Days from Alpha to Release
* PLIP monster wants PLIPS
6. ‣ Continue UI/Type Modernization
Modernization ‣ Form widgets
must be a continuing process
‣ Calendaring (solgema.fullcalendar?)
‣ Video (redturtle.video?)
‣ Related Content Browser
‣ Small Innovations in New Places
‣ Tracking user activity/Reporting
meh dog says...
‣ Pull significant awesome add-ons into
core
‣ Mobile Support OOB (responsive or
meh. otherwise)
‣ AJAX/JSON anyone?
Innovation 4.Future PLIP
must happen in small places
Potential
8. Does the steep learning curve pay off? Is
this complexity still justified today?
I need a platform. Customers need a CMS.
You can't just start and say "If you want
to see the complexity of Plone,
you have to ask for it" when you don't
know the system good enough to plan.
The Complexity of Plone
9. What could justify the complexity
of Plone?
‣ It's moving to a more modern architecture. It's bridging both the old and the new approach right now,
which adds some complexity until the transition is mostly complete. This is mostly to keep things
backwards compatible. Plone does not abandon it s users.
‣ [Plone 4] starts up 3-4 times faster than the current version. and uses about 20% less memory
‣ There's a much easier types system in the works (Dexterity), which will reduce the complexity and speed
up the system a lot, while keeping the same level of functionality.
‣ If you want to use it as a "platform," then the platform is a stack of over one million lines of code which
implements a complete content management suite. No one knows it all. However, all those "acronyms"
and "files" are evidence of a software which is factored in components so that no one need know it all.
You can get as deep or shallow in it as you need. If there's something you need for some aspect of
content management, it's already there, you don't have to create it from scratch, and you can do it in a
way that's consistent with a wide practice and review.
10. ‣ Python 2.6, 2.7
If you can t see the
‣ Catalog Optimizations
performance
‣ DateTime Refactoring
improvements, you ‣ plone.app.caching
aren t looking.
Performance
11. Dexterity
‣ Flexible and fast
‣ Still no defined way out of
Archetypes
‣ Reusing other technologies
‣ Complexity remains
12. ‣ Deco/Tiles
‣ Usability
meh dog says...
‣ Performance
‣1 content type to blah blah blah.
RULE THEM ALL! GLITTER+PONIES
= UNICORNS
Meanwhile in === Plone 5
dreamland...
13. 2010?
Deco Light? 2011?
???
2012?
CMSUI?
The #1
framework of
Grok? post apocalyptic
times?
Whatever the release manager says it is?
Facing Reality
15. In January 2012, Add Ons
29 new add-ons 2012*
were registered
on Plone.org. 2011
That is almost
2010
one new add-on 0 125 250 375 500
per day. New Updated
16. A Culture of Suburbanites
Active Core Contributors
17. A Different Focus
"If you want a platform to be successful, you need
massive adoption, and that means you need
developers to develop for it. The best way to kill a
platform is to make it hard for developers to build on
it. Most of the time, this happens because platform
companies ... don't know that they have a platform
(they think it's an application)." Joel Spolsky
18. Framework Core Values
‣ XML Configuration ‣ Code next to config
‣ Easy debugging ‣ Syntactic Sugar
‣ Extensibility/Pluggability ‣ The custom folder
‣ 100% test coverage ‣ Happy end users
‣ Best in class code ‣ Clear and simple APIs
‣ More documentation ‣ Better documentation
.....
Hard things easy ‣ Easy
.....
things easy
‣
20. Teaching
Python Web
‣ Task: Make a TODO list
‣ Audience: New to Python
meh dog says... ‣ 3 frameworks, 3 hours
per framework
‣ web2py, flask, Django
Interfaces? I’ll just use PHP then.
21. The patient suffers from a severe deficiency of
Syntactic Sugar
(Hypoglycemia)
22. @route( /contact )
@render( contact.pt )
class Contact(View):
def getContactInfo(self):
return {phone= 999-999-9999 }
@route( /support-request )
def ProcessSupport(View):
# submit to 3rd party here
return redirect(url_for(ThankYou))
Simple Syntax
23. Using Recommended Practices:
‣ Getting the site root
‣ 6 files and 20 lines of code to add a
new stylesheet
‣ Touching so many files and modules:
impossible to move quickly without
referencing documentation
constantly
Hypoglycemia
25. Developer Driven
Development
‣ Think about the API first
‣ Obsess about developer
efficiency
‣ Use documented examples/
recipes to prove ease of use
‣ Contribute shortcuts from your
everyday process and share
them with coworkers,
Make documentation less community
important with intuitive code!
26. ✓ Internationalized
✓ Unit tests
✓ End-user documentation
✓ Internal documentation
✓ Existed and maintained for at
least 6 months
✓ Installs and uninstalls cleanly
✓ Code structure follows best
practice
✓ Usable by Spanky
Spanky Certified
28. ... makes hiring
A thriving community
of happy developers... easier
‣ Plone is not hip
‣ Dangerously high levels of
frustration in the blood
‣ Little interest in long term career
investments (see: not hip)
‣ At least it s not Java
plone means getting hands dirty and
drinking away your sorrows
once you finish the day
supton, #plone, January 2012
29. ‣ Plone developers cost much more
than the competition because they
are highly skilled + scarce
‣ Ramp up is expensive and risky
‣ Clients have the right to a saturated
developer market should they move
on to a different company
‣ Investing in Plone without the backing
of a major company is still too risky
‣ Diversity in quality of developers
A large community
of happy developers...
... makes firing
easier
30. Redefining Sexy Too many packages rely on
too few [brilliant] maintainers;
the code is so interesting and
innovative, people are afraid
to touch it.
We need to nurture a culture
where code is usable and
maintainable by the
average Plone developer.
31. Plone is from Mars,
Drupal is from Venus
‣ Persisting complexity is a result of poor
communication in the community
‣ Core devs are not scapegoats
‣ Be loud, clear, present use cases
‣ Less complaining, more enabling
‣ I feel like .... when I have to ...
36. Compatibility
Data migrations from Plone
2.5 to 4 were very successful.
Data compatibility will always
be important but in general
are caring less about API
compatibility. The worst of
the storm is over if you have
migrated.