Subject: Re: mechanised documentation and my business model solution
From: Rich Morin <rdm@cfcl.com>
Date: Sat, 25 Mar 2006 21:38:31 -0800

At 6:55 PM -0800 3/25/06, Ben Tilly wrote:
> On 3/25/06, Rich Morin <rdm@cfcl.com> wrote:
>> Many existing wikis are clearly unsuitable for this use.
>> For example, any wiki that isn't based on a DBMS is going
>> to be hard-pressed to handle versioning, etc.  However, I
>> think (hope :-) that useful exceptions can be found/built.
> [...]
>
> Do you really believe that?  If so, then how do you explain
> the existence of useful source control systems out there
> which are not based on a DBMS?

I certainly believe that "Many existing wikis are clearly
unsuitable for this use."  For example, a wiki that stores
each page in a topical "web" as a file in a single directory
is going to have problems with scaling, versioning, etc.  It
is possible to overcome these by brute force, but the basic
structure is still "unsuitable" for, say, Wikipedia.


Now for the second point.  The use of a DBMS (specifically an
RDBMS) has numerous benefits for a wiki, including:

  *  It makes it easy to SELECT data, based on arbitrary keys.

  *  It supports "transactions", which allow sets of changes
     to be applied atomically.

  *  It makes "back link" management trivial.

  *  It can enforce consistent keys, data types, etc.

Can these things be done without an RDBMS?  Certainly, but it
requires some heavy lifting.  If the wiki isn't built on top
of an RDBMS, the needed functionality will have to be added.
This is a lot of work; "hard-pressed" was my shorthand way of
describing the situation.


> ... I'm amazed that nobody has yet linked to
> http://www.cabochon.com/~stevey/blog-rants/nonesuch-beast.html
> (or said what it says).  Namely it is easy to say, "I want a
> documentation [system] that makes it easy to do everything
> that needs to be done."  It is impossible to build one.

Agreed.  And thanks for the pointer.  Like any good rant, it
contains elements of truth.  Unfortunately, like many rants,
it sets up and conclusively demolishes a straw man.  I agree
that I don't know how to create the "all things to all people"
documentation system his users are requesting.  But then, my
aspirations were never that lofty.


> It is possible to come up with some use cases, and build a
> documentation system that is better for those than existing
> ones.  But any solution is going to have serious drawbacks
> that someone is not going to like much.

Probably so.  Indeed, any program will have bugs, limitations,
and so forth, but that is no reason to stop trying to improve
the current situation.  Building better documentation systems
is not (like the halting problem) impossible; it's merely hard.
If it weren't, it would (most likely) have been done already.

Any "interesting" problem sits on the line between "trivial"
and "impossible".  I think this one fits that definition.  I
also think that mechanically-augmented documentation systems,
like bug reporting and source code control systems, are part
of the infrastructure that developers should expect to have.
Making that belief a reality is, of course, the challenge...

-r
-- 
http://www.cfcl.com/rdm            Rich Morin
http://www.cfcl.com/rdm/resume     rdm@cfcl.com
http://www.cfcl.com/rdm/weblog     +1 650-873-7841

Technical editing and writing, programming, and web development