One of the differences between the site proprietor and the rest of the community is that the proprietor has total control of the technology. This creates many social problems because the script is very powerful. The script is more than just a Constitution and it's more than just architecture. It's the combination of the two that gives it its strength. The Law is both what's written and what's enforced. In civil society, the enforcement is separated from what's written because it requires an executor, like the PoliceForce, to enact it. Online, the law embodied in code is both written and enacted simulataneously. This gives the proprietor unreasonable powers, the ability to "bend reality with her thoughts," thus making her into a GodKing. See CodeAndOtherLawsOfCyberspace.
Even a BenevolentDictator isn't adequate, as a negligent or AbsentLeader quickly becomes malfeasant when upgrades to the script are required. Excellent examples abound amongst OpenSource projects, including UseModWiki and MeatballWiki. Leaving the control of the script in the hands of one person or a small number people makes it much more difficult to make necessary changes once those people stop caring.
More radically, a CommunityProgrammableWiki, along with various tools for versioning and branching, and a system to allow different visitors to see the wiki through different code branches, could lead to a much faster evolution of wikis. Ideas for new features could be implemented immediately, and they could be tried out by existing communities and content. A CommunityProgrammableWiki would make it unneccessary for every member of a Wiki to be using the same software to use the Wiki.
It seems sort of silly to do this on the server side; if everyone wants to see the Wiki differently, wouldn't it be much easier to just have different people using different WikiBrowserÿ?0ÿs? Perhaps. But, maybe CommunityProgrammableWikiÿ?1ÿs would foster quicker adoption and interchange of new features between the various CommunityProgrammableWiki WikiCloneÿ?2ÿs. In the short term the WikiBrowser route with WebDav or XmlRpcToWiki may be the most practical, although in the long term a CommunityProgrammableWiki may lead to more new things.
When everybody is able to edit any page, this already creates enough potential for conflicts. But, still, there is no need that the statements or the grammar of the contributions is correct. With program code this changes. A single missing semicolon can make a script unexecutable. So it seems almost impossible to open a wiki script to everbody for editing.
If one wants to do this nevertheless, he has to provide certain mechanisms that ensure that the code is syntactically correct and has been tested before it is installed. There have to be mechanisms how to activate a new script or how to step back to an older version. There are various ways to do that. One would have two wikis, one for testing, one for communication and administration of both. Another would be a fractal wiki that allows scripts that act on a subbranch of the wiki where the code can be tested. In principle any user could have a branch below his homepage where he is free to experiment.
But even then the risk of such a system is high, because the code is accessing at least the wiki database and other parts on the server and all this may be destroyed accidentally or by intent. If it isn't open to all, the CommunityProgrammableWiki will need the social structure of a MemberWiki with a coregroup of trusted and obliged users. A model that I've advocated a number of times, but which has in general be fought as a step towards a two-class society. -- HelmutLeitner