<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Where Next For Plone Development?</title>
	<atom:link href="http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/</link>
	<description></description>
	<lastBuildDate>Wed, 08 Sep 2010 10:58:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ian Bicking</title>
		<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/comment-page-1/#comment-57738</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Tue, 11 Nov 2008 08:45:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/#comment-57738</guid>
		<description>Obviously one of the biggest issues is a political one.  Sure, other people can write a CMS.  Someone could even pay a lot of attention to migration, and maybe pick out a handful of the most popular add-ons to also translate, and so make the intention as a successor clear.  But that itself doesn&#039;t make a New Plone.

At some future date I think the community *could* choose to make a radical change like that -- and even call the result &quot;Plone&quot; -- but it will be easy only if Plone is a CMS and not a platform for building entire web sites.  Which is why I suggest this path to making Plone into more of a CMS and less of a platform.  And ultimately that question of how to make a complete website *must* be answered -- another part of Plone&#039;s success is that it answers that question.  So right now recreating just the CMS of Plone wouldn&#039;t be sufficient to really recreate Plone.</description>
		<content:encoded><![CDATA[<p>Obviously one of the biggest issues is a political one.  Sure, other people can write a CMS.  Someone could even pay a lot of attention to migration, and maybe pick out a handful of the most popular add-ons to also translate, and so make the intention as a successor clear.  But that itself doesn&#8217;t make a New Plone.</p>

<p>At some future date I think the community <em>could</em> choose to make a radical change like that &#8212; and even call the result &#8220;Plone&#8221; &#8212; but it will be easy only if Plone is a CMS and not a platform for building entire web sites.  Which is why I suggest this path to making Plone into more of a CMS and less of a platform.  And ultimately that question of how to make a complete website <em>must</em> be answered &#8212; another part of Plone&#8217;s success is that it answers that question.  So right now recreating just the CMS of Plone wouldn&#8217;t be sufficient to really recreate Plone.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris McDonough</title>
		<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/comment-page-1/#comment-57025</link>
		<dc:creator>Chris McDonough</dc:creator>
		<pubDate>Sat, 08 Nov 2008 19:13:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/#comment-57025</guid>
		<description>It&#039;s pretty hard to do the matrix calculus that makes most of the
various Plone constituencies happy while still doing something useful
along any meaningful simplification axis.  So finding some middle
ground where Plone stakes out its ground as-is (&quot;CMS&quot;), and other
tasks are delegated to other systems as necessary is probably a good
idea.

But at the same time, I&#039;d probably avoid taking this route for new
customer projects.  Content management features aren&#039;t too hard to
create in any of the new crops of Python web frameworks.  Writing a
form, even auto-generating that form using some framework, accepting
input from users, showing errors, managing users, etc: for any given
project, satisfying these types of requirements tends to be pretty
easy *without* Plone.  It&#039;s often much harder to remove unnecessary
features from Plone than it is to create the necessary ones from
scratch.  It would take a heck of a lot of intersection between a
random customer&#039;s requirements and the feature set that Plone provides
out of the box for me to use Plone as the &quot;CMS&quot;, and delegate other
tasks to a simpler system.  I&#039;d tend to just use the simpler system
for everything, left to my own devices.  That said, for legacy systems
that already use Plone, I&#039;d likely go with Content Mirror.

IMO, the killer feature of Plone that no other &quot;framework&quot; has is that
it does *something* out of the box.  Folks who install and use it can
quickly get a frame of reference quickly, and they can describe (to
themselves or others) requirements in terms of modifications to that
out of the box experience.  And for better or worse, people tend to do
those modifications to Plone to satisfy the requirements.  So it
drives a good deal of consulting business.

So how do we square the circle?  I&#039;m not sure.  But I don&#039;t think too
many tears would be shed if something else were created that was
materially simpler and offered some similar set of features out of the
box.  I suspect that a phoenix-from-the-flames project that aimed to
recreate a Plone-ish out-of-the-box experience, but which ditched
backwards compatibility would probably be most successful in the long
run.  There are of course Plone add-ons and such, and these are
important, but even without those, an alternative could probably
support a healthy community.  It shouldn&#039;t be called Plone, obviously.
This of course mirrors what we&#039;re doing with bfg vs. Zope, so I
suppose my saying any of that is not very surprising.</description>
		<content:encoded><![CDATA[<p>It&#8217;s pretty hard to do the matrix calculus that makes most of the
various Plone constituencies happy while still doing something useful
along any meaningful simplification axis.  So finding some middle
ground where Plone stakes out its ground as-is (&#8220;CMS&#8221;), and other
tasks are delegated to other systems as necessary is probably a good
idea.</p>

<p>But at the same time, I&#8217;d probably avoid taking this route for new
customer projects.  Content management features aren&#8217;t too hard to
create in any of the new crops of Python web frameworks.  Writing a
form, even auto-generating that form using some framework, accepting
input from users, showing errors, managing users, etc: for any given
project, satisfying these types of requirements tends to be pretty
easy <em>without</em> Plone.  It&#8217;s often much harder to remove unnecessary
features from Plone than it is to create the necessary ones from
scratch.  It would take a heck of a lot of intersection between a
random customer&#8217;s requirements and the feature set that Plone provides
out of the box for me to use Plone as the &#8220;CMS&#8221;, and delegate other
tasks to a simpler system.  I&#8217;d tend to just use the simpler system
for everything, left to my own devices.  That said, for legacy systems
that already use Plone, I&#8217;d likely go with Content Mirror.</p>

<p>IMO, the killer feature of Plone that no other &#8220;framework&#8221; has is that
it does <em>something</em> out of the box.  Folks who install and use it can
quickly get a frame of reference quickly, and they can describe (to
themselves or others) requirements in terms of modifications to that
out of the box experience.  And for better or worse, people tend to do
those modifications to Plone to satisfy the requirements.  So it
drives a good deal of consulting business.</p>

<p>So how do we square the circle?  I&#8217;m not sure.  But I don&#8217;t think too
many tears would be shed if something else were created that was
materially simpler and offered some similar set of features out of the
box.  I suspect that a phoenix-from-the-flames project that aimed to
recreate a Plone-ish out-of-the-box experience, but which ditched
backwards compatibility would probably be most successful in the long
run.  There are of course Plone add-ons and such, and these are
important, but even without those, an alternative could probably
support a healthy community.  It shouldn&#8217;t be called Plone, obviously.
This of course mirrors what we&#8217;re doing with bfg vs. Zope, so I
suppose my saying any of that is not very surprising.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Malthe Borch</title>
		<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/comment-page-1/#comment-56902</link>
		<dc:creator>Malthe Borch</dc:creator>
		<pubDate>Sat, 08 Nov 2008 09:04:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/#comment-56902</guid>
		<description>In my experience with the use of components and component adaptation in Plone, there are two major problems.

The first is, that adaptation is overused. A portlet is a five-way adapter and there&#039;s no way to change the adaptation order. This rules out a swift solution for most of the more advanced use-cases, simply because you&#039;d have to work very hard with the system to get the adaptation pattern you really want. Adaptation as we know it is simply not a very good multiplexer.

The second issue is that we can&#039;t really ever strike the right balance between explosion and coherence in defining the scope of a component. The best example I know of this is the navigation machinery. This is implemented as a collection of components that each have some scope and function and they&#039;re glued together using the component registry. However, in most cases, I&#039;ve wanted to simply provide a replacement wholesale, and in this case, the exploded code chain is counterproductive and needlessly complex.

To recap, I believe the correct usage of components is to adapt on small specifications, with one-way or two-way being standard, avoid adaptation for multiplexing where possible and finally to avoid exploding our software into too many components. We still have object-oriented programming and Python is still a dynamic language.</description>
		<content:encoded><![CDATA[<p>In my experience with the use of components and component adaptation in Plone, there are two major problems.</p>

<p>The first is, that adaptation is overused. A portlet is a five-way adapter and there&#8217;s no way to change the adaptation order. This rules out a swift solution for most of the more advanced use-cases, simply because you&#8217;d have to work very hard with the system to get the adaptation pattern you really want. Adaptation as we know it is simply not a very good multiplexer.</p>

<p>The second issue is that we can&#8217;t really ever strike the right balance between explosion and coherence in defining the scope of a component. The best example I know of this is the navigation machinery. This is implemented as a collection of components that each have some scope and function and they&#8217;re glued together using the component registry. However, in most cases, I&#8217;ve wanted to simply provide a replacement wholesale, and in this case, the exploded code chain is counterproductive and needlessly complex.</p>

<p>To recap, I believe the correct usage of components is to adapt on small specifications, with one-way or two-way being standard, avoid adaptation for multiplexing where possible and finally to avoid exploding our software into too many components. We still have object-oriented programming and Python is still a dynamic language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mike bayer</title>
		<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/comment-page-1/#comment-56741</link>
		<dc:creator>mike bayer</dc:creator>
		<pubDate>Fri, 07 Nov 2008 18:45:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/#comment-56741</guid>
		<description>+1 on contentmirror, the concept seems great and I&#039;m looking forward to trying it.</description>
		<content:encoded><![CDATA[<p>+1 on contentmirror, the concept seems great and I&#8217;m looking forward to trying it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/comment-page-1/#comment-56738</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Fri, 07 Nov 2008 18:34:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/#comment-56738</guid>
		<description>I think Plone should take a carrot approach to simplification, not the stick of removing or deprecating techniques.  Right now every Plone site of any substantial size has non-CMS aspects to it.  Removing things from Plone is politically difficult as a result.  Getting people to implement those non-CMS things outside of Plone seems like the easier approach at the moment, the approach that is on most people&#039;s timelines (even if the dates are different), and it doesn&#039;t have to effect backward compatibility right now.  But actually doing this isn&#039;t easy, and probably requires some extra help from Plone as well.  So I think it makes sense to figure out that story, to focus on that work for now, because it&#039;s not a small amount of work and it won&#039;t happen with out direct effort.  If that&#039;s successful then I think it&#039;ll be much less disruptive if Plone itself is simplified.

As Carlos suggests, I think ContentMirror could be part of that story.  The more formally &quot;correct&quot; solution might be web services of some sort, but I think a relational database mirror is probably better understood and less likely to cause performance problems due to its implicitly async design.</description>
		<content:encoded><![CDATA[<p>I think Plone should take a carrot approach to simplification, not the stick of removing or deprecating techniques.  Right now every Plone site of any substantial size has non-CMS aspects to it.  Removing things from Plone is politically difficult as a result.  Getting people to implement those non-CMS things outside of Plone seems like the easier approach at the moment, the approach that is on most people&#8217;s timelines (even if the dates are different), and it doesn&#8217;t have to effect backward compatibility right now.  But actually doing this isn&#8217;t easy, and probably requires some extra help from Plone as well.  So I think it makes sense to figure out that story, to focus on that work for now, because it&#8217;s not a small amount of work and it won&#8217;t happen with out direct effort.  If that&#8217;s successful then I think it&#8217;ll be much less disruptive if Plone itself is simplified.</p>

<p>As Carlos suggests, I think ContentMirror could be part of that story.  The more formally &#8220;correct&#8221; solution might be web services of some sort, but I think a relational database mirror is probably better understood and less likely to cause performance problems due to its implicitly async design.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Aspeli</title>
		<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/comment-page-1/#comment-56695</link>
		<dc:creator>Martin Aspeli</dc:creator>
		<pubDate>Fri, 07 Nov 2008 14:31:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/#comment-56695</guid>
		<description>In part, this comes down to the old &quot;application vs. platform&quot; argument. I think that technologies like WSGI and Repoze are enabling Plone to be more of an application again, because, as you say, non-CMS functionality can be built elsewhere.

I personally believe that Repoze and Grok are both key to Plone&#039;s future. Roughly, I think the roadmap should look something like this:

 * Rip out things we no longer need (already happening on trunk).

 * Where two ways exist to do something, choose one way and remove all other ways (starting to happen on trunk).

 * Target key use cases for extending Plone-the-application and focus on making these as easy and friendly for integrators as possible (this is where I think Grok conventions and patterns will be beneficial). This includes things like:

   * Making new content types
   * Writing new UI components (e.g. views, viewlets, portlets, or some unification thereof)
   * Customising templates
   * Customising the security/workflow model
   * Writing events-based things, e.g. code that executes when objects are modified or whatever

 * Push services that could cross-cut applications out into WSGI middleware so that they become reusable (this is where Repoze comes in)

 * Promote the use of other, WSGI-enabled frameworks for non-CMS tasks (be that repoze.bfg or Grok or something else)

 * Promote a way to unify look-and-feel/theming (this is what Deliverance promises).

I whole-heartedly agree with Martijn&#039;s point about evolution. Developers have a strong tendency to favour a rewrite or a clean break, but that&#039;s a sure way to lose those who&#039;ve already invested in the platform. We&#039;re only just now coming to the point where the feature set and the available tools and frameworks cover what I&#039;d consider the basic CMS needs (with a few exceptions), and there&#039;s a real drive in the community now to focus on simplification and the integrator experience.

At the same time, we need to be very careful about throwing the baby out with the bathwater. The Zope 3 CA has an important part to play in making Plone a productive, usable and flexible system. People may not be clamoring for more power, because they *have* power now. We&#039;d like to unify the way in which that power is provided (e.g. by removing some things that still rely on acquisition when it should rely on components), not take it away.

We also need to be better at indicating what extension points and APIs are aimed at integrators/developers and what things are really just the concern of Plone&#039;s core developers. Right now, &quot;the API&quot; is kind of the whole application, in that you can customise and change anywhere. We need to ring-fence that with something a bit more obvious that gets people started quickly, and only require them to get into that level of detail if they really need to.

Cheers,

Martin</description>
		<content:encoded><![CDATA[<p>In part, this comes down to the old &#8220;application vs. platform&#8221; argument. I think that technologies like WSGI and Repoze are enabling Plone to be more of an application again, because, as you say, non-CMS functionality can be built elsewhere.</p>

<p>I personally believe that Repoze and Grok are both key to Plone&#8217;s future. Roughly, I think the roadmap should look something like this:</p>

<ul>
<li><p>Rip out things we no longer need (already happening on trunk).</p></li>
<li><p>Where two ways exist to do something, choose one way and remove all other ways (starting to happen on trunk).</p></li>
<li><p>Target key use cases for extending Plone-the-application and focus on making these as easy and friendly for integrators as possible (this is where I think Grok conventions and patterns will be beneficial). This includes things like:</p>

<ul>
<li>Making new content types</li>
<li>Writing new UI components (e.g. views, viewlets, portlets, or some unification thereof)</li>
<li>Customising templates</li>
<li>Customising the security/workflow model</li>
<li>Writing events-based things, e.g. code that executes when objects are modified or whatever</li>
</ul></li>
<li><p>Push services that could cross-cut applications out into WSGI middleware so that they become reusable (this is where Repoze comes in)</p></li>
<li><p>Promote the use of other, WSGI-enabled frameworks for non-CMS tasks (be that repoze.bfg or Grok or something else)</p></li>
<li><p>Promote a way to unify look-and-feel/theming (this is what Deliverance promises).</p></li>
</ul>

<p>I whole-heartedly agree with Martijn&#8217;s point about evolution. Developers have a strong tendency to favour a rewrite or a clean break, but that&#8217;s a sure way to lose those who&#8217;ve already invested in the platform. We&#8217;re only just now coming to the point where the feature set and the available tools and frameworks cover what I&#8217;d consider the basic CMS needs (with a few exceptions), and there&#8217;s a real drive in the community now to focus on simplification and the integrator experience.</p>

<p>At the same time, we need to be very careful about throwing the baby out with the bathwater. The Zope 3 CA has an important part to play in making Plone a productive, usable and flexible system. People may not be clamoring for more power, because they <em>have</em> power now. We&#8217;d like to unify the way in which that power is provided (e.g. by removing some things that still rely on acquisition when it should rely on components), not take it away.</p>

<p>We also need to be better at indicating what extension points and APIs are aimed at integrators/developers and what things are really just the concern of Plone&#8217;s core developers. Right now, &#8220;the API&#8221; is kind of the whole application, in that you can customise and change anywhere. We need to ring-fence that with something a bit more obvious that gets people started quickly, and only require them to get into that level of detail if they really need to.</p>

<p>Cheers,</p>

<p>Martin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carlos de la Guardia</title>
		<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/comment-page-1/#comment-56643</link>
		<dc:creator>Carlos de la Guardia</dc:creator>
		<pubDate>Fri, 07 Nov 2008 06:54:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/#comment-56643</guid>
		<description>One other road to take if simplification of Plone is not that easy, is to simplify the use of Plone the software for other Python developers not willing to pay the Plone tax. Using ContentMirror, for example, it is possible to serialize Plone content into a relational database and create simple applications on top of that using any other framework.

Granted, this is not an approach that can be used for all kinds of projects, but there are many use cases where separating the content production from its delivery would be a very good idea. Plone is a very good CMS, so I think it would be great if people not willing to use it as a framework can still benefit from it as a piece of software. That would make Plone, the community, even bigger.</description>
		<content:encoded><![CDATA[<p>One other road to take if simplification of Plone is not that easy, is to simplify the use of Plone the software for other Python developers not willing to pay the Plone tax. Using ContentMirror, for example, it is possible to serialize Plone content into a relational database and create simple applications on top of that using any other framework.</p>

<p>Granted, this is not an approach that can be used for all kinds of projects, but there are many use cases where separating the content production from its delivery would be a very good idea. Plone is a very good CMS, so I think it would be great if people not willing to use it as a framework can still benefit from it as a piece of software. That would make Plone, the community, even bigger.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martijn Faassen</title>
		<link>http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/comment-page-1/#comment-56634</link>
		<dc:creator>Martijn Faassen</dc:creator>
		<pubDate>Fri, 07 Nov 2008 05:32:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/#comment-56634</guid>
		<description>Concerning Repoze &quot;versus&quot; Grok. Yes, there are differences: Repoze does a lot of rewriting in the interests of implementation simplicity. Grok hasn&#039;t rewritten the implementation and focused on usage simplicity. The two systems are learning from each other: Repoze can use bits of Grok&#039;s auto-configuration system. Meanwhile inspired by some of Repoze&#039;s work (as well as frustrations with some of Zope 3&#039;s non-locality), I&#039;ve started looking at simplifying parts of the underlying Zope 3 system (and in general the sometimes complex structure of dependencies in the Zope 3 codebase is a thing Zope 3 developers are concerned about). 

Grok&#039;s busy *extracting* useful bits of code from itself and both Martian as well as grokcore.component are reusable in random Python projects. The rest of the grokcore.* stuff is reusable in Zope 2 and in fact reuse in Zope 2 is driving this process.

You say the use of the component architecture is a step in the wrong direction, but could you be more explicit about why this would be so? What if you use it in moderation? Some form of customization machinery is needed and sticking to the (well-engineered, much used, battle-tested) devil we know seems like the right idea to me.

It&#039;s important for any scenario to move forward is to have a way to evolve from A to B. You can take risks in this evolution, and perhaps larger risks should be taken, but it still will have to be an evolutionary step.

The word &quot;simple&quot; means different things to people. Simple in implementation? Simple in use? Simple to change? Assembly language is simple in implementation and Python adds huge amounts of abstraction and automation over a machine. Yet, Python&#039;s a lot simpler in use than assembly language, even though assembly is so much simpler in implementation. So, of course automation and abstraction can be added to a system to make things simpler! That said, implementation simplicity can increase usage simplicity as a system can become easier to understand and predict, but it&#039;s hardly clear-cut. Simplicity in implementation is valuable when it increases simplicity of development, and simplicity of use.

So, I&#039;ll grant there is value in simplicity in implementation. I also believe Plone&#039;s implementation can be significantly simpler. It&#039;ll still be complex no matter what, though, just *less* complex than it is now. Any move to simplify Plone will run the risk of trading off one form of complexity for another. There is also value in sticking to the complexity the community knows about.

I believe Plone&#039;s best road to simplification takes two paths:

* Towards simplicity of implementation: removing some of the old ways of doing things permanently. Hopefully a point in evolution has been reached that old things can be removed. The removal of acquisition from the system would be a good, though big example. Allow content types that are truly simple and don&#039;t rely on SimpleItem and a whole bunch of other things would be another good step.

* Towards simplicity of use: adding easier ways to do things that are too hard right now. Using Grok technology to help with the wiring of the inevitable configuration machinery is a good example.

The alternative would be writing a new CMS taking into account the lessons learned from Plone. That&#039;s an interesting project. Is it the Plone project?</description>
		<content:encoded><![CDATA[<p>Concerning Repoze &#8220;versus&#8221; Grok. Yes, there are differences: Repoze does a lot of rewriting in the interests of implementation simplicity. Grok hasn&#8217;t rewritten the implementation and focused on usage simplicity. The two systems are learning from each other: Repoze can use bits of Grok&#8217;s auto-configuration system. Meanwhile inspired by some of Repoze&#8217;s work (as well as frustrations with some of Zope 3&#8217;s non-locality), I&#8217;ve started looking at simplifying parts of the underlying Zope 3 system (and in general the sometimes complex structure of dependencies in the Zope 3 codebase is a thing Zope 3 developers are concerned about). </p>

<p>Grok&#8217;s busy <em>extracting</em> useful bits of code from itself and both Martian as well as grokcore.component are reusable in random Python projects. The rest of the grokcore.* stuff is reusable in Zope 2 and in fact reuse in Zope 2 is driving this process.</p>

<p>You say the use of the component architecture is a step in the wrong direction, but could you be more explicit about why this would be so? What if you use it in moderation? Some form of customization machinery is needed and sticking to the (well-engineered, much used, battle-tested) devil we know seems like the right idea to me.</p>

<p>It&#8217;s important for any scenario to move forward is to have a way to evolve from A to B. You can take risks in this evolution, and perhaps larger risks should be taken, but it still will have to be an evolutionary step.</p>

<p>The word &#8220;simple&#8221; means different things to people. Simple in implementation? Simple in use? Simple to change? Assembly language is simple in implementation and Python adds huge amounts of abstraction and automation over a machine. Yet, Python&#8217;s a lot simpler in use than assembly language, even though assembly is so much simpler in implementation. So, of course automation and abstraction can be added to a system to make things simpler! That said, implementation simplicity can increase usage simplicity as a system can become easier to understand and predict, but it&#8217;s hardly clear-cut. Simplicity in implementation is valuable when it increases simplicity of development, and simplicity of use.</p>

<p>So, I&#8217;ll grant there is value in simplicity in implementation. I also believe Plone&#8217;s implementation can be significantly simpler. It&#8217;ll still be complex no matter what, though, just <em>less</em> complex than it is now. Any move to simplify Plone will run the risk of trading off one form of complexity for another. There is also value in sticking to the complexity the community knows about.</p>

<p>I believe Plone&#8217;s best road to simplification takes two paths:</p>

<ul>
<li><p>Towards simplicity of implementation: removing some of the old ways of doing things permanently. Hopefully a point in evolution has been reached that old things can be removed. The removal of acquisition from the system would be a good, though big example. Allow content types that are truly simple and don&#8217;t rely on SimpleItem and a whole bunch of other things would be another good step.</p></li>
<li><p>Towards simplicity of use: adding easier ways to do things that are too hard right now. Using Grok technology to help with the wiring of the inevitable configuration machinery is a good example.</p></li>
</ul>

<p>The alternative would be writing a new CMS taking into account the lessons learned from Plone. That&#8217;s an interesting project. Is it the Plone project?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.631 seconds -->
