First of all, I like Wikipedia. I like it as a user, I like looking things up and using that information. What I don’t like at all is MediaWiki as a software. I think all the hype about it comes from it being used to power Wikipedia. But does that really say anything about the quality of the software? I don’t think so.

Perhaps that MediaWiki was mainly used for Wikipedia and only later found a wider audience is a serious disadvantage. It has many flaws, it has even more peculiarities, and they will all bite you sooner or later when you start out like “Hey, Wikipedia uses it, it must be GOOD and just right for me”. Let me say it straight: it’s not for the faint of heart. And if you don’t know your way around php and are willing to tweak it and install extensions it will not do you much good, and it will cost you a lot of your precious time and even more of your nerves. And if you do know php and have read all the docs, it will still cost you a lot of your precious time and even more of your nerves.

If you look and touch the MediaWiki source code you always have moments of revelation. Regrettably not the good sort of revelation. It goes more like “Did they really do it that way? Who on earth would design a system that way.”

I realize the software grew out of nothing to quite a beast. I also see that many different people have contributed, which is always difficult to manage if the quality is not meant to suffer – it is not impossible though, other open source projects are doing fine. And all my respects to those developers who are still finding their way around in it and more importantly willing to wade in that mud of features and implementations grown in an unplanned way.

What bugs me (pardon the pun) is that the software needs a serious, make that SERIOUS, redesign, but that it won’t happen. If you have a bit too much time on your hands, do have a look at the wiki code parser. It’s a nightmare. I can’t imagine that anyone dares lay hands on it because it feels so fragile. That is not to say this is code that is not broken already. For it is. I will not go into detail, but interwiki links are far from stable. Also you cannot use custom tags in templates – which is really a showstopper. I may post about some of them in more detail later.

But the problem is not one of software architecture and code quality alone. It goes beyond that. The best example for this is the insane syntax used. Look at the table code, HTML is simpler than theirs! And look at the template syntax, I’ve had my share of parentheses nightmares while coding in Scheme, but this is nothing compared to the brace hell they have created for templating. And that is the really sad truth, because there is simply no chance people will accept a better syntax and rewrite all the content in wikipedia. And I doubt one could automate the task because a redesign would involve a change in semantics of templates, not mere syntax.

In my opinion MediaWiki will live on in that poor form of existence. And no matter how good its main application Wikipedia is, the underlying wiki software is not one to show off with. I wonder if there would still be serious developers interested in the project without the shop sign Wikipedia. I know I wouldn’t even now. From a software perspective it’s a lost cause to me, and I marvel every day that they can keep it going without major problems, and that developers still enjoy working in the bounds they are unable to change.

So why do people use it? I think for the same reason we chose it on spottingworld.com: it’s out there, people know it and are used to it, and if you want to reuse Wikipedia content you have less trouble if you use MediaWiki.

3 Responses to “So, MediaWiki is good they say?”

  1. NickJ says:

    I quite enjoy a good MediaWiki rant :-) I’ve just added your blog’s MediaWiki category to http://open.wikiblogplanet.com/ , but you’re welcome to remove it from http://en.wikipedia.org/wiki/User:Nickj/open-wikiblogplanet-config.ini if you don’t want it included.
    – All the best, Nick.

  2. Neike Taika-Tessaro says:

    It’s good to know rants like these exist without being shot down with “Why don’t you make your own wiki software, then, if you think it’s that badly coded?”. I couldn’t agree more. I’m currently fighting against mediawiki because I’ve used it in the past (mostly unaltered) and the users of my website are used to its syntax (which I have no gripe with) and mannerisms (which I also have no gripe with), so I hesitate to use anything else, but now it forces me to actually dig through the code now that I want to (1) make my own skin, (2) integrate the website account to the mediawiki account.

    No, no, no. I swear, if I was able to cry tears of blood, I would. I managed to do #1, but it’s a hack-job because I could NOT bring myself to sit down long enough with the atrocious code to cause the software to churn out a better HTML structure. I just moved some blocks around and removed the most extraneous of tags, but the generated page is still about ten times as bloated as my actual template for the rest of the site.

    #2 is bringing me to the brink of “…fuck this”. The track I’m on right now (right this minute, in fact) is using the includes/User.php to verify valid usernames/passwords/eMails (combined with LocalSettings.php/default settings for the many globals used), then hope I can find a function not too riddled with dependencies to generate the salt/password, and insert the data into the database myself, because there is no function to do it cleanly for me.

    All of that without developing an aneurysm, hopefully.

    I think this is how serial killers come to be.

  3. Timmy says:

    Have you seen the job queue?

    Designed by a moron with brains he kept in a brown paper bag!

Leave a Reply