Disappointed by Plone
I’ve just spent several evenings learning Plone, which is a Content Management System (CMS) written on top of Zope, which is a web application server written in Python. Most of our software is written in Java and at some point we will switch to a Java based CMS, which integrates well with our web development effort. So even though we’ve no intentions to use Plone, I gave it a look since it has cropped up in a number of different places recently.
On first sight Plone looks good. Creating my first page was simple, the code generated is clean and it works as expected. However things soon deteriorate.
Problems
There are a number of areas in which it appears that Plone has evolved without architectural planning. For example Plone was initially designed for a community portal, where members join and create their own pages, and this heritage still shows. To make it do something else means turning off all of that side before you start.
Another problem is the lack of a single management console. Some things are done in Plone, which has the start of a decent console. but some things are done in the Zope Management Interface, which is prety grim. Then there are some things that can only be done through the filesystem. (Things may be about to improve here as there is a new version of Zope, which is a major rewrite but not yet integrated with Plone. Hopefully this will be a lot better.)
There are lots of unused bits just lying around but without any discernible plan to deprecate them and tidy them up. In other places the system is just plain inconsistent.
On the bright side though, some things are very easy. In particular creating static content directly through Plone is easy. Forms are also easy and straightforward, but as they are created in ZMI their relationship to the structure of the static content is tenuous. On the other hand, creating new content types is difficult and requires much more low-level hacking than a CMS should need.
Books and Documentation
The one thing that really lets it down is the documentation, which is truly awful. Even the books are well below the normal standard of technical books. To help me get up to speed on Plone I read two books, The Definitive Guide to Plone and Building Websites with Plone. Both of these were of much lower quality than I expected.
The first book tries to follow a considered plan but it is just plain shoddy with lots of little failings that make it a nightmare to follow. For example, in one place it describes an operation to be carried out in a particular location, but the screenshots show it in a different place. This book even has mistakes in the code.
The latter book is no better. It covers a much wider range of subjects than the first book, but does so without any understanding of what’s going on in the head of the reader, making it thoroughly confusing. This book is very technical, but in way that just describes the technology rather than explaining it.
Both of these books look like normal technical books. For example they both try to build an example site using the concepts learnt, but they do it in such a poor fashion they need not have bothered. This ‘half-finished and badly thought out’, impression that I got from these books is exactly the same that I get from Plone.
Conclusion
I’m sure Plone can be very good for specific types of site, such as community portals or ones with lots of static content and forms. Plone also has a strong development community so it may one day live up to its promise.
Overall however, Plone is exceptionally difficult to use, has all sorts of issues and is a long way off meeting my expectations of a CMS. That’s not to say that you can’t build a good site in it, but it will take a superhuman effort.

