[Foundation-l] Wikitext isn't a programming language, but...

David Strauss david at fourkitchens.com
Fri Jan 19 09:14:52 UTC 2007


#loop is a problem. If this template language is Turing-complete, it can
be used to run infinitely long programs. That is a huge avenue for abuse.

Then again, there could be an execution limit to the parsing of a template.

Virgil Ierubino wrote:
> The introduction of ParserFunctions was reluctant, but look how it's taken
> off. Reluctance against programming-language-style extensions is many-fold,
> but primarily is this concern: Wikitext is not a programming language. It's
> a markup to simplify formatting in articles. So complicating it with
> parameters and arguments and functions is just wrong wrong wrong. I agree.
> 
> The problem is, users of Wikitext *want* to program. But not in articles, in
> templates.
> 
> It's simply true that the way templates are used is not entirely as they
> were originally intended. Originally they were very simple transclusion
> devices. Now they are complex ways of organising and structuring data in an
> easy and efficient way - the point being that users (without technical
> know-how) can include templates in their articles with simple code (e.g.
> {{template|a|b|c}} ) and receive a specially generated result tailored to
> the applicable article by the template code. This is obviously a massively
> useful way of allowing articles to have better information better presented,
> and allowing non-tech-savvy users (or even the tech-savvy ones) to very
> quickly and easily and intuitively insert complex formatting like
> a (dynamic) infobox into their articles.
> 
> So the way I see this, it's only really in *templates* that the advanced,
> programming-like features are required, and the reason is that, simply due
> to evolution, templates are being used like subroutines or functions. And
> for good reason. That's a very very *very* useful thing for them to be able
> to do. Which is why they are all doing it. That kind of functionality makes
> MediaWiki an extremely powerful wiki engine - it's extendible from within.
> 
> But if these "functions" are being written in Wikitext, that makes Wikitext
> more than just markup, which is confusing - so scrap them. And yet, software
> support for such "functions" is incredibly useful - so keep them!
> 
> There's a solution here. How about we introduce another language ****that is
> only available in the Template namespace****, specifically for this
> function? Call it Wikisyntax. Wikisyntax is a pure (and simple) programming
> language, with no markup. Wikitext is a pure and simple markup language,
> with no code.
> 
> Normal users (who can use Wikitext fairly easily) rarely ever look at the
> template namespace anyway. It's a simple fact that your average user of
> MediaWiki has no idea what a template is, and will never create or edit one
> until he or she is quite advanced and has got a strong understanding of the
> system. Thus it is not objectionable on usability grounds alone to expand
> the code for the template namespace. In fact, usability is a *reason* to
> support the idea of Wikisyntax: templates *are* being used like this because
> it's an extremely fruitful feature, so it would make things easier, but it
> would keep the complexity seperate and hidden away from normal markup and
> articles. Of course, users can still write templates with just Wikitext, but
> the Wikisyntax option is there.
> 
> Crucial is the point that the Wikisyntax code is only parsed when written in
> the template namespace. This allows Wikitext to remain a pure markup for use
> in articles by normal users, without confusion. But the Template +
> Wikisyntax idea is, essentially, a way of allowing a wiki to have *custom
> subroutines* that **aid** those normal users in normal articles. No other
> Wiki engine has that kind of power.
> 
> Would this idea be difficult to implement? I don't think so at all.
> Wikisyntax can be a seperate file, say, SyntaxParser.php, called only when
> necessary. Its contents can simply be (mildly altered, although not much) a
> copy-and-paste of the ParserFunctions extension that is already written, and
> any others we'd like to include, e.g. StringFunctions and VariablesExtension
> (discuss later). We *already have the code* (pretty much) for this new
> template language!
> 
> I have made a page on Meta for this suggestion:
> http://meta.wikimedia.org/wiki/Wikisyntax , please leave your comments
> either here or there. Thanks.
> _______________________________________________
> foundation-l mailing list
> foundation-l at lists.wikimedia.org
> http://lists.wikimedia.org/mailman/listinfo/foundation-l

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 188 bytes
Desc: OpenPGP digital signature
Url : http://lists.wikimedia.org/pipermail/foundation-l/attachments/20070119/5d25d064/attachment.pgp 


More information about the foundation-l mailing list