News for hackers. Stuff that matters.
Re:How we made editing Wikipedia twice as fast by TazeTSchnitzel on Tuesday December 30, 2014 @06:59PM (#8817517)
Wikipedia faces unique challenges, however, that many web applications do not face. Almost the entirety of the page rendered is user-generated content produced from hand-written wiki markup that must be parsed and rendered, and that uses complex nested templates. MediaWiki is basically a turing-complete applications platform. The wikipedia page for Barack Obama transcludes 199[0] unique templates, with 585 total non-unique invocations, and that's not counting the templates transcluded by those templates. Some of Wikipedia's templates are so complex that they had to be rewritten in Lua.

I don't think Wikipedia is really a typical case. Most websites probably don't have the CPU burden Wikipedia faces.

[0]https://en.wikipedia.org/w/index.php?title=Barack_Obama&acti...

Re:How we made editing Wikipedia twice as fast by eru on Tuesday December 30, 2014 @08:41PM (#8817886)
> MediaWiki is basically a turing-complete applications platform.

Perhaps MediaWiki should figure out how to use a weaker form of computation?

Re:How we made editing Wikipedia twice as fast by TazeTSchnitzel on Wednesday December 31, 2014 @06:56AM (#8819017)
Oh, the turing-completeness is new, it wasn't in the past. Using Lua was to improve template performance.
Re:How we made editing Wikipedia twice as fast by davidgerard on Thursday January 01, 2015 @09:43AM (#8823034)
Actually, it's been around for years - it was accidental. ParserFunctions is a good example of a DSL accidentally achieving Turing-completeness, at which point people start doing awful, awful things in it because they can. So they went to Lua because a proper programming language is superior in every way to an accidental one.
Re:How we made editing Wikipedia twice as fast by eru on Thursday January 01, 2015 @07:38PM (#8824964)
You actually have to be really careful to design a language that's both useful and not Turing-complete. Regular expressions are one example of such a language, but they are not strong enough for templating.
Re:How we made editing Wikipedia twice as fast by davidgerard on Thursday January 01, 2015 @08:42PM (#8825140)
Yeah. It wasn't actually intended to be Turing-complete, but then some excessively creative goddamn lunatic came up with a way to beat MediaWiki syntax with ParserFunctions into yielding a truly hideously inefficient "if" statement. Soooo they gave up and codified that so the CPUs wouldn't melt.
Re:How we made editing Wikipedia twice as fast by ttflee on Tuesday December 30, 2014 @10:38PM (#8818157)
I am afraid that the way those mark-ups have been used is the way they have encouraged.