Skip to content.

plope

Personal tools
You are here: Home » Members » chrism's Home » Is Plone a CMS?
 
 

Is Plone a CMS?

Continuation of a discussion from an older blog post.

Although I meant it as an example of "marketing overrunning reality" and not as some absolute statement about Plone's actual place in any specific market, folks are taking exception to my assertion that Plone is not a content management system .

The CMS term is pretty fuzzy. I understand it to mean "a system that lets content editors edit and manage content in a structured way." Never mind that people have wildly different ideas about what "content", "edit", "manage", and "structured" mean, that's the 10000-foot view. And yes, Plone, literally does just this, and it does it really well. So technically, yes, I suppose it is a CMS.

But this is a technicality, it doesn't take into account the assumptions of the people who actually pay for "CMS solutions". The reason for a content management system isn't just to allow content editing and management to take place. The people who build content management systems don't just build them so lots of people can edit things and view those things in some highly-regular but also slightly ugly UI. No! That would be an "intranet". Plone is a great intranet solution. However, when people buy a "CMS", they're assuming that at some point, the content will be delivered to end users in a much different form. And it needs to be delivered quickly, because there are a lot more people who want to just look at the content than there are those who need to edit and manage the content (unlike an intranet).

You can coax Plone into doing content delivery for an application like this. But it's either hard or slow. This is due to things in Plone like the "globalize" hack, which does arbitrary stuff at main template load time (hilariously its docstring says "Pure optimization hack, globalizes entire view for speed"; it does the opposite). And other bits of the UI kick off the Archetypes reference stuff, which somehow in one application I've developed causes some insane number of catalog queries (over a hundred) for a single request (still working on that one). So, you have to replace the main template for retaily users. And you have to go create more sane view methods for some things. And you have to track all the other crap down by using the profiler and exorcising the stupid bits. Fine. But this takes a long ass time. It's bullshit. I'm wasting the customer's money. If the delivery requirements are far more stringent than the editing requirements, Plone is not the right platform. You'd be better off just starting the project off in a blank buffer than using Plone in similar situations, particularly if you have to change the content editing interface materially too.

So that's where I'm coming from with my "Plone is not a CMS" assertion, for better or worse. I think there are lots of things we can do to make the content delivery story better, and I hope to be able to talk about them at the upcoming summit.

Created by chrism
Last modified 2008-02-06 09:16 PM

CMS

Sounds more like you mean "Plone is a crappy CMS because it is slow as molasses". And probably there is a subtle underlying statement "and don't give me any Squid bullshit, that's just a half-assed content delivery system that integrates poorly anyway". (Sorry, I'm a little punchy tonight, and not too politic.)

I could agree with these, but I don't think it means Plone isn't a CMS ;)

Erm...

I normally think you're a bit more on the ball than this, Chris. ;-)

First of all, I agree with Ian - speed is not the same as purpose. Some people prefer to separate content *management* from content *delivery*, but that depends on the use case (typically: are you mainly concerned with publishing static content once it's been edited, or do you want a more dynamic, logging-users kind of thing). In either case, you seem to be arguing that Plone is better at the *management* than the *delivery* - the M in CMS.

About that docstring, it refers to the old implementation where all those global variables were defined with TAL. Putting them in a view was way quicker. The same docstring says that this whole idea of global variables is a terrible idea (and indeed a source of much slowness) and that new ones should be added on penalty of death. :)

Martin

i disappoint sometimes..

Yes, I do disappoint sometimes. ;-)

As I said, technically it is a CMS. So yup.

Here's the docstring for globalize:

"""
Pure optimization hack, globalizes entire view for speed. Yes
it's evil, but this hack will eventually be removed after
globals are officially deprecated.

YOU CAN ONLY CALL THIS METHOD FROM A PAGE TEMPLATE AND EVEN
THEN IT MIGHT DESTROY YOU!
"""

.... I don't see anything about punishment by death if you add more, just sort of a nebulous intent to remove globals at some point entirely. Certainly nothing saying that it's slow. No! It's "for speed"!