For a bunch of years now I have heard a debate within the Plone community, most notably from Paul Everitt, about whether Plone is an application or a framework. While I can't honestly say I've given the issue a ton of my time, nor am I sure I fully understand why this is a particularly important distinction, I did have one thought on the matter I wanted to share.
To me, Plone is an application.
Plone is also a framework.
Yes, that's right - it's both!
I wonder if this question is akin to asking if light is a particle or a wave. So, which is it? Well, it depends on what kind of experiment you run. This Wikipedia article explains this issue better than I could, but in the end it's all about context. Or maybe it's about the inadequacy of trying to use simplistic mental models for complex things. In either case, Plone is a framework when you need to use a framework, and it's an application when you need to use a CMS application.
I suspect this is really more of a marketing issue in Paul's view (Paul - am I right about this?) which I suppose does make it less academic. Marketing 101 tells us that you want to pick something where you (or your product or your service) are the best in the marketplace, point to that, and sell, sell, sell. You shouldn't try to be everything to everybody.
As far as this particular issue goes, it is clearly in some people's best interests to position Plone as a framework, and in other people's best interests to position Plone as an application.
So, let the public debate begin!
- Why is this important?
- Why should Plone be positioned as an application? What does that even mean?
- Why should Plone be positioned as a framework? What does that even mean?
- Is there any reason not to speak of Plone as one or the other?
- Is this discussion worth having?