We have been doing some work in Wikipedia lately and one of our favourite things to do is add templates to articles to make a point (just kidding, we really mean well). At the same time, proper citation formatting seems to be a constant struggle with a multitude of proposed solutions, some of which are very complicated to use. Our interest in these two aspects of editing lead us to read more of the technical references on Wikimedia (Wikipedia’s software provider), where we began to see disturbing (to an expert in programming language theory, such as ourselves) template extensions such as control structures.
This led us to hypothesize that Wikimedia’s template language had becoming Turing complete (the technical jargon for a full-powered programming language). We started digging and eventually were rewarded with recursive template substitution, which appears, at least at first glance, to be sufficient to implement the lambda calculus, and thereby perform as a Turing complete functional language. Hence, Wikimedia proves the Strong interpretation of Greenspun’s Tenth Rule: any sufficiently advanced system will contain a functional programming language. (Which, by the way, it appears I’ll have to Wikialize once I’m done this post…)
We may prove this result sometime when we have absolutely nothing better to do. In the meanwhile, we muse: what was so bad about HTML that it needed replacing with Wikitext, and why does everyone think it’s so easy to use?!