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