[Foundation-l] Why is the software out of reach of the community?

Delirium delirium at hackish.org
Sun Jan 11 04:49:50 UTC 2009

Brian wrote:
> I am quite sure that the answer to Wikipedia's usability issues was not
> properly taken into concern when ParserFunctions were written. This is based
> on a very simple principle that I am following in this discussion:
> Improvements in usability in MediaWiki will not happen through the addition
> of syntax, but rather the removal of syntax, and the improvement of the User
> Interface Design.
> I also believe this new grant will help, but I do not believe it will fix a
> broken process. I would like to discuss that process further, and how it
> could be improved.

[Apologies in advance for a fairly long email.]

Although I agree that wiki-syntax in many cases is far from ideal, this 
is also a rather tricky issue that hasn't been satisfactorily solved 
despite decades of academic and industrial research. So I don't think 
it's really the case that best practices exist that MediaWiki developers 
have egregiously failed to follow. I have a bit of interest in / 
knowledge of this, since developing end-user-programmable systems that 
are also easy to use is my research area / day job. ;-)

The fundamental issue is that in complex domains (like "writing an 
encyclopedia"), you can't fully analyze and understand the domain ahead 
of time, use that understanding to provide an easy-to-use 
domain-specific language or interface, and then be done. So for 
Wikipedia, it's virtually impossible to provide a built-in set of simple 
formatting features (a person infobox, a map-dot-placement feature, 
etc.) that are both easy to use and cover all situations. Domains 
change, understanding of domains changes, new issues come up, and users 
need some way to develop their structures and representations as they're 
being used. If you *don't* allow that, what ends up happening is that 
people keep using the simple features you've provided, but in more and 
more convoluted ways to try to force the system to do what they want.

MediaWiki's first solution to that was templates, which are supposed to 
factor out common formatting. But they ought to be edited to handle new 
cases---i.e. the proper solution to a template not handling a case is to 
change the template, not to ask article authors to use it in some more 
complicated way. That often requires if-else type of logic. To implement 
that required a convoluted use of templates to force if-else logic into 
a feature not designed for it. That started happening a lot---as always, 
when faced with something that they want to do that the system has no 
interface for, users creatively resort to convoluted ways to force it to 
do what they want anyway. ParserFunctions were a solution to the 
convoluted template logic, giving MediaWiki some logic that can be used 

I don't think it's on the whole a terrible solution. The general problem 
of making systems both end-user-extensible and easy to use has been 
rediscovered dozens of times, ranging from the 1980s idea of "open 
systems"  [1], to attempts to make end-user-programming usable [2], to 
an idea of "meta-design" [3] that argues for the need for design 
environments like CAD to be built with end-user-customization in mind 
[3]. But how to do all that is hard, and I think it'd be fair to say 
it's an open problem.

So of course I'd welcome a usability push and carefully designed 
solutions, and no doubt there are things that could be done to make 
templates/ParserFunctions easier to use while retaining their power. But 
I wouldn't expect too much magic to appear. =]


[1] Carl Hewitt (1985). The challenge of open systems. _Byte_ 10(4): 

[2] Bonnie A. Nardi (1993). _A Small Matter of Programming_. MIT Press.

[3] G. Fischer, E. Giaccardi, Y. Ye, A. G. Sutcliffe, and N. Mehandjiev 
(2004). Meta-Design: A manifesto for end-user development. 
_Communications of the ACM_ 47(9): 33-37. 

More information about the foundation-l mailing list