2011-02-15
More on an advantage of the blog approach to web writing
In light of Phil Hollenback's reply to my earlier entry on this topic, I need to write some more words.
First off, I entirely agree with Phil that a wiki engine can do a decent job of generating blog-style syndication feeds; all you need is to have a full text feed of recently created pages and you're basically done. Category or hierarchy based feeds are useful but optional.
(Making the whole thing efficient is only a small matter of programming and data storage, and for even a medium sized wiki it generally doesn't matter. If your wiki is popular, the information you need to generate a syndication feed will be in RAM; if it is not popular, slow syndication feed generation is usually not really a problem.)
But this is the easy side of things because it is using a wiki engine as a blogging platform, where you will follow the blog approach to web writing and not the wiki approach. The fundamental difference between the blog approach to web writing and the wiki approach is that in the wiki approach you significantly revise old pages.
What I realized in the process of writing my earlier entry is that generating a good syndication feed for revised wiki pages is actually a hard problem, even though it looks relatively simple from the outside.
(Well, a good syndication feed from the perspective of a blog reader, someone who wants to keep track of the new information showing up on the wiki, wherever and however it appears.)
In the abstract, what you did when you made the revision is that you added new information to the page (yes, even if you just deleted text). What the reader wants is to read about this new information (with enough surrounding context for it to make sense). In a sense, they want your page edit recast as a version control system commit message (and for much the same reasons that people want commit messages, not just code diffs). You probably don't want to write this version of your change by hand, because it's basically equivalent to writing a blog entry in addition to your wiki page revision. But automatically extracting it from your change is extremely non-trivial in the general case (even though there are simple ones, like adding a bunch of text to the end of an existing entry).
This is why I think that wikis suffer from more than just having badly implemented syndication feeds today. Giving a wiki a decent blog-style syndication feed is a solvable technical problem (and it has been solved several times over). Getting software to automatically describe changes to existing pages in a useful and general way is deeply challenging, and I don't think it's going to be done any time soon. This means that syndication feeds for page revisions are inherently going to be not as useful as the same information written up by itself from scratch, ie in the blog style (where you don't revise, you write a new entry).