old dogs and new tricks
DESCRIPTION
Overview of where we are going with Plone 4 and a visions for Plone 5. May contain adult content.TRANSCRIPT
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
WARNINGAlthough 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.
Plone 4.X
..... .....
4.[1,2,3] Trend‣ Modernizing the User Experience
‣ Commenting
‣ Theming (Diazo)
‣ Search
‣ Collections
‣ Content type creation
(Dexterity )
‣ Events
‣ Modernizing The Architecture‣ Performance++
‣ Repackaging Party
‣ Keep up with Zope releases
‣ Standardizing APIs
‣ HTML 5
‣ Python 2.7
4.1
4.2
4.3
New Release Process
0
15
30
45
4.0 4.1 4.2 4.3 4.4*
Proposed AcceptedMerged Incomplete
4.0
4.1
4.2
4.3*
0 100 200 300 400
Days from Last Release to AlphaDays from Alpha to Release
PLIPS Releases
* PLIP monster wants PLIPS
4.Future PLIP Potential
‣ Continue UI/Type Modernization‣ Form widgets
‣ Calendaring (solgema.fullcalendar?)
‣ Video (redturtle.video?)
‣ Related Content Browser
‣ Small Innovations in New Places‣ Tracking user activity/Reporting
‣ Pull significant awesome add-ons into
core
‣ Mobile Support OOB (responsive or
otherwise)
‣ AJAX/JSON anyone?
Modernizationmust be a continuing process
Innovationmust happen in small places
meh.
meh dog says...
3 Year Checkup
The Complexity of Plone
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.
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.
Performance
If you can’t see the
performance
improvements, you
aren’t looking.
‣ Python 2.6, 2.7
‣ Catalog Optimizations
‣ DateTime Refactoring
‣ plone.app.caching
Dexterity‣ Flexible and fast
‣ Still no defined way out of
Archetypes
‣ Reusing other technologies
‣ Complexity remains
Meanwhile in dreamland...
‣Deco/Tiles
‣Usability
‣Performance
‣1 content type to
RULE THEM ALL! GLITTER+PONIES = UNICORNS=== Plone 5
blah blah blah.
meh dog says...
Facing Reality
???Deco Light?
CMSUI?The #1
framework of post apocalyptic
times?
2010?2011?
2012?
Grok?
Whatever the release manager says it is?
So, then, WTF is Plone 5?
Add Ons
2010
2011
2012*
0 125 250 375 500
New Updated
In January 2012, 29 new add-ons were registered on Plone.org. That is almost
one new add-on per day.
Active Core Contributors
A Culture of Suburbanites
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
..... .....
Framework Core Values
‣ XML Configuration
‣ Easy debugging
‣ Extensibility/Pluggability
‣ 100% test coverage
‣ Best in class code
‣ More documentation
‣ Hard things easy
‣ Code next to config
‣ Syntactic Sugar
‣ The custom folder
‣ Happy end users
‣ Clear and simple APIs
‣ Better documentation
‣Easy things easy
Programming, Motherfucker
Teaching Python Web‣ Task: Make a TODO list
‣ Audience: New to Python
‣ 3 frameworks, 3 hours
per framework
‣ web2py, flask, DjangoInterfaces? I’ll just use PHP then.
meh dog says...
The patient suffers from a severe deficiency of
Syntactic Sugar(Hypoglycemia)
Simple Syntax
@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))
Hypoglycemia
‣ 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
Using Recommended Practices:
Documentation
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,
communityMake documentation less important with intuitive code!
Spanky Certified
✓ 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
Plone [5?] has the potential to make
Happy Developers!
... makes hiring 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
A thriving community of happy developers...
‣ 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
... makes firing easier
A large community of happy developers...
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.
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 ...”
EXCUSES
Plone 5 code name: No Excuses
..... .....
Summary
‣Plone 4
Modernizing the Plone
user experience
‣Plone 5
Modernizing the Plone
developer experience
Fin.(no questions is the new black)
Extra Content
CompatibilityData 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.
References
‣ Full details of how to document in Plone
‣ Full details of new plip process
‣ Link to a shared repo for sprint
Attachments
๏ seniordogsacrossamerica.com
๏ http://nagonthelake.blogspot.com/2011/06/nancy-levines-portraits-of-senior-
dogs.html
๏ http://davisfreeman.com/blog/tag/portraits
๏ flickr.com/photos/mrtopf/372006971/
๏ wordl.net
๏ manyniches.com/windows-phone/happy-developers/
๏ sodahead.com/fun/have-you-ever-been-dog-tired/question-2352589/?
link=ibaf&q=&imgurl=http://3.bp.blogspot.com/-OLnmi8bqkHE/TZvcjjU2liI/
AAAAAAAABPs/lbG2f0wwuAE/s1600/Dog%252520Tired%252520Dog.jpg