Neil Harris wrote:
It might therefore be a good idea to only evaluate
formulae and
conditional expressions to work within templates, and to simply treat
them as plain text anywhere else. Templates using these programming
features can then be treated by most users as "magic spells" that work
automagically, without needing to learn these advanced features.
Most of the 'template coders' I know go to pains to use the existing
conditional kludges that way and I can't imagine built-in functionality
will be treated any differently. The goal is always to make the 'end
product' in the article itself as simple as possible.
While people complain about the complexity which templates have taken on
it is worth noting that there is a direct correlation between increasing
template complexity/functionality and decreasing article complexity.
Tables no longer have to be convoluted HTML or wiki-markup blocks in the
article themselves... they've been replaced by a short template call. And
conditional logic has made it so that the average user can insert one of
those templates into an article and fill out the parameters to produce a
perfect table without needing to understand the underlying table code at
all. That wasn't possible previously... they ''had'' to know table
markup
(or HTML) in order to edit tables.
Yes, templates, parameters, and the 'parameter default' have been expanded
out into a 'programming language' of sorts... greatly simplifying and
enriching things for the average Wikipedian in the process. Yes, the
various 'date math' features are painfully convoluted... but they have
made it possible to automatically display tomorrow's or next month's 'of
the day' material... thereby aiding in efforts to verify that it will
display properly when the official day comes. They have added the ability
to go to dated content for the 'next day' or 'prior day'... creating
improved browsing capabilities. Et cetera.
Complexity and increased functionality are GOOD. Yes, they require
'programmers' to understand / implement them... but they can be used by
those programmers to make complicated / previously impossible things
simple for everyone to use.