Robert Rohde wrote:
How is it different that {{#expr:}} or different
from creating {{#if:}} to replace {{qif}}, etc.?
I think introducing #if was a mistake. I should have taken this stand
at the time.
Introducing string functions increases the domain of problems which
can be solved by wikitext templates. That expanded domain includes
some particularly complex problems which Wikipedians are incentivised
to solve, such as natural language processing. Bug 6455 already has
proposals from Wikipedians for merging multiple template parameters
into a parsed configuration field.
In an earlier post:
By contrast, the community of people who do work on
such templates
have been asking for these functions for literally years and don't
seem the least bit afraid that the marginal impact of adding a few
more parser functions will bring the house down.
The community of people who work on such templates is an extremely
small, self-selected subset of the community of editors. It is that
tiny segment of the community that can code in this accidental
programming language, who are not deterred by its density,
inconsistency or performance limitations.
The issue with complex templates is that they deter contributions not
only from the majority of editors, but even from the majority of
technically-inclined editors, who know a programming language or two.
So edits to this important subset of Wikipedia are left to a small elite.
While some template authors might attempt to make their templates
accessible, the nature of Wikipedia is such that less-accessible
contributions tend to accumulate.
Once we introduce these string functions, the accumulation of complex
and inaccessible templates that use them will begin. Introducing a
scripting language will not make those accumulated contributions
disappear. The task of deciphering them, and converting them to a more
accessible form, will remain.
-- Tim Starling