5 Things That Rock About Plone 4

The Plone community, led by Plone 4 Release Manager Eric Steele, just pushed out Plone 4, a huge upgrade to my favorite content management system.  Incorporating over three years of work from over 300 contributors, there’s a lot to be excited about.  Plone 4 takes Plone to new heights of speed, usability and just plain good looks.  Here at Groundwire, we’ve been developing several client projects against pre-release versions of Plone 4, so we’ve already had a few months to put some mileage on it.  Here’s what I’m most excited about:

1) New graphical HTML editor: TinyMCE

For most day-to-day Plone users, the graphical HTML editor *is* Plone.  Plone has shipped with a graphical HTML editor included since Plone 2.1 in 2005, and it still amazes me that some major open-source CMS projects don’t include one out of the box.  (Yes, I know some users like “choice,” but that’s no excuse for not having a sensible default.)

Plone 4 now includes TinyMCE as its graphical HTML editor, replacing Kupu, which has served us long and well.  (And which continues to be an optional add-on.)  TinyMCE deliers a much more polished, user-friendly and customizable content editing experience

I waxed enthusiastic about TinyMCE when it was first released as an add-on for Plone 3, and my love for it has only grown deeper with time.  Our not-so-HTML-savvy clients love it, too.

2) New default theme: “Sunburst”

For the first time in its 9-year history, we’ve shipped a new default theme with Plone.  It’s called Sunburst, and it’s a triumph of elegant minimalism in web design.

Sunburst’s beauty is more than skin-deep.  Designer (and Plone co-founder) Alex Limi is User Experience Lead for Mozilla Firefox, so he knows a thing or two about how to make the web beautiful, usable and accessible.  Sunburst incorporates all of the wisdom he’s gained over the years, and a TON of usability feedback from everyday Plone users, Plone integrators and usability experts.

The other great thing about Sunburst is that it’s easy to customize.  We’ve stripped down the templates and the CSS, removing a lot of clutter that had crept into the default Plone templates over the years.  This will make things much easier for site integrators and theme builders and sets the stage for more improvements to “through the web” theming in Plone 4.1.

3) Vroom!

Plone 4 is fast, fast, fast.  If there was a singular obsession of the core Plone developers during the Plone 4 release cycle, it was making Plone go faster than ever before.  Hanno Schlichting was the “speed champion” for Plone 4.  While most of the Plone team has been focused on building new features and refining our UI, Hanno was tinkering in the lab, doing performance profiling to figure out exactly where we were wasting precious milliseconds.  Then, he dove into the code and figured out where to make exactly the  right tweaks to speed things up.

The results speak for themselves. Plone 4 is about 50% faster overall than Plone 3.  It handles heavy user loads far more gracefully (up to 200% better than Plone 3).  It uses less RAM.  And our “out of the box” uncached performance is now over 3x faster than the default installs of PHP solutions like WordPress, Joomla! and Drupal that are often regarded as “good performers.”

And the best is yet to come.  Plone 4.2 is planning to offer another optional 50% performance boost by letting you use Chameleon, a drop-in replacement templating engine that works with our existing Zope Page Templates.  (Brave folks can try out Chameleon right now, but you have to be certain that all of your templates are XHTML-compliant.)

Hanno’s goal for Plone 5 is to boost our performance by another factor of 3 and hit 50 pages/second uncached on commodity hardware.  Vroom!

4) BLOBs: how unfattening!

In olden days, Plone stored uploaded files (aka “BLOBs” — that’s Binary Large OBjects) directly in the ZODB.  That was clean and simple, but unfortunately, meant that sites with massive numbers of documents & images produced bloated ZODBs that could be hard to manage.  Worse, Zope used to be somewhat inefficient at serving up these big files, which could really slow down a site.

There have long been add-on products for Plone such as FileSystemStorage that alleviated these problems, but these were imperfect solutions.  As it turns out, the fix really lies at the level of the Zope database itself.  And Plone 4 uses ZODB 3.9, part of Zope 2.12, which includes native support for filesystem storage of BLOBs and for super-efficient uploads & downloads.   This is a big deal, especially for Plone-powered intranets, who will find their ZODB sizes and RAM usage dropping dramatically and user satisfaction zooming skywards.

(Bonus: Plone 3 users can take advantage of this technology by using plone.app.blob, although getting it installed and configured does require solid intermediate Plone-fu.)

5) More bling!

Plone 3 included jQuery, the awesometacular javascript library that now handles most of our javascript interactivity.  Plone 4 ups the ante by including jQuery Tools, which makes it easy to build super-polished user interfaces with modal popup dialogs and forms.  We take huge advantage of this in Plone 4, by moving lots of commonly-used forms and confirmation dialogue boxes into fast, slick popup forms.  This makes day-to-day tasks like logging in, deleting content, and adding users faster and more enjoyable than ever.

Plus, add-on product authors and themers can now count on jQuery Tools being there, letting them build even more polished and effctive user interfaces for their add-on code.  For example, we’re taking advantage of it in Megaphone to make a really slick wizard for composing online advocacy letters and petitions! Plone.org’s sliding panels and accordions are all built with jQuery Tools.

3 thoughts on “5 Things That Rock About Plone 4”

  1. Hi,
    I noticed you write about BLOB support:
    “Worse, Zope used to be somewhat inefficient at serving up these big files, which could really slow down a site.”

    This sounds very interesting. How will BLOBs make it easier to serve out files? Do they get served out by some light weight processes?

    Cheers
    /Jörgen

  2. Jörgen

    Great question! They get served by file stream iterators, which run outside of the standard Zope threads. I’m not certain, however, in which version of Zope this was added. But proper ZODB BLOB support lets us take full advantage of it now.

Comments are closed.