A question we often hear when discussing projects with clients is, "Why should I upgrade to Plone 4?" This post will attempt to answer that question by highlighting some of the changes that affect both users and developers.
1. Benefits for Users
Compared to Plone 3.3 Plone 4.0 is about 50% faster, ranging from 30% for edit pages up to 70% for anonymous page views.
In order to illustrate the impact I used one large real site and tweaked it to resemble a default Plone 4.0 and 4.1. … For pages doing either multiple catalog searches or catalog searches over large amounts of content we get an improvement of 2x up to 4x. For an edit screen that doesn't even show the navigation tree, there's less benefit. But even rendering the top sections and the language selector results in a 1.4x improvement for this site.
Latest Product Versions
Modern Visual Editor
- It gets the “Link” drawer right. Kupu has two separate drawers, one for internal (inside your site) links, and one for external links. That’s confusing and awkward for users. TinyMCE combines these into a single drawer, and raises Kupu by adding point-and-click support for mailto: and https: links and control over whether links open a new window. The overall design of the drawer is a lot cleaner and it feels a lot more responsive.
- Similarly, Product.TinyMCE’s “Image” drawer is also a nice improvement. Its features are basically equivalent to Kupu’s, although its support for image captioning is a bit cleaner.
- Product.TinyMCE’s support for creating and editing HTML tables is pretty solid. This was always a weak area for Kupu, and a very difficult task for any graphical HTML editor.
- Products.TinyMCE handles Flash embedding in a clean and user-friendly way. Flash embedding is possible in current versions of Kupu, but often feels a bit awkward and unreliable.
Plone 4.0 introduced changes to the advanced search form to make it more user-friendly, and Plone 4.2 introduced changes to simplify the search results screen. You can try out the changes live on the Plone Demo site.
Better Large File Handling
Plone 4 introduced a large change in how large files are stored. Instead of serializing them into the ZODB, they are stored directly on the filesystem.
Potsdam Institute For Climate Impact Research had a 16.5 GB database containing documents and other media:
- Upgrading the entire site to the new, filesystem-based storage: 51 minutes.
- Plone database size: reduced from 16.5 GB to 3.0 GB.
- Memory footprint on the heavily cached server: reduced from 10 GB to 3 GB.
- Load on the site while in heavy use: reduced to 10-20% of the previous CPU usage, with no intermittent massive spikes, as had been the case with Plone 3.
- File transfers were faster, with no discernable increase in memory usage while large documents were being downloaded.
The Plone 3 line included many packages that were still had not completely adopted modern Python packaging practices. This led to many problems when deploying Plone, as it could easily try to install sets of packages that were completely incompatible with your configuration. The 4.x line has reached the point where all products have been packaged using up to date practices. This means that dependency tracking is greatly simplified, and it allows you to see at a glance the exact versions of all software in use. For example, you can examine the versions.cfg file for Plone 4.2.1 which shows the version of every dependency of the CMS.
With the move from version 3 to 4, Plone solidified its position as an industrial strength CMS. While maintaining its proven security and ease-of-use advantages, Plone 4 has stepped up its technical game in terms of speed, large file handling and memory usage to handle sites which must run under even the most serious conditions. A lot of the other advances are more subtle, but the updated editor and search are sure to provide immediate improvements in usability and satisfaction compared to Plone 3. And while you many not see the under-the-hood code cleanup, updated Python and move to modern Python packaging, anyone using a Plone 3 site upgraded to Plone 4 will immediately see the results in terms of snappier response and an improved experience for users from start to finish.