If you want a more consensus view on how to choose a wiki, or if you want lists of wikis, see ChoosingaWiki.
NOTE: As you'll see, I have not yet collected the data I need to make my decision. I'm putting this here in case developers are interested in what criteria are going through my mind to choose a WikiEngine. If you aren't interested in this, you'll probably want to skip this entry.
Since before I discovered wikis, I've been wondering what sort of software to choose for my personal website (one can infer that setting up my personal website is not really a priority for me).
For now I have a "temporary" website, but I when I think of content that I want to put on my website, I usually just stick it in a file, because I don't want to have to move everything over once I choose my "real" website software. Probably what will happen is that I'll expand WikiGateway in the meantime, and implement UseMod<-->MoinMoin markup translation, and implement a CopyEntireWiki? function , before I decide; at that point I'll just put all my content up in one or the other (UseMod or MoinMoin), secure because I can change my mind at any time and let WikiGateway move the content, and then switch back and forth every few weeks until I know which one I really like better.
I guess I'll probably settle on a wiki, although I still want to go through the list of other stuff I accumulated before I discovered wikis.
One major criterion is to choose the software that is most expandable. I don't mean in the CommunityProgrammableWiki sense, but rather in the sense that it is programmed in a way that new features can/will be added. Of course, determining that is a predication/matter of taste, rather than a matter of fact.
I've never gotten around to reviewing the source code of UseMod(/OddMuse) or MoinMoin, and that'll definitely be a big factor in my decision, so one might say that I haven't even started deciding between the two.
I do like that MoinMoin has plugins, though (although I've never looked at the plugin system to see how easy it is to install or write them, and how powerful they can be). On LionKimbro's weblog, I saw a link to a graph-display plugin for MoinMoin, which confirms the coolness of this to me. In UseMod, if you want to add LaTeX support (and on about half the wikis I setup, I eventually need LaTeX), you have to patch the source code. Not cool. One point for MoinMoin.
Also, I've heard that Python is this powerful language, and that it does all this sweet object-oriented and functional programming stuff. I don't know Python, so I can't confirm. But now that I finally wrote a small library in object oriented Perl, I see what people mean about the problems with OOP in Perl. It works, I guess, but it's so hard to read; and it's such a hack that I can't imagine that it could be as powerful as OOP in a language designed to do OOP.
So, I guess I really should learn Python before I make my decision , just so that I can really decide if its better. But so far, it seems like it is. Especially if you want the system to be really expandable, and to have lots of plugins that can add features and override stuff; it seems like OOP inheritance in an interpreted language would be the way to go here.
So, one point for MoinMoin.
But who knows, maybe once I look at MoinMoin's code, I'll decide I hate how they structured it and I hate how the plugins work and I wouldn't want to write plugins to fit into that structure anyway.
Another point is that supposedly MoinMoin deals with all this stuff like new XHTML standards and internationalization, and UseMod supposedly doesn't. I don't know or really enjoy caring about those details (maybe OddMuse already does all that; I wouldn't know), but I accept that wiki software should conform/deal with that stuff. So MoinMoin has a leg up if it does that and OddMuse doesn't.
Another major criterion is which user interface is cleaner. I am big into clean, simple user interfaces, which I think aren't cluttered, and which I imagine would not scare new users as much (being an occasional programmer myself, I can only guess what is actually a scary interface to most people; but, if I'm scared or confused, that's probably a bad sign. Twiki and Zope scare me, for example).
Three things bother me about MoinMoin's UI.
Also, little details throughout don't seem to be as well-designed as UseMod/OddMuse's stuff. Tavi-style changes, for instance, are great. It takes a couple of clicks (and a little scrolling, I believe) to get from MoinMoin's RecentChanges to a history page where you can compare a version made a weeek ago to the newest version; on UseMod/OddMuse, the Changes link on RecentChanges takes you right there.
I think that while UseMod's developer community may be smaller, it somehow attracted a bunch of people who are just good at making simple, concise UIs.
I would like my personal website to be run off of a courtesy account that I got for working for tech support in college. So, I don't have much control or options in the server environment. I could install some small Perl or Python modules in my user directory, but anything that needs to be a daemon, like a mysql backend database, is out. I don't think either UseMod/OddMuse or MoinMoin need this, though.
I haven't looked through the code for either one, so I can't really decide.
I do know that some of the procedures in UseMod are somewhat confusing to me, at least until I devote some time to reading them line-by-line. I would be a lot more comfortable with UseMod if it was commented much more.
I haven't looked at the OddMuse code yet, though. But I agree with Alex's philosophy of trying to make the code short and simple and clear. If he applies this to his code the way he does to wikis, I bet I'll like the code a lot.
(no point assigned yet, until I at least skim MoinMoin's code)
Specific things that I would like in the code:
In this case, what I'd really like to do is to take OddMuse, and translate it exactly into Python. Then restructure it to accept plugins (if possible, even make it cross-compatible with MoinMoin plugins).
Of course, this is infeasible for a number of reasons; I want to use a wiki with a large developer community; I don't know Python; I don't have time to port or write or maintain a new WikiEngine.
So, for the SonaUiki, I used PmWiki, and I've never looked back. Very nice, easy to use, has some great extensibility features (there's a long Cookbook with lots of custom extensions, tips, and tricks). I also like that I could create a very quick skin. Anyways, just a suggestion.
See also ChoosingaWiki.