One of the subjects I find myself thinking about a lot is: Plone (surprise!) In Plone-land, we deliver the best Python-based CMS money can’t buy on top of an aging Zope 2 “application server” mixed with newer Zope, Python, and other technologies. In short, this is a challenge.
Further to the point, I think about “new tech” vs “old tech” a lot and how to happily marry the two. Here is one concrete example of my thought process. Diazo is the “new theming engine” in Plone which allows folks to perform complex XSLT transformations via a simple XML rule set. It sounds great, and it often is. But something won’t let my mind reach the “Ahhhh this is great technology!” point. Instead, I often find myself thinking “This is great technology, BUT…” which I don’t want to think when I’m thinking about Plone.
However I’m beginning to settle on an “acceptable thought process”, to describe how Diazo fits on top of 10 years of legacy Plone technology: it’s pioneering. As I have observed over the years, Plone developers have taken great pride in being the “first to market” with cutting edge and useful CMS features other vendors would love to include in their product.
But are other CMS vendors watching?
Of issue with Diazo is:
- Plone now has two distinct templating environments: the application environment which still has plenty of templates to customize & the theming environment which also has templates to customize. This is both good and bad: it’s good when everyone can easily figure out where to customize what they want to customize, and bad when this process breaks down.
- Diazo allows for some complex rules to be written along with custom XSLT. That power allows folks to produce some truly unwieldy and wholly unmaintainable messes, for lack of a better description. I’m sad to say I’ve seen many of these in the wild, in just the few short years Diazo has existed.
After all this thinking, I’ve reached the following conclusion(s):
- The concept of editing templates most web developers are familiar with is still valid in Plone. But we must work harder to demonstrate where and how these customizations can occur. With great tools comes great power, but not without significant risk of injury (the so-called “power tool” analogy.)
- We should strive for the appearance of one templating environment. The easiest way to do this is to have only one templating environment. Many electronic flames have been burned over the discussion of making Diazo that single environment. In the meantime let’s disassemble, polish & reassemble all of our templating environments and put effort in to making the difference between them seemless. (zope2_bootstrap anyone?)
And other CMS vendors should be watching, because Plone 5 is about to drop!
(You should probably hire me or follow me on Twitter or both.)