Maybe we need a press office. Or a dictator.
Or ... how it's hard to tell a single story in open source (the TTW debate continues)
Paul Everitt left this comment on my previous blog post about how the Plone "core" developers don't hate through-the-web (TTW) development:
There has been an undercurrent in the stack for some time that says "TTW is Invalid", and people should be transitioned to the CA for doing customizations. I guess you're saying here that Plone's official policy is that TTW is valid and will be the right way for casual integrators to engage minor customizations?
In general, I don't think the "hating" is aimed at the Plone team. Instead, the people in the stack seem intent on saying "All changes should be done with component software and shell access to the server with restart privileges". That viewpoint *is* out there and that is the viewpoint which leaves a lot of people abandoned.
Well, undercurrents are tricky things. Their interpretation will always be subjective. In a dynamic, multi-contributor, discourse-driven open source project such as Plone, there will always be a lot of voices, a few extremes, and a truth somewhere in the middle. It is difficult to get "the message" out there, mostly because different developers will often have a slightly different opinion. I'm sure this would be easier if we had the single voice of a dictator or a single company calling all the shots, but then Plone wouldn't be Plone and certainly wouldn't be as good as what it is today.
Insofar as there can ever be a "message" we need to look at the facts. In Plone 3, we wanted to use views and viewlets and other component-based approaches to build UI. As developers, we saw clear benefits of this approach. However, in making that choice, having a TTW customisation story for these things was a prerequisite. That's right - if Philipp and Alec (and later Andreas) hadn't created five.customerize, the package that powers the portal_view_customizations tool, we would still have been doing everything in skin layers. Regression on features sucks. We know people will hate us for it. We don't like being hated. We're ego-driven open source coders, remember?
If those are the facts, then it is illogical to claim that TTW is discouraged or frowned upon. Why would we spent lots of time building new infrastructure to support TTW customisation in this way if we didn't want people to do it?
Now, if you ask in the channel or mailing list, "should I do everything through-the-web", the answer you're likely to get is "no". If there is such a thing as an "official" opinion, I think it's this:
We would like to support through-the-web template customisation. This is a great way for people to get started, and also a great escape valve for quick-and-dirty visual changes. At the same time, we caution against trying to do serious development through-the-web, since this approach has been shown not to scale very well.
I don't know if everyone would agree, but it's probably pretty close to a consensus. If you ask me, "should I use TTW", I'd feel irresponsible if I didn't warn you against the problems that arise from having only protected code, in a flat namespace, with no source control and more cumbersome editing tools. If you want to build a serious system that diverges significantly from Plone and you don't have filesystem access to your server, well... we can give you all the TTW hooks you want, but you're still going to wish you had a proper development environment to play in. But that's not to say there isn't room for both types of development (and a whole bunch of shades in between) in the Plone universe.
But back to those undercurrents. I think it's fundamentally unhelpful to
perpetrate a dichtomy between "core developers" and "civilans". Of course, that dichtomy will exist in practice, in that some people commit code to "Plone core" and some do not. However, the Plone universe is extremely incusive. If you have constructive criticism or concerns, then people will listen. The software only improves through the discourse of the community and the evolution of the community's cultural identity. Those who now are concerned: did you test a beta or an RC? Did you voice your concerns? Did you phrase your criticism constructively? Did you ask if you were missing something?
I don't say that to put the blame back on those who are finding a new gap. We always try to anticipate everyone's needs. Unfortunately, we're not perfect, and sometimes we may get it completely wrong (I don't think we have on this occasion, but that's beside the point). You are as much of a "Plone core contributor" if you test, explain, argue and debate as I am, even if I write a few lines of Python and you don't. There is no small group of developers in an ivory tower who throw bones down to the hungry integrators peering up and wondering what's coming next. If you want something changed, change it - or convince others to change it for you. This is how we've evolved since zero-point-one and that's never going to change.
I don't know if we'll ever have an "official" position on stuff like this. The only thing that's official is what lands in the codebase. You can't assume that Plone is moving in this direction or that just because you overhead a discussion in the chatroom. As users, integrators, developers and other contributors we need to be smarter than that, realise that the undercurrent you hear today is just one of many in a maelstrom of opinions, code and grand ideas. There is no "us" and "them". There are no "core developers". There is only us, the community.