THIS IS A PUBLIC SERVICE ANNOUNCEMENT: Please don’t use MoinMoin. Using MoinMoin is actually worse than not having a wiki at all.
Tl;dr summary
It sucks so hard and will mislead your visitors in so many ways that you’re better off having a straight HTML dump with an email contact than trying to fight the hopeless failure of MoinMoin.
Detailed explanation
I’ve been using various sites using MoinMoin to keep their content for a long time. I’ve never particularly liked that wiki engine, and found it confusing on numerous occasions, but the recent re-stumbling upon a particularly egregious case of Moin going out of its way to make sure your visitors aren’t getting what you wanted to give them was the final straw: I realised that it’s the C++ of wikis — not only will it not solve your problems, it will cause new ones that will make you long for your original ones.
First off, a couple of comparatively minor offences: its UI sucks and is confusing all around. The famous combined login/register widget is a paragon of UI anti-design, its version diff widget sucks, its history view is unwieldy and doesn’t actually link to the first revision (!!), I’ve long had experiences with its search being less than helpful, and of course it uses CamelCaseWikiLinks, which all sane people agree are stupid and harmful ([[explicit wiki links]] being the only sane syntax, obviously).
Now, a far more serious sin: it comes with its DB prepopulated with filler content concerning MoinMoin itself. This alone should be enough to disqualify any wiki from being seriously considered, as it means that:
- unless you take active steps to combat it, any actual content you have will be drowned by the completely irreleveant bullshit that makes your site look like a page about $wiki_engine (I’M LOOKING AT YOU, TRAC) instead of what you actually want to talk about
- the wiki help and your actual content have to compete for space, and as you add yours, you have to remove the (useful, after all) links to information about how to add and edit more
- odds are that the filler content is in the same namespace as your primary one, increasing the chances of accidental clashes between unrelated pages
Now, that doesn’t mean wikis shouldn’t come with docs, far from it. It just means they should be clearly marked as such, and available separately from any content. This way a wiki about guinea pig mating habits with no content added yet will look like an empty wiki, and not like a page about Trac (and if you think it’s not a problem, please consider that most experts on guinea pig mating habits will likely have no idea what Trac is and why it is here where they expected a place to share their knowledge about guinea pigs).
However, in case of MoinMoin, the above is not the worst it does. No, it takes the idea of filler content and does things with it that make Trac look like the well-behaved, helpful boy from the neighbourhood. But first, I need you to do the following:
- pick a non-English language you understand
- make sure it’s one of:
- Danish (this one I’m using myself, as I’m learning it)
- Russian
- Japanese
- Hebrew
- Portugese
- French
- Spanish (different from others, but still confusing as hell)
- the following will specifically not work for our demonstration (you will learn why in a moment):
- Chinese [zh], German (these are almost enough, complete but not self-contained)
- Swedish, Norwegian Bokmål [nb] (not self-contained and significantly shorter)
- Finnish, Korean, Dutch, Slovenian (redirect to English)
- Italian, Polish, Greek, Norwegian [no], Nynorsk [nn], Arabic, Farsi, Czech, Slovak, Sangro, Lithuanian, Latvian, Estonian, Icelandic, Serbian, Hindi, Punjabi (absent)
- if you know none of the suitable languages, just pick one that looks the least strange to you
- make sure that the language you picked is your preferred browsing language
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(no, seriously, do it, I’ll wait)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Okay, now we have you browsing in $language, go to http://codeville.org/doc/. You’ll notice that:
1) It talks about wiki and MoinMoin and a couple of other wiki engines
2) It’s completely in $language
3) It doesn’t give you a slightest hint that it’s NOT WHAT CODEVILLE AUTHORS INTENDED. Not a language selector, not a link, not even a URL in the addressbar. NOTHING.
4) There’s not even a way to find the original English front page. Site map, title index, word index etc. are all buried deep under layers upon layers of irrelevant pages about MoinMoin and twenty translated copies thereof (that is, after you wait 2 minutes for them to load).
The only way to see the actual intended content if you happen to be using one of the unlucky languages is to guess that it’s not really right, then guess the content will be probably in English, then guess that you can go there by manually entering the English root’s name in the URL bar, then guess the name of it, backtrack a couple of times on misses (like MainPage, StartPage) until you get to the correct one (ie. FrontPage), then vow solemnly never ever to use the goddamn thing again.
It also means that the entire site can, silently and untraceably, transform completely depending on a hidden, essentially random variable the site admins will likely never discover and know to fix. It is also enabled by default (I have previously discovered and reported the exact same problem on Revctrl wiki, it has since been fixed).
Bottom line: in order to have MoinMoin even remotely resembling something useful, you have to essentially unbreak it on two separate levels, one of which is hidden so deeply that it can go undetected for years. Straight HTML, email, IRC, paper printouts, clay tablets, smoke signals, ANYTHING is better because at least what you see is what you get, unlike with MoinMoin.
Note also that the above is based solely on the problems I’ve been able to notice and track down based on my experiences with MoinMoin as a user. I have no idea what else you have to unbreak as an admin and what other problems might be lurking in other places, but I’d be very surprised if it turned out to be otherwise flawless.
PS. If you have read the entire post, you’re welcome and encouraged to go back and try with different languages and report the results back to me, so I can expand the known working / non-working list. In order for a language to be suitable for the demo purposes, the translation has to exist, and be self-contained (which is defined as “doesn’t immediately suggest that something is amiss and doesn’t link directly to the English version”). It doesn’t mean that non-self-contained translations are not an issue, but I want to make sure the first impression gives the proper idea of the magnitude of the problem.

Till | 09-May-08 at 2:20 pm | Permalink
Works (not so) fine with German. Means: using Geman as language reproduces the effect you speak about.
mathrick | 09-May-08 at 3:40 pm | Permalink
Thanks, but from a quick look, it seems that the translation is complete, but links back to the English frontpage (ie. “not self-contained”) above. Is that correct?
wingo | 09-May-08 at 3:41 pm | Permalink
An enjoyable rant :)
terry | 09-May-08 at 3:45 pm | Permalink
Wikis make fucking terrible web pages anyway and should be avoided at absolutely all costs.
Look at Wikipedia even, utterly useless interface and search system, the best way to navigate wikipedia is fucking google
The Gay Bar | 09-May-08 at 3:57 pm | Permalink
The C++ of Wikis…
In an article criticising the wiki engine MoinMoin I just read a great statement:
I realised that it’s the C++ of wikis — not only will it not solve your problems, it will cause new ones that will make you long for your original ones.
I love th…
Igal | 09-May-08 at 3:58 pm | Permalink
Broken in Hebrew too.
David Christiansen | 09-May-08 at 4:12 pm | Permalink
Det er ret tosset at holde folk uden for det rigtige indhold hvis ikke de har det rigtige sprog i deres browsere.
I hope you could read that. Can’t really tell how much Danish you’ve learned so far :)
mathrick | 09-May-08 at 5:00 pm | Permalink
Jeps, kunne læse det fint. Mit dansk er ikke perfekt, men nok for at drive mit eget firma :)
Cezar | 09-May-08 at 5:05 pm | Permalink
Trac isn’t supposed to be used to make a wiki on Guinea Pigs. It’s ment for code. The help being in the wiki has helped me on multiple occasions with Trac by allowing me to add to the help. While you maybe right about general wiki software not needing the help built in, you are wrong about it’s place in Trac.
mathrick | 09-May-08 at 5:21 pm | Permalink
No, I’m not. 100% of my contact with Trac has come through software projects, and every time I wished a fiery death upon whoever put the default content in. It makes finding the real information 10x harder because you can’t just look for spots where something is written. As I said, help is good, but it must be marked as such.
Thomas Waldmann | 09-May-08 at 10:05 pm | Permalink
A fool with a tool is still a fool.
I won’t go into details about some wrong and some true stuff you wrote as this is not the place to discuss about moin, just one thing:
You complain about moin’s way of doing i18n, but it simply is the admin who has configured it wrong for his application and obviously has not read the configuration help pages (HelpOnLanguages, HelpOnConfiguration).
Since 1 or 2 years moin even has HelpOnLanguages as default front page to avoid that misconfiguration. And guess what - some people ask us why they get that as front page instead of just reading it.
So for that, you’re beating a dead horse.
And btw, pointing to a misconfigured site with a stoneage moin 1.3 install is not quite the best example for a moin site. Obviously the admin didn’t care when installing it and does not care about maintaining / updating it either.
If you need more bad stuff to rant about: the are many unmaintained (moin) wikis with lots of spam in them - because admin and users don’t care. Now blame moin for it.
Satoshi Tanabe | 09-May-08 at 11:28 pm | Permalink
日本語でもやってみたら、言われたとおりの結果になりました。ひどいですね、MoinMoin。
UI についても一言一句賛成です。どうして大きなプロジェクト(e.g. Mercurial)が MoinMoin を使うのかほんとに不思議。たぶん Python で書かれているからなんでしょうが、これは Python にとってネガティブな宣伝ですよね。
いい記事なので、あとで僕のブログで翻訳させてもらうかもしれません。
Hope you understood my Japanese. それでは。
- Satoshi
Brooks Moses | 11-May-08 at 7:18 pm | Permalink
Thomas @11: It’s like spam, though. “Opt-out with documentation of how to opt out” is not a valid substitute for opt-in.
This is because it’s a failure of one of the major rules of user interfaces: The amount of documentation that the user needs to read should be (a) minimized, (b) no more than an amount proportional to the amount of complexity of the result that they want, and (c) clearly related to what the user wants to do. A “MoinMoin will do this complex thing that requires lots of work to set up right, unless you read the documentation to tell it not to” setup clearly violates those rules — a user who wants a simple wiki should not need to read documentation on how to set up language-dependent behavior, and should not need to go through the effort of disabling it.