[pmwiki-users] Any hope for 2.2.0 stable release?

Henrik Bechmann henrik.bechmann at sympatico.ca
Wed Jan 14 20:40:12 CST 2009


Petko,

I've been running PmWiki on a PHP5 server as well. Although there were a 
couple of minor glitches, Patrick addressed them, and everything works 
well now.

But I believe the next step is to stop supporting PHP4, by which I mean, 
transition more to the OOP features of the language, eventually exclusively.

I don't buy the contrarian view of OOP that you offer. The benefits of 
encapsulation, modularity, polymorphism, and inheritanc 
<http://en.wikipedia.org/wiki/Object-oriented_programming>e are well 
established, and virtually universally accepted. These include:

- Closer match between design objects and implementation objects, making 
development more successful.
- improved modularity, and looser coupling among modules, making 
development, including team development easier (very relevant to this 
discussion of considering moving to a community development model)
- more concise and re-usable code. In the case of PmWiki the code may be 
concise, but it certainly isn't easily re-useable (see below).
- availability of a wide variety of useful design patterns that apply to 
the OOP paradigm.

Furthermore, the developers of PHP are apparently committed to focusing 
on developing the OOP side of the language, adding improvements there 
that will eventually surpass the efficacy of the legacy part of the 
language, viz the new class autoloader 
<http://www.devshed.com/c/a/PHP/Auto-Loading-Classes-in-PHP-5/> for 
example. It would be prudent to position PmWiki to take advantage of 
this effort.

Finally, PHP 5 (and 6) are being positioned to address some of the 
long-standing language problems, notably the arbitrary organization of 
language functions (generally considered to be a mess), and the lack of 
namespaces. These are being addressed in PHP 5 and 6, from what I can 
see with an emphasis on the OOP side of the language.

You ask if there is a problem that you cannot see that requires 
migration to OOP. Have you tried to follow the PmWiki code? With the 
greatest respect for Patrick, it falls into all the traps available to 
structured programming, notably over-use of globals, and unending 
reliance on hidden side effects. You can argue that some of this was 
done for conciseness and performance, but it has the drawback of being 
difficult to maintain. In the current context, it has the drawback of 
being virtually impossible to maintain by a group.

Another benefit of a re-write, not to be dismissed, is that it is an 
opportunity to disentangle some of the concepts that have developed 
incrementally over the years. In other words to clarify the design of 
the product, and reflect this clarity in the new code.

Regarding features of the product:

The list I offer comes from many years experience in offering PmWiki 
based websites to a number of community organizations in Toronto (about 
30 sites, of which a handful are pretty active).

For an example of file Management, see for example DocuWiki's 
mediamanager. <http://www.dokuwiki.org/mediamanager>

I think the benefits of an administrative interface are obvious: it 
lowers the skill level required to manage the supported features, making 
the product more accessible, and greatly broadening its reach. This 
would be true even if the supported features were selective, not univeral.

I have seen and investigated the form based entry systems that exist. 
These are terrific efforts, but are (IMO) still early, and awkward.  
Based in my experience of supporting many PmWiki installations, one 
thing that I have found consistently is that for sophisticated use of 
wiki markup, the complexity of embedded instructions is a persistent and 
important barrier to authors. Support for customizable, configurable 
form based entry would IMO radically expand the potential user base of 
PmWiki, and owing to the very work that you reference, this feature is 
relatively accessible, but requires further development effort. 
Furthermore, it would greatly alleviate the pressure for a WYSWIG  entry 
interface.

I would add decent "feed" capability, including useful RSS support.

I'm sure others have need of features that they see in other products.

PmWiki is most certainly a laggard by now. The current version has been 
in beta for far too long (for well justified personal reasons as we 
know), while the rest of the world is not standing still. See for 
example habari <http://habariproject.org/en/habari-and-php5>

In any case, surely as a product matures, if it is to become established 
in the long term, it requires an active community of developers to 
sustain it (for the core!).

My contention is: it is time for this to happen.

To be clear, I do not mean in any way to diminish the accomplishment of 
PmWiki. Instead I am arguing in favour of a clear way forward, to 
consolidate the gains made, and establish a foundation for capturing 
even higher ground.

Nor, of course, is any of this to suggest in any way the replacement or 
pre-empting of Patrick. That would be awful, as he's the genius behind 
this product. Instead, my initiative is aimed at finding a practical way 
of organizing support for him and his efforts. I would hope and expect 
that he would continue to be the designated "guru", the final say, but 
in more of an "executive" role.

Best regards,

- Henrik

Petko Yotov wrote:
> On Wednesday 14 January 2009 20:02:46 Henrik Bechmann wrote:
>   
>> FWIW, if there was to be the formation of development team, I think it
>> would be worth considering going (more or less directly) to version 3,
>> being a migration to PHP5 and OOP.
>>     
>
> * I have my PmWikis running on PHP5 since 2005. The current stable and beta 
> work extremely fine with PHP5.
>
> * OOP is not a goal in itself, but a means to some goal, and it is only worth 
> the effort in some cases. See "OOP Myths Debunked" at 
> http://www.geocities.com/tablizer/oopbad.htm .
>
> PmWiki uses an OOP PageStore class that allows excellent integration of 
> different storage mechanisms such as a database instead of or in addition to 
> the filesystem, or a different filesystem configuration. Almost every other 
> aspect of PmWiki can be configured via enabling a variable and providing a 
> replacement function, without modifying core files. Every core script, should 
> it be changed, may be placed in the /cookbook/ directory and be included 
> instead of the original one. 
>
> Is there a problem I cannot see, that requires migration to OOP?
>
>   
>> My three main feature requests: resource file management, an
>> administrative interface, and a form-based content entry option.
>>     
>
> * What is resource file management?
>   - Deleting attachments is possible wia recipes : Cookbook:Attachtable
>     and others
>   - Uploading CSS files or whole skins via PmWiki's ?action=upload can be
>     made possible by adding two lines of code to farmconfig.php.
>
> * A recipe could be written to add an administrative interface. It may already 
> exist. I have used myself for months a small snippet and I'll soon release it 
> on the cookbook. It allows some selected config variables to be overridden by 
> editing special wiki pages. Not form-based but does the job.
>
> * There are more than one recipes for form-based content entry. One is PmForm 
> by Pm, other is Fox by HansB, a third, new one, is Blogger by DaveG.
>
> There is also another wiki project inspired by PmWiki and ZAP, which I believe 
> has more form-based administration options. See http://www.boltwire.com/ .
>
> Personally, I believe adding more features like these should be in recipes and 
> not in the core. For the core, we should follow the PmWiki Philosophy.
>
>   
>> I think that the combination of targets such as these could take PmWiki
>> back from being a laggard, to leapfrogging to the head of the line.
>>     
>
> PmWiki is not laggard. I have not seen any other wiki that allows even half of 
> the features PmWiki could plug-in, without the need to modify core files and 
> potential problems on upgrades. Some core features like PageLists and 
> PageTextVariables are quite unique in the wiki-world. The built-in search 
> engine is better than any other wiki, with the best ratio performance vs 
> CPU+fsystem usage.
>
> The only thing I believe would be better, is to enable UTF-8 support in the 
> default installation, but currently it is difficult for the script to know 
> whether the wiki uses or not a custom character encoding, so an existing wiki 
> that upgrades could occasionally break. We'll figure something out.
>
> Thanks,
> Petko
>
>
>   

-- 

Henrik Bechmann
bechmann.ca

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.pmichaud.com/pipermail/pmwiki-users/attachments/20090114/bbe4e139/attachment.html 


More information about the pmwiki-users mailing list