Cannabis Ruderalis

Content deleted Content added
Sam Korn (talk | contribs)
m fix linter errors (2x obsolete HTML tags)
 
(122 intermediate revisions by 38 users not shown)
Line 1: Line 1:
{{shortcut|[[WT:AUM]]}}
{{talkheader|sc1=WT:AUM}}
{{old XfD multi |date=1 February 2006 |result=speedy keep |page=Wikipedia:Miscellany for deletion/Wikipedia:Avoid using meta-templates}}


== Conditionals ==
{{oldmfd|date=16:23, 1 February 2006 (UTC)|result='''speedy keep'''|votepage=Wikipedia:Avoid using meta-templates}}


Netoholic and Thebainer want to have the sentence '''"One of the most common reasons meta-templates are created is to add functions that mimic conditional expressions"'''. I disagree with having this sentence in his guideline and I don't see why we need a section for conditionals at all. This might have been true before we had [[m:Parserfunctions]]. But nobody needs metatemplates for conditional logic anymore, so [[WP:AUM]] doesn't have to do anything anymore with conditional logic. How are metatemplates needed to implement conditionals? Could you show me where metatemplates are needed or used for conditional logic, let alone as "most common reasons"? --[[User:Ligulem|Ligulem]] 15:04, 22 October 2006 (UTC)
{| class="infobox" width="250px"
|-
!align="center"|[[Image:Vista-file-manager.png|50px|Archive]]<br>[[Wikipedia:How to archive a talk page|Archives]]
----
|-
|
* [[Wikipedia_talk:Avoid using meta-templates/Archive 1|February 2005 &mdash; November 2005]]
* [[Wikipedia_talk:Avoid using meta-templates/Archive 2|December 2005]]
*
*
|}


:I've rewritten the section describing the use of metatemplates for conditionals as historic. But I don't think this section is needed anymore, as conditionals now don't have anything to do with metatemplates anymore. --[[User:Ligulem|Ligulem]] 15:24, 22 October 2006 (UTC)
== Accessiblty concerns with css class hiddenStructure ==


::That version's better, it emphasises the historical use. Although they aren't used for that purpose now, it makes perfect sense for this page to explain why that is so, and what is to be used instead. --[[User:Thebainer|bainer]]&nbsp;([[User_talk:Thebainer|talk]]) 00:26, 23 October 2006 (UTC)
[[User:Netoholic]] is advocating that lines in tables be hidden with <nowiki>class="hiddenstructure{{parameter|}}"</nowiki>, rather than using more complicated parameter hacks. I wish to raise a number of concerns I have over the accessibilty of this technique.


Netoholic reinserted "Meta-template schemes are sometimes created using many layers of nested templates to mimic conditional expressions". Again, this is not correct. Meta-templates are no longer used to mimic conditional logic. I have thus reverted to the version which Thebainer agreed on. --[[User:Ligulem|Ligulem]] 07:58, 23 October 2006 (UTC)
Firstly, and most easily fixed, this uses visual styles only. The style rule [http://www.w3.org/TR/REC-CSS2/aural.html#speaking-props speak:none] should be added as well display:none so that it remains "hidden" for screen readers.


: You are missing the point. While YOU may not create meta-template schemes... it is still a very common practice by template neophytes who don't know a thing about [[m:Parserfunctions]], and so '''"One of the most common reasons meta-templates are created is to add functions that mimic conditional expressions"'''. That statement, and the mention of the practice here is not an endorsement... the page title says to avoid such things. The point is to describe the practice so that people can recognize what's being discussed and be shown alternatives. In other words "Here's a common practice, and it should be avoided in favor of x, y, & z". -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 07:59, 23 October 2006 (UTC)
The second is this does not work for users on non-css browsers or for users who have CSS enabled. I know some do not feel that it is worth taking these users into consderation, but noting the accessibily features coded into wikipedia (if you turn off style sheets you get headings over the various navigation menus, such as "Views" and "Personal Options") I know that I am not the only one who thinks that they should in some way be catered to.


::Can you show me such practice? --[[User:Ligulem|Ligulem]] 08:02, 23 October 2006 (UTC)
The third is similar to the second in that it fails when the stylesheet is not present, for instance on mirrors. http://www.1bx.com/en/ARY_Digital.htm is a mirror of [[ARY Digital]], a page that uses the hiddenStructure css hack and the "hidden structure" is clearly visible as that site does not use our stylesheets. I am concerned that reliance on such a style rule is tantamount to being a [[Wikipedia:Avoid self-references|self-reference]] (unless there is instructions linked off http://download.wikimedia.org/ or somewhere to indicate that it is necesary to use these stylesheets) &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 14:06, 3 January 2006 (UTC)


::: [[Template:Flag]]. Please to enjoy. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 08:11, 23 October 2006 (UTC)
:For what it's worth, this concerns me as well, but it seems to be getting lost in the "Great Meta Template Purge of 2005/2006". I know Ævar had concerns about Lynx users and screen readers as well, which he expressed [[Template talk:Taxobox#Eliminating_meta-templates|here]]. A screenshot (also provided by him) pretty well showed how horrible the CSS hack was: [http://www.simnet.is/velfag/tmp/lynx.png]. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 14:18, 3 January 2006 (UTC)


::::Well known. Anything else? But [[Template:Flag]] does not serve as an example of "common practice". --[[User:Ligulem|Ligulem]] 08:27, 23 October 2006 (UTC)
::Content control is not what CSS is designed for: the hiding of document content is more than a 'style' issue. We cannot expect mirrors of Wikipedia content to adopt Wikipedia style sheets: the content should remain independent of style. The CSS kludge could be reworked into inline CSS, but that would look really horrible. I tink it's fair to say that we do not yet possess a viable alternative to 'meta-templates'. --[[User:Garzo|Gareth Hughes]] 14:33, 3 January 2006 (UTC)


::::: Those teeny-tiny flags are on hundreds pages, and there are several variations of the basic flag template. [[:Category:Flag templates]] and [[Wikipedia:WikiProject Flag Template]] cover all the related ones (Olympic, ISO, etc.). An extremely common practice (relatively on an encyclopedia of almost 1.5 million articles), and still is a convoluted meta-template scheme. You can see some of the hundreds of related templates [http://en.wikipedia.org/w/index.php?title=Special%3AAllpages&from=Country+IOC&namespace=10 here]. Because of how these are set up, Whatlinkshere is highly unreliable. The flag templates were my main inspiration for WP:AUM. I'd help fix them, but... -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:56, 23 October 2006 (UTC)
:::I think we '''do''' have a viable alternative. 'WeebleCode'. Yes, it requires an '|if=' statement or other blank parameter to be added to the template call. I don't consider that a big deal compared to the complete rewrite of many template calls which is going on. And, as per the example I just added to [[#Comparison CSS trick/Weeble code]] above, I think it is at least as simple to write this in templates as the CSS hiddenStructure trick. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 16:14, 3 January 2006 (UTC)


In general, I agree with [http://en.wikipedia.org/w/index.php?title=Wikipedia%3AAvoid_using_meta-templates&diff=83168676&oldid=83167580 this wording]. Although I do think "Conditionals should generally be avoided, unless there is a significant advantage in their use" is a bit dense. But as long as "Generally avoided" is not misrepresented as "do not use <nowiki>{{#if:...}}</nowiki> at all cost", I can live with that wording. Common practice is that even the "few template gurus" don't insert #if's if they are not needed. --[[User:Ligulem|Ligulem]] 08:27, 23 October 2006 (UTC)
Not sure it could be done inline except as <nowiki>style="display:none{{parameter|}};speak:none{{parameter|}}"</nowiki>. unfortunately, setting a style property to a non-existant value results in invalid CSS, whereas calling an non-exisiting class is not invalid. &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 14:44, 3 January 2006 (UTC)


:Overall, I don't think there is enough of a 'problem' here to require a policy/guideline. If individual templates (e.g. the flags) could be better structured then we should address that directly on a case by case basis rather than setting up an 'official policy'. The latter can only serve as a 'club' to force people to change something which has consensus... and, as I said, I don't see any problems here which I think would necessitate that. The fact is that people generally '''aren't''' creating "convoluted meta-template schemes" since the introduction of parser-functions. The flags are a relic from pre 'conditional template' days that have never been updated to more recent methods. Maybe there are reasons for that... or maybe it is just that nobody ever put in the effort, but that is one of a handful of cases and not any sort of widespread or significant problem. --[[User talk:CBDunkerson|CBD]] 12:56, 26 October 2006 (UTC)
::That's a very good point about using the CSS trick inline: it creates invalid CSS. Your code is good. but has the draw back of requiring the dummy parameter to be defined in every calling article, and of not allowing table pipe syntax. I'm not so sure that this is such a viable alternative. --[[User:Garzo|Gareth Hughes]] 18:45, 3 January 2006 (UTC)


:: You'd probably be surprised with just how many conditionally-based nested template schemes there are out there. This page can be a guideline which explains the issues, so that the same arguements aren't repeated. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 20:57, 27 October 2006 (UTC)
Indeed, I am not specifically advocating the dummy parameter hack over any other option, there seems to be real disadvantages with them all. Just hoping that we can either find a decent alternative (preferable) or at least reach a consensus as to which [[Lesser of two evils|evil is the lesser]]. I suppose it comes down to which is deemed more important by the community, accessibilty of output or usability of input. &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 20:00, 3 January 2006 (UTC)


:::So point them out and I'll be happy to talk with the people there about simplifying them. Heck, you ''could'' talk to them yourself, work out a consensus, develop an alternative in your user space, and get someone to implement it. Which would probably go a ''long'' way towards getting your ArbCom probation on the matter rescinded. I just think it is a bad idea ''<tm>'' to go down the road of 'this type of template is a bad design... see there is a page which says so... so you have to change/abandon/delete it' again. There is not enough of a 'problem' here to justify ANY sort of cudgel... whether it be labeled 'guideline' or not. If there is really a way to simplify things people will usually jump at the chance. --[[User talk:CBDunkerson|CBD]] 13:11, 6 November 2006 (UTC)
:For the very high use templates we'll need a bot to add the dummy parameter to all the template calls. This would make this hack a little less 'evil'! --[[User:Garzo|Gareth Hughes]] 23:23, 3 January 2006 (UTC)


{{quotation|A rejected page is any proposal for which consensus support is not present. Consensus need not be fully opposed; if consensus is neutral on the issue and unlikely to improve, the proposal is likewise rejected. '''Making small changes will not change this fact, nor will repetitive arguments. Generally it is wiser to rewrite a rejected proposal from scratch and start in a different direction.'''|[[Wikipedia:Policies_and_guidelines#The_differences_between_policies.2C_guidelines.2C_essays.2C_etc.|Policies and guidelines]]}}
::I did a complete conversion of {{tl|taxobox}} to dummy parameter format (no hiddenStructure) at [[User:CBDunkerson/Sandbox3]]. A few different calls to this can be seen (along with some other ongoing projects) at [[User:CBDunkerson/Sandbox]]. It would be interesting to see whether the browsers which had trouble with CSS can handle this better. The calls to the template were left unchanged from the current format '''except''' for requiring the extra '|if=' parameter. Note that I used wiki-table markup ''except'' I used <nowiki><td></nowiki> for the newlines... which could then be included inside the default parameter to prevent blank lines. I don't think this format is particularly more complicated than hiddenStructure style. The need to add the extra parameter is the biggest issue. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 00:31, 4 January 2006 (UTC)


This page and its fundamental concept have been rejected over and over. Neto is the only one trying to revive this. The content you want to add is fine, but not policy material. It belongs on an informative page like [[Wikipedia:Template namespace]]; not here. — [[User:Omegatron|Omegatron]] 00:10, 4 November 2006 (UTC)
::::This thread is nothing more than more stonewalling against this policy. The hiddenStructure tricke is not perfect, but we ''must'' do everything we can to eliminate meta-templates. Lacking anything better, and "Weeble" is definitely not better), we must implement what we have. In a couple months, if the syntax changes or someone discovers something better, I'll be back at it, updating all the templates I'm working on right now. I don't care. What cannot happen is for people to delay or impede these conversations on the grounds that CSS isn't perfect. Let's get to work. If you don't want to do the work, then at least don't iuterrupt those that do. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 01:04, 4 January 2006 (UTC)


: So feel free to add a summary on that page, but let this be the expanded -guideline- (not "policy"). I cannot tell from the above whether YOU YOURSELF reject this page, or are only acting out of some sense of obligation becuase you believe that it oresently is rejected. IF you say the wording is fine, and Ligulem does, and me, and CBDunk doesn't have major objections... then what is the problem? It is a proposed guideline, nothing more. LEt it evolve, let more people read it without the stigma of that giant red "X" on the top. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 07:21, 4 November 2006 (UTC)
::No, this thread is ''discussion'' on the best ways to implement this policy. Compared to hiddenStructure, the 'MrWeeble' method offers greater accessibility and greater portability with only the cost of having to add '|if=' to each call to the templates. For many templates that seems like a reasonable tradeoff to me. There are over a thousand 'taxobox' template calls, so that's a little daunting to add all those 'ifs', but most templates don't get called that many times. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 01:34, 4 January 2006 (UTC)
::::you should have wikified [[discussion]] - it seems Netoholic does not know what this is. [[User:Tobias Conradi|Tobias Conradi]] [[User_talk:Tobias Conradi|(Talk)]] 15:58, 4 January 2006 (UTC)
Netoholic, I am not "stonewalling against this policy". Indeed I agree with this policy. If something harms the servers and contributes to downtime then I say "kill it; kill it with a big stick". However, now we've accepted this policy, we need to determine what to do next to replace templates that use meta-templates for the hiding of lines that show. While there is some merit in [[Wikipedia:Be bold in updating pages|going ahead and making unilateral changes]], for something as important as this, I believe there should be [[Wikipedia:Consensus|consensus]]. At the moment there is not consensus, hence I thought I should raise my concerns about the hiddenStructure method in the hope that these can be resolved. In the interests of fairness and objectveness here are some '''Usability concerns with dummy parameter method''':
*Requires a dummy parameter in each call of the template. This could be laborious to do manually, but should be relatively trivial to do with a bot.
*The code does not look pretty making it very hard for a newbie to edit.
*Due to both wikitables and templates using pipes, table structures need to be done in html, again this reduces options and thus reduces usability for editing it. &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 12:07, 4 January 2006 (UTC)


== WP:AUM had been rejected... Is it time to revert some of the "forward looking" edits? ==
: I think any one of those reasons is enough to shelf "WeebleCode" in favor of the CSS solution. CSS does work well, and really only ''marginally'' looks bad on lynx, which is less than 0.03% of our hits. The solution for lynx is to limit the number of optional fields. I'd love to discuss alternatives, but people [http://en.wikipedia.org/w/index.php?title=Template_talk:Language&diff=prev&oldid=33850193 are starting to believe] that WeebleCode is gaining consensus. Neat trick, but bad implementation. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 16:03, 4 January 2006 (UTC)


I believe there are a few pages that were edited in anticipation of WP:AUM. Some (probably not all) of these pages may warrant reverting. Are there any guidelines, or priorities or concensous was to what to revert first? I am of the mind to simply do the ones I know about.
::Actually, I think the major problem with ''hiddenStructure'' is that it doesn't work on Wikipedia mirrors unless each and every mirror individually includes ''hiddenStructure'' in its stylesheets. A large proportion of people reading Wikipedia content read it on a mirror site. --[[User:Garzo|Gareth Hughes]] 17:12, 4 January 2006 (UTC)


[[User:Sumburgh|Sumburgh]] 08:49, 5 November 2006 (UTC)
::: Mirrors have always had to adapt, so I'm unconcerned about them too much. But really, what do you think a mirror can do with WeebleCode anyway? It's based of a function that's built into the pre-alpha version of MediaWiki that Wikipedia runs. Moreover, it's entirely reliant on the way the MediaWiki software handles those default parameters. Mirrors get copies of the page and template sources, but most don't even use MediaWiki. You're telling me that adding a CSS class to their implementation is harder than rewriting their parser code?
::: I'd be more worried about people who want to use content containing WeebleCode on the older (stable) 1.5.x and below versions of MediaWiki. Default parameters have not been activated on those releases and so WeebleCode has no chance of working. There is a chance it will never work, since 1.6.x isn't even in alpha state yet. hiddenStructure ''does'' work on the current stable/public version of MediaWiki. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:38, 4 January 2006 (UTC)


: Of course other pages should reflect the fact that this is rejected, but can you give some more concrete examples of what you're talking about? — [[User:Omegatron|Omegatron]] 09:29, 5 November 2006 (UTC)
An alternative CSS trick that doesn't depend on a specific stylesheet is to use <code>&lt;span style<nowiki>{{{parameter|}}}</nowiki>="display:none;speak:none;"></code>. I've recently used it in [[Template:Starsx]], and it appears to work fine (even in lynx, though that's a bit of a special case). —[[User:Ilmari Karonen|Ilmari Karonen]] <small>([[User talk:Ilmari Karonen|talk]])</small> 19:12, 7 January 2006 (UTC)


: People who rejected this page 9 months ago did so because they felt that it threatened a poorly implemented hack involving [[Template:If]] and such. Now that scheme is deprecated in favor of ParserFunctions, and all RECENT indications about are that the main people who lead the rejection of this page are now of the mind that, with some updates to reflect the present situation, that the content of it is good. To repeatedly say this page is rejected while ignoring recent consensus is not accurate. I do not care about the past, I care that this page makes some excellent observations and suggestions. People "get" what this page is about, as I see the subject come up often and I see people working under the principles given here. Nested "meta-template" schemes are being wiped out. This page is current, and reflects wide consensus. I remain open to discussing specific parts, but Omegatron is not the decider of what is rejected or not. To do so he needs to show this page does not currently hold consensus. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 09:51, 5 November 2006 (UTC)
: That solution doesn't produce valid HTML, since styleFoo isn't an allowed attribute. It's OK to call undefined class names, as in the hiddenStructure method. I'm also curious why you say it works in lynx, when the point of that template is displaying ''images''. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 19:56, 7 January 2006 (UTC)
::It seems this is a very touchy subject, so I suggest further discussion before making any changes on the actual project page. -- [[User:Ned Scott|Ned Scott]] 10:46, 5 November 2006 (UTC)


::: And discussion is happening. It is only "touchy" because people assume it must be "touchy". In reality, the page's function is simple and generally agreeable. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 09:50, 7 November 2006 (UTC)
::True, but it seems Tidy strips the bogus attribute away — and even if it didn't, user agents are supposed to ignore unrecognized attributes. As for lynx, it works in the sense that it displays a meaningful alt. text. As I said, though, this template is a special case since its main purpose is to show images; it may or may not be possible to make other templates using such tricks work in lynx. —[[User:Ilmari Karonen|Ilmari Karonen]] <small>([[User talk:Ilmari Karonen|talk]])</small> 21:15, 7 January 2006 (UTC)


:::: It would help if you gave some examples of this "general agreement" you keep talking about. Who has said they want this page revived besides you? — [[User:Omegatron|Omegatron]] 17:19, 7 November 2006 (UTC)
== Weeble Implementation ==


::::: What you're not getting is that you and other people are "saying" that this page has no agreement, but not speaking for '''yourself'''. Do you '''yourself''' believe that meta-template schemes should be avoided? I really want everyone on this talk page to answer this question, rather than assume they are acting on behalf of some shadowy faction that oppses this page. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:52, 7 November 2006 (UTC)
:I belive the portability and validity criteria really do turn us away from the ''hiddenStructure'' technique, and there seems to be gathering consensus that it not be used. I think we are fully aware of the drawbacks of the WeebleCode, but it seems [[User:CBDunkerson|CBD]] managed to work out how to retain the majority of template in pipe syntax with the WeebleCode. If we can have an agreed method of implementation and a few bots to add the dummy parameter, we could do some good work in reducing the use of meta-templates. --[[User:Garzo|Gareth Hughes]] 12:41, 4 January 2006 (UTC)
I can not see how CBD's code works. I have tried to implement it, but it does not remove the lines, mereley removes the label from the line, leaving blank lines. I could be wrong, I suck at pipe syntax tables (been coding HTML tables for years - old dogs, new tricks). CBD, could you show us a test implementation?


:::::: So you can't? — [[User:Omegatron|Omegatron]] 02:37, 8 November 2006 (UTC)
The code at [[User:Adrian_Buehlmann/work/Infobox TV channel/2006-01-02]] is a whole lot neater than my original version, and hopefully should be easier to edit.


::::::[[WP:CREEP|instructions creep]], because it's not a big issue in the first place? -- [[User:Ned Scott|Ned Scott]] 03:31, 8 November 2006 (UTC)
As an additional comment, I feel that any templates that we hack in either of these ways should be tagged with a category (in noinclude of course), so that when a better method is implemented we can go through and re-reimplement them all. &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 13:55, 4 January 2006 (UTC)


Why not make a workshop page, or a new proposal along similar lines? - [[User:A Man In Black|A Man In <span style="color:black;">'''Bl♟ck'''</span>]] <small>([[User talk:A_Man_In_Black|conspire]] | [[Special:Contributions/A Man In Black|past ops]])</small> 03:13, 6 November 2006 (UTC)
I segmented this out from the previous pros/cons section as both are getting large.<br>
MrWeeble - definitely agree on the categorization. Both of these methods are kludges and we ought to keep track of them for later repair if a better methodology becomes available.<br>
Take a look at the [[template:User Infobox]] which I just cobbled together and it's use on my [[User:CBDunkerson]] page. It makes extensive use of WeebleCode along with tables within tables. Still needs alot of polishing / expansion, but shows that the methodology is viable. As noted before, there's also [[User:CBDunkerson/Sandbox3]] for a translation of {{tl|taxobox}}... compare the coding on those two. They produce essentially identical output and have nearly the same coding, except that taxobox uses hiddenStructure and my Sandbox3 uses WeebleCode. Examples of Sandbox3 in use can be seen at [[User:CBDunkerson/Sandbox]].<br>
There '''is''' a blank line issue with this method, but you can usually work around it. The '!' symbol and <nowiki><td></nowiki> can be used inside a parameter default section to create horizontal and vertical cells... '!' being a header indicator means that it's use isn't always appropos, but I've been able to kludge something through for each situation I've encountered so far. I'll try to take a look at your latest 'Infobox TV channel' to see if I can figure out how to adjust it to this format. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 14:35, 4 January 2006 (UTC)


: Because we've been down that road before, and this is the right title and place to discuss this very minor consideration in the template space. Besides, the content of the page is largely uncontroversial, except when people assume it is controversial. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 09:50, 7 November 2006 (UTC)
:That looks good. It's obviously not a straight substitution, and some thought is needed to convert existing templates to WeebleCode. As no real solution seems to be on the horizon, it seems that this is the best kludge we have. To focus minds, the way forward seems to be:
:# Develop draft versions of existing meta-template templates rewritten with WeebleCode.
:# Ask others to cross-check and test them.
:# Get a few bots to carry out the insertion of dummy parameters into articles (offers please!).
:# Switch the template to the draft version, and tweak if necessary.
:We can start on phase 1 right away. --[[User:Garzo|Gareth Hughes]] 15:09, 4 January 2006 (UTC)


== Why only on enwiki? ==
== Not again ==
If this is a policy for technical reasons, why is it an enwiki-only policy? --[[User:Pjacobi|Pjacobi]] 23:18, 3 January 2006 (UTC)
:Good question. My best guess is that meta-templates haven't been implemented as extensively on other wikis or the server load is just less in general. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 14:15, 4 January 2006 (UTC)
::plus en is just a lot bigger and busier than the others, so meta templates there are less likely to get hit. I guess on the other sites they are hoping that perfomance issues can be fixed in mediawiki before it becomes a problem for them. &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 15:54, 4 January 2006 (UTC)
:Because I haven't translated it into Latin. [[User:Snowspinner|Phil Sandifer]] 16:35, 6 January 2006 (UTC)


Ugh. Do you ever feel like you're the needle running over a broken record? Edit warring, disputed page protections, blocks, et cetera. We've all been here before and we all know how it turns out... badly for Wikipedia. Can we ''please'' not fight this war '''again'''?
::For starters: ''devitatote subformulae''! --[[User:Garzo|Gareth Hughes]] 16:56, 6 January 2006 (UTC)


Netoholic, you are not wrong that some templates are set up less efficiently than they could be. We should indeed encourage people to use different methods where appropriate. However, this page '''''is not needed to do that'''''. There is nothing preventing direct contact with people involved in various templates that could be re-designed. No, you can't then point at a page and say, 'all the reasons why this must be done are there'... but that's a ''good'' thing. It forces us to examine the individual needs of the template and the people using it and work ''with'' them to come up with a replacement they are comfortable with. So that we are the 'good guys' not just in terms of improving templates for Wikipedia as a whole, but also to the individual users impacted.
== Random ==


Why not work on improving the templates collaboratively... rather than fighting to enshrine a framework which can serve no purpose but to over-ride collaboration with 'established practice'? --[[User talk:CBDunkerson|CBD]] 13:38, 6 November 2006 (UTC)
I've come up with two (related) ways of building a 'random number' generator in Wiki-markup. However, one method would require thousands of parameters to be evaluated (with all but one being unpassed). The other method could cut that to hundreds of parameters, but would require the template to be manually updated every few days. Is evaluating hundreds (or thousands) of unset parameters in a template resource intensive? That is, if I had a template which lists parameters 1 to 1000, returning a different number for each, but I only passed in parameter 732 would the template take significantly longer to evaluate than if 732 were the only parameter it was anticipating? Assuming that parameter switching '''isn't''' a computational drain... do I dare go there? Once something like this is developed it could easily be converted to a generic <nowiki>{{random}}</nowiki> template which might then be called by other templates (meta-templating) or fed into other templates as a parameter (multi-templating). Is this too much of a 'genie out of the bottle' issue or can it be implemented in a limited fashion without hurting anything? And yes... I know I'm evil. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 15:33, 6 January 2006 (UTC)


: I don't think that approach will help in more than a few cases. I prepared the first version of this page only after dozens of individual meta-template arguments and deletion votes. This page centralises many of the points, so why would we want to expend effort re-explaining this each and every time? No, this is not the biggest problem on Wikipedia - I never said it was. Far more often then not, people have been directed to this page, read it, and come away with a greater understanding and a desire to make their templates less cumbersome. Why take that away? -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 09:45, 7 November 2006 (UTC)
: We have no use for this. Go write an encyclopedia. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 16:02, 6 January 2006 (UTC)
::Setting aside the usual pleasant attitude... I disagree. I think this ''could'' be useful to 'us' in building an encyclopedia. Part of our effort is showcasing the work we have done. That's why we have a 'Main Page', 'Portals', and 'Featured' content. The ability to randomly display different 'showcased' material each time someone views a page would unquestionably be beneficial in promoting the encyclopedia. The question is whether it is computationally sound or not. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 17:01, 6 January 2006 (UTC)


:: I just stumbled here looking for template content. I come from a strong background in C++ template meta-programming and I've witnessed this same debate play out over a decade with larger armies, better trained, and better equiped. I would say the debate was more complex than the meta-programming techniques themselves. The <code><nowiki>autoptr<></nowiki></code> saga raged forever. In my view, this page is '''not''' the right forum to achieve its purpose: advocating a judicious use of complexity for the betterment of the community as a whole. Far more useful would be a page or collection of pages concerning '''Recommendations on avoiding unnecessary complexity''' in general, with portions applied to templates, and meta-templates, in particular; and from there, as others have suggested, work with people to adopt this material to their specific situation so far as it makes sense.
:::1000 Parameters? This is definitely "over-egging the pudding". I agree with Neto, though as usual he could have been a little bit more diplomatic :-). [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 17:06, 6 January 2006 (UTC)


:: '''I lost what sympathy I had''' when I saw the prominent link to '''protected pages are bad(tm)'''. That's the kind of innocuous-on-the-surface wolf-in-sheeps-clothing that makes this page dangerous and far from uncontroversial. The same facility that these semi-protected deep-infrastructure meta-templates provide could just have easily have been incorporated into the MediaWiki code base as custom PHP. Does that end up making the facility less-protected? The C++ community went through endless heartache to push complexity away from the core compiler by making the template infrastructure sufficiently powerful that the same complexity could be handled as a deep systems library provided by the compiler vendor or by means of a battle-hardened primitives library (e.g. Boost). At the end of the day, it benefits the entire ecosystem not to code more policy into the compiler itself than absolutely necessary. For C++, the equivalent of the parse-functions extension is coded in a Boost library and you wouldn't want to be mucking with this down in the sub-basement unless you feel up to the challenge of performing a successful self-amputation. Most likely it was of great value that the community could explore the use of this facility '''before''' it was formally codified as Mediawiki extension. Experience has shown that new C++ coders often learn faster and make fewer mistakes programming on top of the Boost library, rather than cooking from scratch in a notoriously unsafe kitchen. The issue is about packaging the complexity appropriately, not whether it exists somewhere in a basement that eats children.
:Uncyclopedia solves this problem the way it should be solved, with an extension. -- [[User:Cyrius|Cyrius]]|[[User talk:Cyrius|&#9998;]] 20:58, 6 January 2006 (UTC)


:: The point here is that there is certainly no consensus in any policy page that the use of protected pages to promote the general safety of Wikipedia while wrangling with how to best dispatch complexity taints such an endeavour intrinsically, which is the wolf-in-sheeps clothing that invoking the trappings of a consensus formed about the abuse of a mechanism in a broad political context rather than this hillybilly-esoteric technical backwater. In so far as the reader comes away informed, it could be achieved better by other means.
::That would undoubtedly be the very best solution. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 21:39, 6 January 2006 (UTC)


:: A good book to consider is '''Getting to Yes''' which talks at length about the need to argue from interests rather than positions. The interest here is that Wikipedia complexity be managed in the best possible way across the broad swath of the Wikipedia ecosystem, from casual contributors to hard-core MediaWiki hackers. IMO the existence of this page subtley biases the debate away from the '''interest''' of managing complexity and toward the '''position''' that template meta-programming can be tarred with one brush. That makes this page plenty controversial in my estimation. [[User:MaxEnt|MaxEnt]] 18:18, 7 November 2006 (UTC)
==Proposed renaming==
I propose this be renamed to [[Wikipedia:Never use meta-templates]] (with the shortcut being [[WP:NUMT]]). Having it named "Avoid using meta-templates" implies there are cases where meta-templates are okay, and that's just a little too confusing for people being hit over the head with this I imagine. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 07:38, 8 January 2006 (UTC)
:Indeed. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 08:13, 8 January 2006 (UTC)


:::Wow, that was.. really well put :) -- [[User:Ned Scott|Ned Scott]] 03:35, 8 November 2006 (UTC)
: I've been thinking about that myself, but not how you are. The term "meta-template" is the source of a lot of confusion. I'm thinking something like "Don't use nested templates", although with that, we're really approaching the point where people may ask why that isn't removed from the software completely. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 09:04, 8 January 2006 (UTC)


== Cache size is getting too small again ==
:: Agreed. The meaning of the word is not clear.
::I thought the whole point of making this policy was to make a temporary kludge ''because'' these changes couldn't be made to the software. — [[User:Omegatron|Omegatron]] 09:38, 8 January 2006 (UTC)


The text alone from [[United States]] is 500 KB of meta-templated goodness, not counting javascript, stylesheets and of course images. I clocked five various diffs (with "time wget" from the shell) at '''between 43 and 48(!) seconds''' just now. The second try of each was about 5 seconds. When a particular version of an article with enough meta-templates in it gets bumped from the caches, you wait. And wait. I disbelieve the developers when they say nested transclusion isn't a performance penalty. That depends on having an effectively much larger cache than we do now. [[User:1of3|1of3]] 03:40, 6 October 2007 (UTC)
:: Perhaps one way to better educate people (such as myself, I admit) would be to point to examples of where meta/nested templates are OK/good for the encyclopedia. Or, just turn the feature off in software if there aren't any OK/good examples. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 09:31, 8 January 2006 (UTC)
:from Rob Church on the mailing list:
:::I agree... move to [[Wikipedia:Don't use nested templates]] and make the shortcut [[WP:DONT]]. &nbsp;[[User:Alkivar|<font color="#FA8605">'''ALKIVAR'''</font>]][[User_talk:Alkivar|&trade;]][[Image:Radioactive.png|18px|]] 10:56, 8 January 2006 (UTC)
::''The "technical team" is not responsible for checking that content is correct, nor is it responsible for checking page load times for each article and pruning them in the dumps. If a page contains obvious abuses of markup which cause significant problems for large numbers of users, then we'll kill it off, but of course, we haven't had a large number of reports of that in recent months, although as other threads on the list imply, the problem is resurfacing, and will likely be looked into.''
::::Agreed. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 12:45, 8 January 2006 (UTC)
::''We can't really help it if our users are silly enough to insist upon abusing a markup language as if it were pure code, nor if they insist upon continuing to use fragile-looking template constructs which will end in tears. ''
::::I think it's too strong. Heck, the '''[[Main Page]]''' uses nested templates. Avoid and don't mean different things. If anything I'd think we should just add more text to the policy to explain that it is extensive template nesting linked to many pages which causes problems... not simple cases of double transclusion which appear on one page. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 14:21, 8 January 2006 (UTC)
:— [[User:Xaosflux|<span style="color:#FF9933; font-weight:bold; font-family:monotype;">xaosflux</span>]] [[User_talk:Xaosflux|<sup style="color:#00FF00;">Talk</sup>]] 11:27, 26 October 2007 (UTC)
:::::We could list the allowed exceptional cases. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 16:31, 8 January 2006 (UTC)
::::::If only identified exceptions are 'allowed' then what you are talking about is a significant, and in my opinion unwise, policy change. Is there really any reason to go after all the users who have 'Babel' templates (which are meta-templates after all) on their user-pages? All those who put Babel and other template calls on a sub-page and then transclude that into their user page? Meta-templates... but absolutely insignficant in terms of server load. The policy is "Avoid"... there are uses of meta-templates which can cause unspecified but significant strain on the servers. We should be tracking those down and eliminating them. Not changing the policy to "Don't" and hassling a much larger population for no good reason. The problem is that 'Joe user' doesn't know which meta-templates are likely to cause significant drain and which aren't. Right now a bunch of people (mostly on this page) are figuring that out for them. Maybe we ought to have a 'Wikiproject templates' to help sort out these and other conditional template issues. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 11:58, 10 January 2006 (UTC)
:::::::I agree with you. But it will be a hard job. And there is no consensus yet what qualifies as acceptable meta template and what not. I assume that Neto wants to extinct ''every'' meta template. I fear there will be a lot of stressy edit wars over this, which also harms the servers. People may say: "Oh that's not fair. Group X over there is allowed to that meta and we are not!". But we could give it a try. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 13:05, 10 January 2006 (UTC)

::[[Wikipedia:Avoid nested templates]], an explanation of what "nested template" means, what it doesn't mean, examples of templates that have been modified because of it ("Template X did nothing but format messages boxes. It has been replaced by CSS class Y, which provides the same functionality but with the following benefits and none of the server load problems"), and examples of templates (like those on the main page) that won't be modified. — [[User:Omegatron|Omegatron]] 17:21, 8 January 2006 (UTC)

:::<s>Nope. Avoid avoid. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 18:48, 8 January 2006 (UTC)</s> Change my mind. Seems to be the least evil for now. Nested templates is better than "meta templates". I see there is consensus to keep the word "avoid" but to use "nested templates". So I support that now. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 13:08, 10 January 2006 (UTC)

Another idea, move this page and use it as a seed for a [[Wikipedia:Template policy]]. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:41, 9 January 2006 (UTC)

:No. Too broad. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 13:05, 10 January 2006 (UTC)

== Transitioning and alternatives ==

OK, now that this has escalated to an official policy then what are the plans for transitioning and converting existing meta-templates? One alternative to [[m:Help:Array]] may be the data storage tool which Jimbo mentioned last year; what is the implementation status of that? I think one example was to store information such as the current capitol or president of a country. ([[User:SEWilco|SEWilco]] 10:03, 10 January 2006 (UTC))
:There are a couple of 'in the works' changes which might allow meta-templates to be replaced with a built-in implementation. However, no clue when/if those will happen. In the mean-time two methods of replacing meta-template functionality have been developed. However, neither is perfect and both have benefits/drawbacks the other does not. Unfortunately, they might both break if the default handling for unset parameters changes. Extensive commentary on the 'CSS trick' and 'WeebleCode / parameter default trick' can be found on this page. There are also a number of more flexible variations on each (inline CSS, doing 'or/and/not' parameter checks, et cetera) which probably ought to be collected somewhere for reference. Several major meta-templates have already been transitioned over to these methods. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:13, 10 January 2006 (UTC)

== Conversion Template ==

Currently there are some discussions about Conversion Templates [[http://en.wikipedia.org/wiki/Wikipedia:Templates_for_deletion#January_9]]
. In particular the following convertions template have been ruled as "disallowed by policy" in WP:AUM.
* <nowiki> Template: {{Born|1919|7|20|region=NZ}} </nowiki> that correctly puts [[Edmund Hillary]] into the Category:New Zealand people and Category:1919 births. And correctly formats the dates as per wiki standard.
Also:
* Template: <nowiki> {{Locale length|1000}}</nowiki> that Converts meters to feet eg. <nowiki>{{Locale length|10}}</nowiki> gives '''10 m (33 ft)''' and <nowiki>{{Locale length|1000}}</nowiki> gives gives '''1000 m (3281 ft)''', useful when globalising metric measurments (without imperial feet) are encountered in some pages. Also can be used to insert no-line-break space after the between number and unit. eg 1000&nbsp;m, this is commonly missed and leads to messy pages.
I am thinking that we need more of these kind of template, not less. Can someone point me to some stats on how these kind of template effect the performance of mediawiki (I don't have mediawiki installed on any of my machines).


There is a comment [http://en.wikipedia.org/w/index.php?title=Wikipedia%3AAvoid_using_meta-templates&diff=32975873&oldid=32905331| c.f.] that states that template encourage vandalism by forcing the vandal to manually change many pages. This "protection" comes at a cost as it means that real contrubutirs must also update the same pages manually. Fortunately we still have more contributors then vandals (for the foreseeable future). Can we drop the comment [[Wikipedia:Avoid_using_meta-templates#Vandalism]] as it is a bit self defeating? An alternative would be to stop anonymous (or new) contributors from creating Templates.

[[User:NevilleDNZ|NevilleDNZ]] 11:48, 11 January 2006 (UTC)
:I have stroked and nowikied the template transclusions in the above posting due to a massive amount of text transcluded into here. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 12:07, 11 January 2006 (UTC)
:: $10 CASIO calculator to the rescue... I have manually added the standard height calculation required in the example. [[User:NevilleDNZ|NevilleDNZ]] 12:20, 11 January 2006 (UTC)
:::Ok :-). See also my posting on [[Template talk:Locale length]]. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 12:24, 11 January 2006 (UTC)
::::(triple edit conflict)Sorry, my fault. I was converting the template, but hadn't updated the call yet. I changed this from a meta-template which calls one of 10,000 other templates to a single template which triggers one of 10,000 parameters. To do so the call has to change from <nowiki>{{Locale length|7}} to {{Locale length|7=m}}</nowiki>. The 'm' isn't really relevant, you can set it equal to anything... just need to define one parameter as the only one being set. This now begs the question... is this massive parameter switch as bad (or worse) than the massive meta-template in terms of server load? I'm assuming they're both ugly, but worth exploration. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:26, 11 January 2006 (UTC)
:::::Um. Could you please confirm: 10,000 (in words: ten thousand) templates/parameters? --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 12:31, 11 January 2006 (UTC)
::::::You heard (ok, read) me. That's how the conversion works. It calls a template P1, P2, P3... P10000. There are no mathematical functions in Wiki so each instance (1-10000 meters) must be identified and responded to independantly. BTW, it takes so long to sort out the parameters that if you have three of these calls on the same page it just gives up. I'm reverting to the other version and think we should definitely kill this thing. However, it makes me wonder if the parameter switching we are using to replace meta-templates isn't actually worse. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:36, 11 January 2006 (UTC)
:::::::As I already said a longer time ago on this matter: "Premature optimization is the source of all evil" (reference: [[Premature optimization]]) :-) [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 12:43, 11 January 2006 (UTC)
::::::::Just a possibility. This is a pretty unusual case. It's really only 'double transclusion', but the second layer can be one of any 10000 templates... but that's set with a single parameter. So this isn't that bad as meta-templates go... but monstrous as parameter switches go. Something we need to keep in mind - in some cases the meta-templates are ''better''. Especially if this one is subst'd in. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:48, 11 January 2006 (UTC)
::::::Indeed I cant believe it. Patrick made template P1..P3 and NevilleDMZ continued them up to P10000. So we have now 10000 templates for that on Wiki:en. Grumble.... Looking for my big stick... (Oh boy, if Neto sees that :-) --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 12:51, 11 January 2006 (UTC)
:::::::Who do you think put it on TfD? :] --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:56, 11 January 2006 (UTC)
NevilleDNZ, I like the concepts but the way these templates work is problematic. The country one might be convertable to a non-meta format. Take a look at what I did at [[User:CBDunkerson/Sandbox]] for the distance conversion templates. It can all be done in a single template call... the problem is that the distance conversion has '''so''' many possible parameters that it just takes forever to evaluate. Countries shouldn't be as bad. Also, if these are subst'd in rather than pasted as templates they wouldn't cause much disruption, but that would have to be watched carefully. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:48, 11 January 2006 (UTC)


Bloody hell. IF YOU WANT A NEW FUNCTION (like conversions) ADDED TO WIKIPEDIA, SUBMIT A [http://bugzilla.wikimedia.org FEATURE REQUEST]. Stop misusing the template namespace as programming tool! -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 18:31, 11 January 2006 (UTC)
: :-) --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 18:45, 11 January 2006 (UTC)
:Groan... if wikipedia STILL does not have a calculator/conversion tool (as per my $10 CASIO calculator), what hope does any desperately needed "FEATURE REQUEST" have... seriously? Besides mediawiki is not paper, we can take advantage of the computer to do some of the more mundane tasks. (eg standard conversions)
:subst "Groan" for "Bloody" Hell if you want more sound effects. [[User:NevilleDNZ|NevilleDNZ]] 21:29, 11 January 2006 (UTC)
:Well said. If there are restrictions on the syntax, try thinking why they are there and working with them, rather than trying to poke holes in them in the manner of a high school hacker. [[User:Sam Korn|<nowiki>[[Sam Korn]]</nowiki>]] 23:49, 11 January 2006 (UTC)

== Banning meta-wiki to stop vandalism?? ==

There is a comment [http://en.wikipedia.org/w/index.php?title=Wikipedia%3AAvoid_using_meta-templates&diff=32975873&oldid=32905331| c.f.] that states that template encourage vandalism by forcing the vandal to manually change many pages. This "protection" comes at a cost as it means that real contrubutors must also update the same pages manually.

It fall into the category of "to cut ones nose of inspite of ones face".

Fortunately we still have more contributors then vandals (for the foreseeable future). Can we drop the comment [[Wikipedia:Avoid_using_meta-templates#Vandalism]] as it is a bit self defeating?

An alternative would be to stop anonymous (or new) contributors from creating Templates.

[[User:NevilleDNZ|NevilleDNZ]] 21:29, 11 January 2006 (UTC)

:Hmmm... Stopping anons from editing in the Template: namespace seems like a good idea at first glance, just like regular users are prevented from editing in the Mediawiki: namespace.
:Did you see [[Wikipedia:High-risk templates]]? — [[User:Omegatron|Omegatron]] 21:39, 11 January 2006 (UTC)

:: Restricting the Template space is sounding better to me all the time. After all, NevilleDNZ only had been here two months and made only a couple hundred edits before creating his templates. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 21:44, 11 January 2006 (UTC)

::Hey... that was my idea... Are you trying to shoot the messanger? :-) [[User:NevilleDNZ|NevilleDNZ]] 23:42, 11 January 2006 (UTC)

== Misnomer ==

Can we start calling them "nested templates", "conditional templates", "style templates", and so on instead of "meta-templates"? "Meta-templates" would technically be templates ''about'' templates; not within, and it's being used for every different type at the same time. "Nested" is a much better word for the term meant here.

And yes, that's an article name change request, too, regardless of whether we prepend it with "avoid", "never use", or whatever.

I'm itching to just move it to [[Wikipedia:Avoid using nested templates]], but I fear even this small change would lead to a vicious edit war. If another admin agrees, just move it, and the severity of the title can still be fought about in [[#Proposed renaming|the above section]]. "Nested template", though, is a more accurate term for the object described in the first paragraph. — [[User:Omegatron|Omegatron]] 22:31, 11 January 2006 (UTC)

:[[Wikipedia:Avoid nested templates]] would be more succint, but yes, I agree. —[[User:Ilmari Karonen|Ilmari Karonen]] <small>([[User talk:Ilmari Karonen|talk]])</small> 22:50, 11 January 2006 (UTC)

:I agree with the rename to "Avoid nested templates". "Avoid using nested templates" is also ok. I would prefer "Avoid nested templates" over "Avoid using nested templates".--[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 22:57, 11 January 2006 (UTC)

::Is it an insect or a female relative? --[[User:Garzo|Gareth Hughes]] 23:13, 11 January 2006 (UTC)
:::Heh. Fun with acronyms. :] --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 23:48, 11 January 2006 (UTC)
::::prefer the female relative :) [[User:Tobias Conradi|Tobias Conradi]] [[User_talk:Tobias Conradi|(Talk)]] 00:48, 12 January 2006 (UTC)
::::I prefer the insect. That also describes quite well my position in relation to [[WP:AUM]] :-). --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 10:07, 12 January 2006 (UTC)
Prefer to keep at present location over both those options. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 23:16, 11 January 2006 (UTC)

Note: I added [[template:Moveprotected]] on top of the project page because it is [http://en.wikipedia.org/w/index.php?title=Special%3ALog&type=protect&user=&page=Wikipedia%3AAvoid+using+meta-templates protected against moves]. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 09:34, 12 January 2006 (UTC)
:Nope. reverting myself. Sorry. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 10:29, 12 January 2006 (UTC)

== CSS hack reduces accessibility ==

I just learned about the CSS hack being added to a number of templates, to compensate for a changed policy on template transclusion. I understand that there is an alternative, but this is being implemented because its easier.

This hack injects junk code into the body of the page, then hides it from most visual browsers using CSS. This makes Wikipedia less accessible for users of assistive technologies, like web page readers for the handicapped, and text readers. This is sloppy programming and bad practice from the point of view of usability and accessibility. Wikipedia is an ''open'' encyclopedia; please lets not start treating the minority who has the most difficult time reading like second-class citizens. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-16&nbsp;17:51&nbsp;Z</small>''

: Having web sites which are inaccessible also violates assorted corporate policies and laws, which might affect who is able to host mirrors. A related side effect is that if the MediaWiki does not support an accessible version of a desired feature then MediaWiki will be less likely to be used for non-Wikipedia sites. ([[User:SEWilco|SEWilco]] 19:04, 16 January 2006 (UTC))

EVERYONE - in order to quash this [[MeatBall:ForestFire|ForestFire]], please follow-up discussion at [[MediaWiki talk:Common.css#CSS hack reduces accessibility]]. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 19:08, 16 January 2006 (UTC)

== On Babel ==

Somewhere way up there on this talk page — someone who doesn't find the whole debate headache-inducing can find exactly where — it was remarked that the [[Wikipedia:Babel|Babel]] templates break this rule/guideline/sharp note from the developers. Simply substing the Babel templates does not appear to break them — does this solve the problem, and if so, who volunteers to go and '''''gently''''' explain this to the folks over at the relevant WikiProjects, taking into account the fact it has, [[Wikipedia_talk:Babel/Archive1#Subst_or_not?|briefly and fruitlessly]], been brought up before? ~[[User:Jiminy Krikkitt|'''J''']].'''[[User talk:Jiminy Krikkitt|K]]'''. 08:25, 17 January 2006 (UTC)

:It's worth noting that the Babel templates aren't really any worse than other userboxes in terms of server load. In fact, using the Babel-''N'' metatemplates even saves one template call compared to using {{tl|Boxboxtop}} and {{tl|Boxboxbottom}} and directly including the Babel boxes in between. —[[User:Ilmari Karonen|Ilmari Karonen]] <small>([[User talk:Ilmari Karonen|talk]])</small> 13:20, 17 January 2006 (UTC)

:That said, an underlying problem is that Babel boxes on the English Wikipedia have their styles hardcoded into the templates. On some other Wikipedias (such as [[:it:Wikipedia:Babel|Italian]]) the styling is done with CSS classes, which makes the boxes much more cleanly ''subst''able. —[[User:Ilmari Karonen|Ilmari Karonen]] <small>([[User talk:Ilmari Karonen|talk]])</small> 13:31, 17 January 2006 (UTC)

:As Ilmari Karonen explains, this is an example of a situation where something '''is''' a 'meta' (nested) template, but it really doesn't cause any notably greater strain to the servers than a non-meta template would. The difference between <nowiki>{{Babel-3 |en-4|de-1|qu-2}} and {{Babel-N |1={{User en-4}}{{User de-1}}{{User qu-2}}}}</nowiki> (or the 'boxtop' / 'boxbottom' method) in terms of server load is infintessimal. I'd like to see the numerous 'Babel-#' templates cut down to just a few, but in terms of server load I really don't see a significant problem with them. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 13:57, 17 January 2006 (UTC)

== Complete rewrite ==

I think this policy needs to be re-written. The way it is currently written and applied are completely different and the issues are not spelled out properly. For instance, the policy defines meta-templates as "those that are created and used to keep other templates in a standard format". The 'meta' acutally makes sense for that definition, but it has since become common to call virtually ''any'' 'nested' template a 'meta-template'. The original true "meta" templates were generally just double transclusions like those on the [[Main page]] to keep templates being called in a standard size/format. At that time this was just a 'guideline' because there were some concerns that excessive use of such might cause problems if some standard formatting template were changed. Since then '''much''' bigger issues have been introduced by templates which don't 'format' anything, but instead handle conditional logic. Technically, these aren't even covered under the policy as currently worded... though they were actually the reason for upgrading it to a policy in the first place.

Further, the root problems driving the policy really have nothing to do with 'meta' or 'nested' templates per se... it is only the utility of those applications which makes them somewhat more likely to run afoul of the server issues. A 'simple' template can cause 'update' and 'rendering' problems every bit as great as any 'nested' template. As such, I'd suggest redoing this policy as something like '''Use templates wisely''' and specifically explaining the problems caused by updating templates which are linked from numerous pages and rendering templates which contain alot of template calls and/or parameter conditions. We should be working towards making ''less server intensive'' templates in general rather than trying to eliminate a certain (incorrectly defined) class of templates which are often, but not always, the biggest problems. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:47, 17 January 2006 (UTC)

:[[#Misnomer|Agreed]]. — [[User:Omegatron|Omegatron]] 23:49, 17 January 2006 (UTC)

== Forcing Substitution? ==

'''UPDATE: Please see [[User:DCrazy/Force Static]] for a complete proposal. I realized that merely auto-subst'ing templates isn't enough to reduce the server stress induced by meta-templates.''' --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 21:03, 17 January 2006 (UTC)

Alright, why don't we cut a comprimise? Create a keyword like __FORCE_SUBST__, and whenever a template including that keyword is used, it is automatically substituted. Then someone who vandalizes, say, [[Template:User wikipedia]], will not cause any damage whatsoever to existing pages nor cause additional server load by invalidating the cache. To make editing easier, templates could offset their content with comments, like < !-- Begin/End Template:Babel -- > (comment deliberately broken, for obvious reasons). We get to keep one of the most powerful features of Templates while eliminating most of their risk -- a fair tradeoff in my book. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 14:20, 17 January 2006 (UTC)

:Looks damned interesting. Um, you broke that comment ''here'' because it was too tedious for you to write &lt;!-- Begin/End Template:Babel-->, right? --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 16:00, 17 January 2006 (UTC)
::Heh. Forgot about HTML entities. Yes, that is what it would look like. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 16:57, 17 January 2006 (UTC)

:Next question: you mean that a template X that contains __FORCE_SUBST__ would then behave exactly as if one had writen <code><nowiki>{{subst:X}}</nowiki></code> in the edit window, even if one writes just <code><nowiki>{{X}}</nowiki></code> into the edit window? --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 17:12, 17 January 2006 (UTC)

::That's the idea, though I'm not entirely sure if <code><nowiki>{{subst:X}}</nowiki></code> inserts X's ''source'' or its ''output'' given any parameters. The latter is preferable, because that means that, for example, all issues with templates that use <nowiki>{{qif}}</nowiki> aren't a problem if they are __FORCE_SUBST__ed. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 18:30, 17 January 2006 (UTC)

:::Note that templates that use qif cannot be substed. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 19:25, 17 January 2006 (UTC)

:I've seen suggestions for this before and it would absolutely be a good thing to have - particularly for templates which are intended as once-offs ('welcome', 'test1', et cetera). As such... yeah it would be '''great''' if someone were to develop such a thing. It would probably do more to reduce server load than all of the 'meta-template removal' work going on now. However, there is another aspect of templates which this wouldn't address. Many, possibly even ''most'', templates are used to create a common format for certain types of information. If those templates are subst'd then any future change to the format has to be made individually in ''each'' instance... rather just than the template being adjusted and all existing uses automatically updating. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 14:32, 17 January 2006 (UTC)
::Yes but in one of the cases mentioned above the Welcome template for example... even if it changes in the future there is no need to update it on previous talk pages. Just as there is no need for updating a vandal warning. The point is across and while there will always be minor tweaks to the content the general message has made it across. &nbsp;[[User:Alkivar|<font color="#FA8605">'''ALKIVAR'''</font>]][[User_talk:Alkivar|&trade;]][[Image:Radioactive.png|18px|]] 15:01, 17 January 2006 (UTC)
:That's a great idea. Some templates are just fine subst'd, or should be in every case, but many should not be. The long-term damage done by subst'ing all those templates and removing their auto-updatability is worse than the short-term damage caused by server load. If we can offset the server load by always substing templates that should always be substed, we can relax about the others. — [[User:Omegatron|Omegatron]] 15:09, 17 January 2006 (UTC)
:::Using templates mainly for formatting suggests to me that there needs to be better usage of CSS classes for formatting and styling, as mentioned [[#On Babel|above]] by [[User:Ilmari Karonen|Ilmari Karonen]]. At present it is easier to create a template to do the formatting than to get anything added to one of the stylesheets as they are protected and the template namespace is not. Looking at common.css, changes are proposed at Wikipedia:Village Pump rather than any specific policy or discussion area. Maybe there should be a specific method whereby rules can be proposed by users, checked by admins to ensure that nothing breaks, that they degrade well and comply with accessible rules and added as per the request. just my €0.02 worth. &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 15:17, 17 January 2006 (UTC)
::::Well, a lot of "formatting" issues aren't really formatting issues... <nowiki>{{Locale length}}</nowiki> is kind of both, in that it standardizes the style used for measurements but also provides content above beautification. <nowiki>{{Locale length)</nowiki> is an '''incredibly''' easy and obvious candidate for something along the lines of __FORCE_SUBST__. The more complicated a template gets, the less of a candidate it is for forcing substitution. But the great thing is that a lot of templates are complicated on the inside, but their output is not. Take, for example, <nowiki>{{Wikipedia:Babel}}</nowiki>. The source for that is ''hideous'', but its output is a standard wikitable. This brings the question, does subst'ing a template insert its source or its output given its parameters? I really hope it's the former, because that makes all of our problems go away if we force subst'ing on numerous templates. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 16:56, 17 January 2006 (UTC)

A "__FORCE_SUBST__" option has been proposed a few times in the past. The problem seems to be that you can't control where it gets inserted, and the vast majority of templates are on very few watchlists. If someone say added "__FORCE_SUBST__" to a highly-used but rarely-edited/low-watchlisted template, every time a downstream page was edited after that point, the template would be subst'd in. Editors may not notice for hours or days, at which point many articles would no longer be linked to that template. There's not much chance of recovery if that happens. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 18:45, 17 January 2006 (UTC)

:I think the proper solution in this case would be to lock the Template namespace from editing by anons, but that's a WHOLE other can of worms. From a strictly technical point of view I think that __FORCE_SUBST__ is a good idea. Overall, taking things like vandalism into account, the picture gets muddier. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 18:50, 17 January 2006 (UTC)

:: I'm not really saying this would only happen when a vandal/new user does it. Anyone who thinks innocently (but wrongly) "This template is better subst'd" could cause unrecoverable problems. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 18:55, 17 January 2006 (UTC)

::: Hrmm. Well, in that case maybe forcing substitution would be an admin-only privilege. That seems to work well with protection/semi-protection. And actually this is where the two problems merge: the technical issue is that meta-templates cause additional server load whenever one of the contributing templates is modified. Plain-old subst won't help since that creates a mess in the page's source and doesn't actually remove the conditions and other things associated with the template, offering zero benefit. The problem increases with the popularity of the meta-template. This catches the attention of admins.
::: But since the only real problem is posed by popular templates, and admins will be more aware of those (meta-)templates than the more obscure ones, giving admins control over forcing substitution (actually pre-rendering, as determined below) would offer a solution for the templates that cause the biggest problem.
::: The only remaining issue is what to do if page X includes force-subst'd template Y, someone vandalizes template Y, and then someone edits page X. This is an unrecoverable situation, which can only be mitigated (preventing anons from editing in the Template namespace, for example) but never eliminated. Proper guidelines would help immensely; templates that are extremely unlikely to change, such as {{tl|Locale length}}, would be great candidates for force-substitution, and would need little to no debate before being implemented as such. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 19:34, 17 January 2006 (UTC)

'''BLAST!''' Apparently subst: copies the template's source, not its output (just tried it on the [[WP:Sandbox|sandbox]] using {{tl|X1}} which included {{tl|X2}} -- net result was <nowiki>{{X2}}</nowiki> in the source of the sandbox). So __FORCE_SUBST__ would require a different behavior than just mimicking subst: in order to be truly effective. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 18:50, 17 January 2006 (UTC)

:Nevertheless your idea goes in a good direction. See also [http://en.wikipedia.org/w/index.php?title=User_talk:Rick_Block&oldid=35501956#Some_toughts_about_templates my talk with Rick Block] on a similiar theme. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 19:25, 17 January 2006 (UTC)

*Note that [[WP:SUBST]] maintains a list of tempaltes which are bot-subst'd on a regualr basis. This is not the same as a would-be "__FORCE_SUBST__", but in many cases it does the job well-enough. Would it serve the desired purposed here, at least pending a feature implemetation? [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 20:45, 17 January 2006 (UTC)
**Not really... see [[User:DCrazy/Force Static|my article on the matter]] for why subst: doesn't cure all the ills inflicted by meta-templates. Bots that auto-subst are a great resource, but don't do everything necessary (unless someone were to write a bot that parsed the template and inserted its final, processed wikitext into the page). Still, it's a start. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 21:03, 17 January 2006 (UTC)
***If a bot running around updating all subst'd templates is more efficient and better for the servers than an actual template, why not just modify templates to make them behave like a bot? — [[User:Omegatron|Omegatron]] 22:29, 17 January 2006 (UTC)
****Timing, consistency, surprised editors? But the general idea is marvelous. Just needs some further timbering. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 22:36, 17 January 2006 (UTC)
****I think what you're suggesting is that doing <code><nowiki>{{X}}</nowiki></code> would copy the end result of X into the document in all instances, and any changes to X would cause the software to spider through the encyclopedia and update the text. This is a few major problems: it would involve a full-text search of '''every page of Wikipedia''', in '''all namespaces'''. Obviously this is not a good idea. Also, if someone changes a template to consist of the word "the", and then changes it to something else, the software will wind up altering every instance of the word "the". Cataclysmic, especially because this still means that ''changes are not revertable''. Wikipedia would be irreversibly destroyed in literally less than one second. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 23:13, 17 January 2006 (UTC)
****:That's only a little bit crazier than the things people are doing right now.
****:But that's not what I meant anyway. I meant that when a template is updated, the instances in each article's rendered version aren't updated instantaneously, or only updated when the page is edited, or ''something''. Jamesday once suggested that a "feature" could be added to Mediawiki to turn off template transclusion completely during periods of intense server load (like search is turned off sometimes):
****::''The short-term technical expedient which is likely to work is adding a switch to turn off template expansion and flipping that switch, causing template text values to be displayed instead of template contents.''
****:So it doesn't seem unlikely to make an intermediate emergency switch that only turns off or staggers the template ''updating'' instead. The problem isn't the fact that templates exist, it's that the cache updating, in Jamesday's words, is "all grouped together in one big lump".
****:Any technical kludge that saves the dependencies and structure of the templates while reducing server load would be better than these css-hack/weeblecode/subst'ing-everything-in-sight crocks. If the intermediate "switch" couldn't be written, I'd rather have the template expansion switch written, honestly. Turn off templates completely for short periods of time rather than go through all this fighting, revert warring, horrible kludges, and hostility. I wouldn't be surprised if the revert warring of templates over this page contributes more to the server load than the original problem. — [[User:Omegatron|Omegatron]] 02:33, 18 January 2006 (UTC)
***Hmm. We could write a client side compiler for Wikipedians and use a higher level language to craft wiki pages. For article X we could put our new language ("wiki++"?) source under X/src and edit that, compile to article X with wiki++ templates expanded (of course wiki++ has "if", "or", "not" "switch", local constants and whatever we'd love to have). What exciting times this could be... (I'm a wanna be coder :-) --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 22:13, 17 January 2006 (UTC)
****I'm sure you could do this quite easily with a java application. (NB I don't write java) [[User:Sam Korn|<nowiki>[[Sam Korn]]</nowiki>]] 22:32, 17 January 2006 (UTC)
*****And then someone edits X and now X and X/src are out of sync. Recompiling X/src destroys X. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 23:08, 17 January 2006 (UTC)
******Yup, I know. Make a policy to only edit X/src? Or implement it in MediaWiki (a compile button!). --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 23:13, 17 January 2006 (UTC)
*******So basically all that does is replace wikitext with a different language. Users would edit in 'wiki++', which would be compiled to wikitext, which upon first page request would be converted to HTML and cached. That buys us nothing at all. --''[[User:DCrazy|DCrazy]]'' <span style="font-size: 8pt">[[User talk:DCrazy|talk]]/[[Special:Contributions/DCrazy|contrib]]</span> 23:15, 17 January 2006 (UTC)
********My idea would be along the line: Have wiki source to edit (includes template calls). Save expands all templates, store result and build html from that. So templates would only be updated to an article per editor request. Hyper luxory substing.--[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 23:21, 17 January 2006 (UTC)
*********That seems ridiculously complicated. It would become far too difficult for newbies to edit pages. --[[User:Thebainer|bainer]] ([[User_talk:Thebainer|talk]]) 23:24, 17 January 2006 (UTC)
**********Why? The wiki source could be the same as today (with template calls). But we could use meta-templates because they would no longer hurt the servers. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 23:29, 17 January 2006 (UTC)
***********If you ban editing X directly, and instead make users edit X/src, and compile that to HTML on demand, how is that different from merely editing X? Currently users edit X, the wikitext gets stored in the DB, and gets compiled to HTML on first access (which is usually right after clicking the Save Changes button). So in effect, all you are doing is adding meta-templates and other good stuff to wikitext directly (whether the resulting set of features is called something else is irrelevant). To tell you the truth that would be the best idea, as the PHP engine would do ifs and stuff far better and faster than the wikitext parser. But barring addition of new tags to wikitext (&lt;if condition=""&gt; and the like -- would be nice and neat and lovely and fast and so on), forcing-static is the best soluition I can see. Wikitext would continue to function exactly as is right now, but the potential damages would be mitigated.
************Forget about that ugly X/src. That was just a crap solution I used to show my idea. I think it would be worth to spin our ideas to more detail. I also fear we might to some degree misunderstand each other and based on that reject an idea prematurely. What about working together on a page under my user space. For example: [[User:Adrian Buehlmann/Lazy templates]]? I invite you (and anyone interested) to edit with me there. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 23:48, 17 January 2006 (UTC)
******That shouldn't matter. Auto-substing should only happen on templates that need to be substed. Templates that don't get substed (or wouldn't benefit thereby) will remain as now. [[User:Sam Korn|<nowiki>[[Sam Korn]]</nowiki>]] 23:35, 17 January 2006 (UTC)
*Well, it may not be a force-subst, but if you check [[Wikipedia:Subst]] we do have a bot that auto-substs selected templates. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 17:59, 18 January 2006 (UTC)
**What I don't get is, if there is a bot, how can there be so many of the 'welcome' and 'test' type templates listed at [[WP:HRT]]? --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 18:02, 18 January 2006 (UTC)
***Probably because at the time HRT was written, those tls were still transcluded in many places (and at any rate, they're frequently used; a vandal could have a good laugh by messing up a test-template and it would be some time before the RC'ers might notice that their warning was off). [[WP:BEANS]], I know. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 18:10, 18 January 2006 (UTC)

Have a look at http://magnusmanske.de/wikipeerdia. This has the concept of stable versions. I suppose a stable version "freezes" a page and makes it immune against changes in transcluded templates. Looks very interesting (Although there's currently some bad error right now with that stable version thing). Stable versions also apply to templates, but I haven't yet figured out how that works. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 19:48, 20 January 2006 (UTC)

== Server load and developers ==
:''saved from Wikipedia:Village pump (technical)/Archive''

"Policy" shouldn't really concern itself with server load except in the most extreme of cases; keeping things tuned to provide what the user base needs is our job. --[[User:Brion VIBBER|Brion]] 01:01, 21 January 2006 (UTC)

:I'm curious about something sort of related: have you seen [[WP:AUM]]? Is this not a case where a technical solution should be provided before we go off killing/changing tons of templates (in ways that increase bandwidth usage, or render poorly on certain browsers)? —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 01:32, 21 January 2006 (UTC)

::You should avoid metatemplates if they're ugly, hard to use, or fragile. That's just common sense; don't worry about "server load" for them.

::For some very complex templates, people should probably be thinking about replacements for them such as proper data tables that will be easy for people to use and maintain, rather than hacking up ugly templates.

::If someone's advising against "metatemplates" because they're ugly, fragile, and likely to break, listen to them. If someone's advising against them because they "increase server load", ask them for their benchmarks. I'd love to see them. --[[User:Brion VIBBER|Brion]] 01:52, 21 January 2006 (UTC)

:::Jamesday has been widely interpreted (or perhaps overinterpreted) as suggesting meta-templates should be eliminated and his comments are responsible almost entirely for making [[WP:AUM]] into policy. Though I don't know for sure, the above questions may have been provoked by other [[User_talk:Jamesday#Templates_and_server_load|recent comments Jamesday made]] about limiting image use in templates. It seems like Jamesday plus a number of non-devs have been pushing for editting policies (such as [[WP:AUM]]) based on minimizing server load, but your comments above seem to indicate we should not be worrying about server issues. So which is it? [[User:Dragons flight|Dragons flight]] 02:05, 21 January 2006 (UTC)

::::I have to date refused requests to advocate the AUM "policy" based on server load because nobody's yet produced any evidence for this server load claim. While in a basic sense, calling two templates will involve twice as many template data loads as calling one, I've not seen any indication that this is significantly burdensome at realistic levels. If you can get James to produce a solid test for it, we'll talk about it. --[[User:Brion VIBBER|Brion]] 02:12, 21 January 2006 (UTC)

::::: Jamesday's concern in this area was more about invalidating page caches due to sub-sub-sub-templates being modified, and that change invalidating many pages. This, together with the level of complexity, fragility, and maintenance nightmare, are together why the [[WP:AUM]] is policy. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 02:26, 21 January 2006 (UTC)

::::::Since our software doesn't actually ''do'' that at this time, and to do it we'd first want to set up a background process for invalidations which will make it easy and inexpensive, I don't see that as a strong argument from the load perspective. --[[User:Brion VIBBER|Brion]] 02:32, 21 January 2006 (UTC)

:::::First of all, this '''is not''' policy. No consensus of Wikipedians agreed upon it, and clearly not even a consensus of developers agree upon it. Second of all, the sub-sub-sub templates you speak of (such as {{tl|qif}} should never (or only rarely) be modified). If the issue is only with sub-sub-sub templates, then it's a non-issue as far as I'm concerned. And in ''any event'', server/technical issues should not influence editorial decisions except in the most extreme of cases (which it appears this is not). —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 02:33, 21 January 2006 (UTC)

Just let me ask, what developer proposed this idea? How many developers have said it's a good idea? How can ordinary Wikipedians who nothing about the software deign to talk about making drastic changes to solve performance problems? You haven't made any measurements to evaluate the impact of this change and have no means of doing so, and so this is all just an elaborate theory that is more likely than not premature optimization in the wrong place. [[User:Deco|Deco]] 02:23, 21 January 2006 (UTC)

:As far as I know, just Jamesday. If he's done any measurements he hasn't shown them to me. --[[User:Brion VIBBER|Brion]] 02:32, 21 January 2006 (UTC)

::Brion: can you go tell that to the people on the talk page there and remove the policy tag then since its a policy pushed against any attempt at votes etc.

::Netoholic took a vauge set of statements from jamesday that weren't phrased at all as a demand and that he seemed to have little interest in substatiating with more details and used it to push that "policy" and it seems managed to get sufficiant support from gullible members of the admin team to push it into getting the policy tag against the wishes of much of the wider community. [[User:Plugwash|Plugwash]] 02:27, 21 January 2006 (UTC)

:::I've said that numerous times in the past. --[[User:Brion VIBBER|Brion]] 02:32, 21 January 2006 (UTC)

::::BTW i think you really need to consider some promotions, the reason we get stuck with hacks like the if templates (and now the arguably worse hiddenstructure css) and css and javascript hacks everywhere is because we have a lot of sysops and very few developers. The result is that its much faster to get things done in a way a sysop can do through hacks involving css and javascript than it is to actually get them done properly (moderately important patches can take weeks to get committed even if a patch is written, nice to have stuff takes even longer. [[User:Plugwash|Plugwash]] 03:23, 21 January 2006 (UTC)

:::::We've had a couple new devs come on recently; Rob Church has been applying fixup patches and such. --[[User:Brion VIBBER|Brion]] 19:01, 21 January 2006 (UTC)

::::::Wheee. [[User:Robchurch|Rob Church]] ([[User_talk:Robchurch|talk]]) 07:48, 25 January 2006 (UTC)

== Policy status ==

In these two edits:

# [http://en.wikipedia.org/w/index.php?title=Wikipedia%3AVillage_pump_%28technical%29&diff=36036098&oldid=36035357 02:12, January 21, 2006]
# [http://en.wikipedia.org/w/index.php?title=Wikipedia%3AVillage_pump_%28technical%29&diff=36034059&oldid=36032275 01:52, January 21, 2006]

[[User:Brion_VIBBER|Brion]] makes it fairly clear that server issues shouldn't affect editors like this, and as well, seems to indicate that he doesn't buy the server load argument presented by Jamesday.

Until such time as the developers agree, this absolutely '''must not''' be considered policy (and ''should not'' be "enforced"). —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 02:28, 21 January 2006 (UTC)

: I think you're reading into Brion's comments what you ''want'' them to say. I see him, especially in [http://en.wikipedia.org/w/index.php?title=Wikipedia%3AVillage_pump_%28technical%29&diff=36034059&oldid=36032275 this comment], agreeing that there are ''several'' practical and technical reasons to avoid using nested templates, where one will work. [[WP:AUM]] is not built on any one factor... it is based on experience and precedent from [[WP:TFD]], where we routinely vote to delete nested templates that are used in convoluted and impractical ways. Brion also does not comment on Jamesday's main complaint, about page caches becoming invalidated. There is also one other reason, that deeply-nested templates are rarely on more than a couple watchlists, making vandalism harder to watch for. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 02:54, 21 January 2006 (UTC)

::That's a circular argument. AFAIK the deletion of nested templates at TFD hit full swing when you unilaterally (and without community consensus) promoted this to policy (under the guise of "developer approval"). Clearly not all developers (let alone Brion!) agree this is an issue. Note Brion's response: ''If someone's advising against "metatemplates" because they're ugly, fragile, and likely to break, listen to them. If someone's advising against them because they "increase server load", ask them for their benchmarks. I'd love to see them.''. And I agree, if the argument is that they're ugly/fragile/likely to break, I'd give it some consideration. However, as Brion says, if the argument is that they "increase server load", it's a non-starter right now. If this is so slam-dunk obvious, it's bothersome that someone like Brion wouldn't want to endorse AUM. (But at the same time, he seems willing to consider it if someone will show him benchmarks proving the claims made).
::Until these issues are resolved, and given the lack of community consensus in making this "policy", I strongly suggest keeping the policy tag off this page. I also suggest, as before, not "enforcing" this until the technical issues have been argued out. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 03:13, 21 January 2006 (UTC)

::: I did not promote this to policy - three separate Arbitrators did that, and other members of the Committee have said they agree completely. So, if you think you're reverting me, you've got it wrong. I can re-write the page to balance the server load issues described by Jamesday with other concerns. This is still a fine policy. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 03:28, 21 January 2006 (UTC)

:::: [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&diff=prev&oldid=36043188 This] seems to address the server load issues, though. —[[User:Kirill Lokshin|Kirill Lok]][[Wikipedia:Esperanza|<font color="green">s</font>]][[User:Kirill Lokshin|hin]] 03:39, 21 January 2006 (UTC)

:::anyone got a link to the arbitrators statements? i seem to remember they basically bought into the interpretations based on that single vauge statement from jamesday and promoted this to policy based ont that alone. With that basically shot down by the lead developer '"Policy" shouldn't really concern itself with server load except in the most extreme of cases; keeping things tuned to provide what the user base needs is our job'. <b>IF</b> it is believed that this should still be policy (or perhaps just guideline) based on other reasons then imo it needs to be rewritten based on those other reasons alone and then decided on as a per new policy. [[User:Plugwash|Plugwash]] 03:48, 21 January 2006 (UTC)

::::No links here, but IIRC it happened exactly as you described. Arbitrators bought into the argument (sans evidence) and were convinced to promote this to policy. I do think however that it was initially promoted by a non-arbitrator though... I'll have to go digging later. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 03:53, 21 January 2006 (UTC)
==Developer statement==
{moved from main page)<br>
There's a lot of talk about this 'policy' which attempts to divine meaning from things other people have said rather than just asking for details.

Complicated templates-within-templates generally ought to be thought twice about before being used, because they can be confusing and fragile. There are some good notes about that on this page; please don't go all willy-nilly with illegible code just because it sort-of works.

There are other notes on this page about server performance which are not necessarily clear or well-supported. In particular, there's no known evidence that moderate usage of meta-templates has any noticeable impact on server performance.

While there are potential issues with cache invalidation, that's a separate issue which can be separately solved -- and is little better with "regular" templates.

I'd like to ask that anyone fighting against ugly, fragile meta templates at this time '''do so based on their ugliness and fragility'''. Please don't go around claiming "the developers" laid down the law and said nobody can use meta-templates because they hurt the servers; that just isn't true. --[[User:Brion VIBBER|Brion]] 03:25, 21 January 2006 (UTC)
:i have restored this statement to the main page and imo it should stay there until such time as the process arround this is restarted from scratch based arround the other issues. If developers really need us to change something they have direct contact with jimbo and the board so it should be a non-issue for them to implement it through proper channels with official statements. lets do as brion suggests and stop self crippling based arround vauge statements from a single developer or guesses by users as to what causes server load. [[User:Plugwash|Plugwash]] 04:34, 21 January 2006 (UTC)
::Agreed. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 04:44, 21 January 2006 (UTC)

:Feel free to take it off once it's served its purpose, but I think this page desperately needs some rewrite lovin', so replace it with something appropriate... --[[User:Brion VIBBER|Brion]] 04:52, 21 January 2006 (UTC)

::Thank you for your statements here. Though they have clarified some things, I think a lot of things are still heavily unclear. I have been forced by this policy and important wikipedians to work implement it (which I did working quite hard). I have started doing that by using the proposal of Netoholic, which has had his ArbCom ban lifted to push this to the "misguided masses". Now, could you please guide us? Abstract statements do not help here. We have ben said to be "wanna be" coders because we put up [[template:qif]]. Now we use the trick most favored by Netoholic as described in [[User:Adrian Buehlmann/work/Conditional expressions with CSS|my doc]]. I agree that qif is ugly and I also agree that the CSS is ugly and I also agree that the weeble code trick is ugly. So which one shall we take? What shall we do with [[template:book reference]]? What with [[template:Infobox President]] and what with [[template:language]]? Your's puzzled and tired out, --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 09:45, 21 January 2006 (UTC)

==Alternatives to "logical" or "conditional" meta-templates==
I really, '''really''' think we should push for support of one of the ideas presented [[m:Extended template syntax|here]]. This would likely make templates (such as [[Template:Language]]) easier to read, and perhaps even provide a way for MediaWiki to optimize page creation. I'm not sure how we'd handle other forms of meta-template use, but this would probably address the most offensive use to those concerned. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 05:41, 21 January 2006 (UTC)
:Another possibility (though the syntax is ugly IMO): [[m:User:AzaToth/Logic]]. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 07:50, 21 January 2006 (UTC)

== Protected ==
We tried unprotection. Now we're back to an edit war. Work it out. --[[User:Woohookitty|''Woohookitty'']]<sup>[[User talk:Woohookitty|(cat scratches)]]</sup> 07:41, 21 January 2006 (UTC)
:I'll unprotect. Might've been a bit hasty. --[[User:Woohookitty|''Woohookitty'']]<sup>[[User talk:Woohookitty|(cat scratches)]]</sup> 08:00, 21 January 2006 (UTC)

==Brion's comment==

<div style="border: 1px solid maroon; margin-right: 80px; margin-left: 80px; padding: 12px; background-color: #fffafa">
There's a lot of talk about this 'policy' which attempts to divine meaning from things other people have said rather than just asking for details.

Complicated templates-within-templates generally ought to be thought twice about before being used, because they can be confusing and fragile. There are some good notes about that on this page; please don't go all willy-nilly with illegible code just because it sort-of works.

There are other notes on this page about server performance which are not necessarily clear or well-supported. In particular, there's no known evidence that moderate usage of meta-templates has any noticeable impact on server performance.

While there are potential issues with cache invalidation, that's a separate issue which can be separately solved -- and is little better with "regular" templates.

I'd like to ask that anyone fighting against ugly, fragile meta templates at this time '''do so based on their ugliness and fragility'''. Please don't go around claiming "the developers" laid down the law and said nobody can use meta-templates because they hurt the servers; that just isn't true.

--[[User:Brion VIBBER|Brion]] 03:25, 21 January 2006 (UTC)
</div>

==General comments==

It is worth noting that Brion continues to condemn meta-templates for being ugly and fragile - which they are - and falls miles short of endorsing them. It is questionable whether "should policy be crafted to reduce server strain" is something that falls within the realm of things the developers get to set automatically for us. It remains the case that Jamesday has said what he has said, and he did say to depricate qif, not start using more meta-templates, and that meta-templates cause noticable server load.

Since depricating the meta-templates we have has been COMPLETELY HELLISH, until this actually gets sorted out so that the developers are on the same page, since meta-templates do not add any functionality that can't be achieved other ways, since they are messy, since they are fragile, and since there remains a fair chance that they're a significant server problem, we still should not be using them, because we are sensible people who like playing it safe when it comes to asking if we should make big messes that take days to clean up. And when Brion and Jamesday present a unified answer, we can deal with that. But until then, we have clear comments from the lead database admin, and questions about whether that's the best reason to kill meta-templates, or whether they should just be killed for more superficial reasons from Brion. This is not grounds to add a giant box to the top of the page, and it is especially not grounds to start using meta-templates actively again. In fact, doing so would be SUPREMELY stupid, since there are clear alternatives. [[User:Snowspinner|Phil Sandifer]] 17:53, 21 January 2006 (UTC)
:Those 'clear alternatives' are equally 'ugly and fragile'... and not all that clear. Which is a good portion of why the efforts to force them through have been 'completely hellish'. That said, stopping all activity and getting some real/complete answers before proceeding makes sense... and would have a month ago too. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 18:09, 21 January 2006 (UTC)

:I put a box on the page because there's been a lot of hysteria based on the false belief that there is an order from on high; just a quick skim of this gigantic talk page will show you that. I'd rather see this defused, and have people think for themselves and use some common sense. --[[User:Brion VIBBER|Brion]] 18:10, 21 January 2006 (UTC)
::Yes. Unfortunately, I suspect in practice you set off edit wars on about two dozen pages, 23 of which will be high-profile templates. [[User:Snowspinner|Phil Sandifer]] 18:35, 21 January 2006 (UTC)
::: Agreed. Without some very clear, incontrovertible statements in a very visible place about what is allowed and what is not, the edit wars will continue and probably get even worse. These people will try to minimize your comments and do anything they can to misinterpret them in their favor.
::: The "ugliness and fragileness" will become the next bloody battleground. We need some clear direction here. The box was a good thing. — [[User:Omegatron|Omegatron]] 19:31, 21 January 2006 (UTC)
::::In my opinion, it's the most important reason. It's the main reason I cite when I ask for meta-templates to be removed. Where they're unnecessary (&#123;{[[Template:Main|Main]]}} is an obvious example), they shouldn't be used because their effect can be achieved so much more easily in another way. [[User:Sam Korn|<nowiki>[[Sam Korn]]</nowiki>]] 19:53, 21 January 2006 (UTC)
:::::* How is that a meta-template??
:::::* Other than server load, what's wrong with it? — [[User:Omegatron|Omegatron]] 20:19, 21 January 2006 (UTC)
:::::::Several things, off the top of my head. First, it's using a CSS hack to hide structure elements, which can fail for text browsers, plaintext renderings of articles, and any HTML display of the article that doesn't use the stylesheet on this site. This harms both the primary site's accessibility and offsite reuse of material. Second, as you can see its source is simply very ugly; it would benefit from a conditional or array construct. --[[User:Brion VIBBER|Brion]] 20:28, 21 January 2006 (UTC)
:::::::What Brion said. Apart from that, it's really an unnecessary template. How hard is it to write a one line message to get the point across? It will almost always be more useful to the reader. [[User:Sam Korn|<nowiki>[[Sam Korn]]</nowiki>]] 20:30, 21 January 2006 (UTC)
::::::::Um... let me just see if I understand this right Sam. You agree with what Brion said? That the current '''non''' meta version of [[Template:Main]] is very ugly, that it is harmful to accessibility and reuse due to the CSS hack method, and that it would benefit from a 'conditional or array construct'... which traditionally has been accomplished using meta-templating. So, would it be better to go back to the [http://en.wikipedia.org/w/index.php?title=Template:Main&action=edit&oldid=31504421 meta] version? Or implement a 'weeble' variant? --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 20:47, 21 January 2006 (UTC)
:::::::::Once again, thank you for pointing this out. This is actually a bad example, because it shouldn't really be a template at all. As it is, I guess I'm not really that opposed to some '''''simple''''' additions to the code, so long as they are simple. I don't see the need for anything more than if/elseif/else. [[User:Sam Korn|<nowiki>[[Sam Korn]]</nowiki>]] 20:55, 21 January 2006 (UTC)
::::::::::So you agree that the CSS hack is bad? Me too.
::::::::::Why do you say it shouldn't be a template at all? — [[User:Omegatron|Omegatron]] 21:48, 21 January 2006 (UTC)
::::::::::: {(Main}} is the perfect example of a template which is ridiculously over-thought. It shouldn't use meta-templates, it should not have to use CSS... It should be changed to work exactly like [[Template:Further]] - that is, to take exactly one paramter, and let people put howevermany and whateverdamn wikilinks they want. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:45, 22 January 2006 (UTC)
::::::::::::What is it hurting? — [[User:Omegatron|Omegatron]] 05:51, 22 January 2006 (UTC)
::::::::::::: Have you read this thread? {(Main}} uses complex code (whether CSS or meta-template) where none is needed because the function can be done without any of that. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 12:41, 22 January 2006 (UTC)

:You're operating under the assumption that complex code is inherently evil. How would you implement the function of {{tl|main}} "without any of that"? — [[User:Omegatron|Omegatron]] 14:52, 23 January 2006 (UTC)

== What I need from you ==

What I'm going to need from you guys is some feedback on what is and isn't needed/wanted. In particular:

* Conditional "if"-like constructs can be very easily done in the software, and should be more reliable than wacky template tricks. What other constructs are needed that don't boil down to a conditional include?
* Are there any genuinely useful constructs that would break if we limited the depth of includes to, say, two levels of templates? (Article -> Template1 -> Template2)
* We're never going to turn templating into a full-fledged programming language, but template constructs can sometimes benefit from array-like data where each item is processed identically. What are some examples of attempts to do this, and how could we more cleanly replace them?

Keep in mind that clean, legible use at the article source text level should be paramount. Scary complex templates can be quite intimidating for non-technical editors -- and even for highly technical editors who aren't familiar with a given 'extreme' template. At some point in the future we're likely to move towards more WYSIWYG-style editing as well, so minimizing complex 'magic' is good future-proofing. -- [[User:Brion VIBBER|Brion]] 20:23, 21 January 2006 (UTC)

:''legible use at the article source text level should be paramount. Scary complex templates can be quite intimidating for non-technical editors''
:This could be rephrased as "complex template source is preferable to complex article source", right? If a template is easier for non-technical editors to use in articles, this is preferable, even if the template source code is more difficult to edit. — [[User:Omegatron|Omegatron]] 20:29, 21 January 2006 (UTC)
::Clear article source '''and''' clear template source are most preferred! If you must make one or the other ugly, an ugly template source is better than ugly article source, since the template code will be edited more rarely and by fewer, probably more technical, people. Don't consider that a license to be unnecessarily ugly, though. :) --[[User:Brion VIBBER|Brion]] 20:33, 21 January 2006 (UTC)

:::That's exactly what I meant. Some are interpreting this to mean that complicated markup should be put into the ''article'' source instead of the template source, because server load is more important than editability of articles, which seems obviously wrong to me. — [[User:Omegatron|Omegatron]] 21:51, 21 January 2006 (UTC)

:Out of curiosity, is that WYSIWYG style of editing going to be like WordPerfect, with a "reveal codes" function? If so, I think that would be an exceptional way of doing things. [[User:Sam Korn|<nowiki>[[Sam Korn]]</nowiki>]] 20:36, 21 January 2006 (UTC)

:Brion, that's really great. I think the minimum set we need is:
:*A string expression function "if". It takes two string parameters S1 and S2. The resulting value should be S2 if S1 is non-empty, the empty string otherwise. I do not care about syntax and name of the function.
:*An expression function "not" with one parameter S. Returns a non-empty string if S is empty, the empty string otherwise.
:*An expression function "or" with two parameters S1 and S2. Returns a non-empty string if S1 or S2 are non-empty.
:*An expression function "and" with two parameters S1 and S2. Returns a non-empty string if S1 and S2 are non-empty.
:The functions should be able to be nested. If needed we can limit the levels of if's. I have not seen more than an if inside an if. So I would set a limit to four levels (if needed).
:article -> template1 -> template2 sounds reasonable to me, especially if we have built-in conditionals. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 21:18, 21 January 2006 (UTC)

::Just a sidenote: dbenbenn [http://en.wikipedia.org/w/index.php?title=Template_talk%3ABook_reference&diff=36137366&oldid=36116803 brought up the idea] to strip &lt;span class="hiddenStructure">&lt;/span> with MediaWiki from the html source (extending tidy). Maybe this could be used as a fast intermediate step? At least it would produce decent html without any syntax change. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 23:04, 21 January 2006 (UTC)
:::That would be possible, but it's a rather slow procedure, so if implementing it's better to implement a faster construct instead. <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 23:08, 21 January 2006 (UTC)
::::You're right. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 23:10, 21 January 2006 (UTC)

::Ehh, this is like logic gates; you don't even need all that. Or can be implemented simply by concatenating the strings (i.e. <nowiki>{{if|{{{par1|}}}{{{par2|}}}|result}}</nowiki>. And is similarly implementable by using a combination of nots around an if.
::Strictly speaking, though, 99% of the current uses could be implemented with a simple if. —[[User:Kirill Lokshin|Kirill Lok]][[Wikipedia:Esperanza|<font color="green">s</font>]][[User:Kirill Lokshin|hin]] 22:40, 21 January 2006 (UTC)

:::Well, yes and no. We already '''have''' a 'simple if' feature based on the 'blank parameter' trick. An example of this can be seen at [[Template:Language/familycolor]]. Because an empty parameter ('|if=') is passed in we can evaluate to see which other parameter exists and only display results for that one... a switch built on a simple 'if exists'. That ''can'' be used to replace pretty much every meta-template we have currently... but people have been very resistant to doing so. Largely because it involves changing existing template calls (as any new conditional implementation presumably would as well). However, it is also just a long way to go to get some results... for instance, you can do a 'not' condition if you have some parameter which is always passed by using <nowiki>{{{if{{{requ{{{optional|}}}ired|}}}|Text to display if 'required' parameter exists and 'optional' parameter does not}}}</nowiki>... but if you don't have any parameters which are always required for that template there's no way to do a 'not'. Likewise, the 'switch' example above has to perform the 'if' logic over and over again. You ''can'' do most things with a 'simple if', but we've already got that and while ''possible'' it isn't always easy/pretty. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 23:36, 21 January 2006 (UTC)

I made an example implementation for some extended syntax at [[m:User:AzaToth/Logic]]. My primary objective was to make a fast parser with monomal overhead. If none of the extended constructs are used the only overhead is a simple strpos. Othervise is rather simple in it's parsing, it just split the string and run it throught a switch statement. My reason to use a different syntax than ordinary wiki syntax is becaus then I can ignore the semantic of the wikicode and use the extended syntax as a preparser. I tried to create "functions" that are usefull for a wiki, the map-construct I made for the purpouse for use in for example {{tln|main}}. <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 20:44, 21 January 2006 (UTC)

:I think AzaToth's implementation ideas above would make it possible to do virtually anything we currently do (and some things we don't) with a single template level (Article > Template). That said, even if it were possible to do everything with one level of transclusion (and no CSS hack or blank parameter trick) I'd think we would want to keep at least a few deeper levels available... even if they are not 'needed' they are still 'useful'. Without deeper transclusion levels the template functionality would have to be 'cloned' for each new template rather than just calling an existing template. Things like [[Template:clear]] could be used in articles, but not in other templates. That's a simplistic (and largely unneccessary) example, but the concept extends to all sorts of formatting/utility templates. The contents of [[Template:Oh My Goddess Infobox-Generic/Text]] could just be written out each time, but making it a template allows it to be called multiple times by two different templates... simplifying the template instruction code considerably while keeping the format consistent. Et cetera. Not required. Same capabilities can be done without the second/third/et cetera template layers, but it is often 'easier' / 'prettier' if you use sub-templates. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 21:28, 21 January 2006 (UTC)

:: Agreed. It's good to use a simple formatting/heavy markup/functionality template inside another to keep all the related templates consistent and easy to edit. Just like you would use include statements to put standard libraries in a bit of source code instead of typing all the standard functions in by hand, or use functions to perform the same operation over and over instead of retyping it manually each time.
:: It removes the "maintenance nightmare" of editing each template manually to change their style or fix a browser-specific problem with the markup, for instance.
:: We can certainly do without it, but it's tremendously useful if we can afford it. — [[User:Omegatron|Omegatron]] 21:59, 21 January 2006 (UTC)

:On the subject of levels of includes: is there any distinction in MediaWiki between template transclusion and transclusion of pages from other namespaces. For instance, if we limit nesting to two levels, will Wikipedia: and Portal: space constructs like project page &rarr; project subpage &rarr; template1 &rarr; template2 fail? —[[User:Kirill Lokshin|Kirill Lok]][[Wikipedia:Esperanza|<font color="green">s</font>]][[User:Kirill Lokshin|hin]] 22:57, 21 January 2006 (UTC)
::All transclusion is treated the same. --[[User:Brion VIBBER|Brion]] 23:31, 21 January 2006 (UTC)

"Are there any genuinely useful constructs that would break if we limited the depth of includes to, say, two levels of templates?" Hm. [[Template:USA]] uses [[Template:Country]] uses [[Template:Country flagcountry]] uses [[Template:Country flag alias USA]], [[Template:Country alias USA]], and [[Template:Country shortname alias USA]]. You could easily cut that down to 2 levels, by substing in [[Template:Country]] then in [[Template:USA]]. Anyway, that's the deepest level of nesting I could think of off hand. [[User:Dbenbenn|dbenbenn]] | [[User talk:Dbenbenn|talk]] 23:22, 21 January 2006 (UTC)

::I agree with the idea below. We need equivalents of '''{{tl|qif}}''', '''{{tl|switch}}''', and '''{{tl|booleq}}'''. If these aren't created, I'll have to continue using the current templates for them. -[[User:Xolatron|Xol]] 23:01, 25 January 2006 (UTC)


===Simplest possible codeset ===
Unless I'm completely mistaken, the simplest possible set of options we need are:
* the equivalent of <code>{{tl|qif}}</code>, a simple IF…THEN…ELSE implementation (which could even be implemented by hard-wiring the contents of <code>{{tl|qif}}</code> into the transcluder) which supplies the contents of the "then" parameter iff the "test" parameter is a non-blank string, and the "else" parameter otherwise:
&#x7B;&#x7B;#if
| test =
| then =
| else =
&#x7D;&#x7D;
* the equivalent of {{tl|switch}}, a simple CASE…SELECT…DEFAULT implementation (which could even be implemented by hard-wiring the contents of <code>{{tl|switch}}</code> into the transcluder) which chooses a parameter based on the first parameter, with a default:
&#x7B;&#x7B;#switch
| ''test-string''
| case: ''foo'' =
| case: ''bar'' =
| default =
&#x7D;&#x7D;
* the equivalent of {{tl|booleq}} which supplies the string(s) being tested if they are equal, and a blank string otherwise:
&#x7B;&#x7B;#equal
| ''test-string-1''
| ''test-string-2''
&#x7D;&#x7D;
I'm suggesting using the &#x7B;&#x7B;#… construct because AFAIK this is not a legal name for a template (if I attempt to transclude {{#if}} it fails as you can see), so it wouldn't break anything already in place and it could easily be intercepted.

I think that this fulfils the requirements for the simplest possible set of constructs which would be useful, whilst avoiding the risk of becoming [[Turing-complete]] which I believe is what has some developers worried (and rightly so).

:umm... if the current template system allows recursion (I haven't seen anything to the contrary yet...), would it not qualify as Turing-complete already? Latex, m4 and tcl are (or were) substitution-based turing-complete languages... --[[User:MartinRudat|Martin Rudat]]([[User talk:MartinRudat|T]]|[[Special:Emailuser/MartinRudat|@]]|[[Special:Contributions/MartinRudat|C]]) 15:30, 28 February 2006 (UTC)

I'm not certain that we need anything that "do[es]n't boil down to a conditional include", and I'm actually having a hard time imaging any such thing :-). As for looping constructs, I'm not convinced that these wouldn't become a handy vector for some sort of DOS attack.
HTH HAND —[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 08:33, 23 January 2006 (UTC)

::Easy enough to prevent/curtail a DOS with a turing-complete template language... implement a step-count limit, like LPMUDs do to stop bugs (or malicious users) from locking up the driver. --[[User:MartinRudat|Martin Rudat]]([[User talk:MartinRudat|T]]|[[Special:Emailuser/MartinRudat|@]]|[[Special:Contributions/MartinRudat|C]]) 15:30, 28 February 2006 (UTC)

:This is a very good proposal which I fully support. Thank you Phil. As for the simplicity and ease of reading of template code I would propose, if possible, to add logical functions as "not" "or" and "and" at least. These can be mimicked if we have that qif (but needs the "else" capability with empty "then" part, which is not supported by the actual qif hack template), but that leads again to unreadable template code. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 08:47, 23 January 2006 (UTC)

:I also support this. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 12:22, 23 January 2006 (UTC)

:I can imagine ''plenty'' of uses for more flexible logic, but understand the 'Turing complete' concerns and would be willing to settle for something like the above. That said, more 'intelligent' templates could actually '''reduce''' server load and template complexity. For instance, the mathematical functions AzaToth suggested could do things like the 'meters to feet' conversion template as a simple one step calculation rather than a massive template nesting or huge parameter switch. Essentially, the simpler the codeset the more complex the templates need to be to produce the same functionality... and the more likely (some) people are to say that templates are ''too'' complex and launch crusades against them. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:34, 23 January 2006 (UTC)

::a potential flaw in this code is that it can not output wikitable code, as that contains pipes which conflicts with the delimiters of the conditional template. Could an alternate delimiter be chose to enable syntax such as:
&#x7B;&#x7B;#if
%test = &#x7B;&#x7B;parameter&#x7D;&#x7D;
%then = |-
!The Heading:
|&#x7B;&#x7B;parameter&#x7D;&#x7D;
%else =
&#x7D;&#x7D;
::&lt;nowiki&gt; is no good as of course we ''do'' want it to be wikified, but as a table, rather than as a parameter break - I chose % as it is (to my knowledge) not used for anything and can therefore be nowikied if it is needed. Plenty of other keys on the keyboard though &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 18:55, 23 January 2006 (UTC)
:::In my example [[m:User:AzaToth/Logic]], I'm using a optional delimiter diefined as <code><nowiki>{#[delimiter]func...#}</nowiki></code>, for example <code><nowiki>{#[$]if$foo$bar#}</nowiki></code> <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 19:00, 23 January 2006 (UTC)
:::How about a variation:
&#x7B;&#x7B;#if
## test =
## then =
## else =
#&#x7D;&#x7D;
:::(note the altered final token "<code>#}}</code>") Would "<code>##</code>" be a reasonable token to use to separate the parameters? Is it so vital that we replaicate the existing template syntax completely? —[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 09:27, 31 January 2006 (UTC)
From my point of view the main thing that I think is most urgently needed is a conditional in the MediaWiki template language. I managed to implement that using ordinary templates midway through last year, and the result was hard to maintain (any subtractions or additions broke the template on multiple pages) and also very hard to input things into without precisely following instructions. The version with QIF functionality looks a little daunting at first when the template source code is viewed, but that is why <nowiki>{{esoteric}}</nowiki> is on the template page as a warning against editing the source without understanding what is going on. The implementation on the main namespace pages is clean, consistent and easy to understand. The QIF version is easier to maintain, since additions do not automatically break the template.

I would say that main thing that we are look for here is ease of use in the main namespace. That is where most newbies will edit and if we can get rid of table markup there and replace it with easy to understand template markup then it will actually be a boon to newbies. I would doubt that many newbies particularly know or care about the template namespace, and by the time that they do know and care they have generally acquired enough of an understanding of MediaWiki syntax and markup to have a decent shot at editing things without breaking even complicated templates.

Netoholic seems to be engaged on a crusade about this matter. Since the main pillar of support for the crusade has been significantly undermined Netoholic has even started to claim "ownership" over pages, which is against Wikipedia policy in and of itself. That is a serious problem.

I would appreciate it if IF functionality was incorporated at a language level in MediaWiki template markup asap, and I look forward to the day that it is implemented (since Netoholic aside there seems to be a consensus that it is a needed feature). [[User:David Newton|David Newton]] 13:31, 24 January 2006 (UTC)

:The good point that David has just brought up is that conditionals often allow us to make the in-article template call a lot cleaner. Of course, the price is paid in the wikitext of the template. However, people are more likely to view and edit the wikitext of the template call rather than the template itself. For example, [[template:language]] has a box to display the language's [[language families|genetic classification]]. Before the use of conditionals, the entire family tree was plugged into a single parameter with lots of <tt>&amp;nbsp;</tt> in the template call to provide formatting. Conditionals allowed us to move all of the formatting into the template and provide each line of the family tree with a separate parameter. Conditionals were needed because the number of lines in the family tree differs from language to language. --[[User:Garzo|Gareth Hughes]] 13:54, 24 January 2006 (UTC)

::Surprise, surprise, Netoholic has reverted my reintroduction of QIF to Ship table claiming in the edit summary comments that, "developer comments still ask us to avoid meta-templates - they are ugly and fragile". I have posted to Netoholic's talk page pointing a version of Ship table from before QIF came along. THAT was ugly and fragile. The current conditionals, within the syntax of the MediaWiki template language and table code, are elegant in their implementation. I would not want to touch the conditional templates themselves, but once they are feature complete (and at the moment that is pretty much the case for those that remain), they should be protected until those that are appropriate can be hardcoded into the system. I agree with those who say that we don't want to be Turing-complete, but it is a tribute to those who originally conceived the template syntax that we can even talk in those terms!

::If we are to have complexity beyond the ken of some people (and given computer systems that is bound to happen at some point) then make sure that it is documented well and coded well. <nowiki>{{esoteric}}</nowiki> is also an extremely useful warning to those who try and go beyond their depth. [[User:David Newton|David Newton]] 16:45, 24 January 2006 (UTC)
====Looping construct ====
I have just discovered a situation at the [[Wikipedia:Help desk|Help desk]] which would seem to indicate a possible application for some sort of looping construct.
This is for where you have the following kind of situation:
---Header---
---Row 1 ---
---Row 2 ---
---Row 3 ---
---Row 4 ---
………………………………
---Row n ---
---Footer---
where each of the '''Row ''i''''' parts is structured the same and depends on the same number of parameters.

The example they give is like this:
<pre>
{{User:Jnothman/tiZom_olymp/top}}
{{User:Jnothman/tiZom_olymp/gold|[[1992 Summer Olympics|1992]]|Barcelona|Athletics|Men's 4x400m Realy}}
{{User:Jnothman/tiZom_olymp/gold|[[1996 Summer Olympics|1996]]|Atlanta |Athletics|Men's 200m}}
{{User:Jnothman/tiZom_olymp/gold|[[1996 Summer Olympics|1996]]|Atlanta |Athletics|Men's 400m}}
{{User:Jnothman/tiZom_olymp/gold|[[2000 Summer Olympics|2000]]|Sydney |Athletics|Men's 400m}}
{{User:Jnothman/tiZom_olymp/gold|[[2000 Summer Olympics|2000]]|Sydney |Athletics|Men's 4x400m relay}}
{{User:Jnothman/tiZom_olymp/bottom}}
</pre>wihch yields:{{User:Jnothman/tiZom_olymp/top}}
{{User:Jnothman/tiZom_olymp/gold|[[1992 Summer Olympics|1992]]|Barcelona|Athletics|Men's 4x400m Realy}}
{{User:Jnothman/tiZom_olymp/gold|[[1996 Summer Olympics|1996]]|Atlanta |Athletics|Men's 200m}}
{{User:Jnothman/tiZom_olymp/gold|[[1996 Summer Olympics|1996]]|Atlanta |Athletics|Men's 400m}}
{{User:Jnothman/tiZom_olymp/gold|[[2000 Summer Olympics|2000]]|Sydney |Athletics|Men's 400m}}
{{User:Jnothman/tiZom_olymp/gold|[[2000 Summer Olympics|2000]]|Sydney |Athletics|Men's 4x400m relay}}
{{User:Jnothman/tiZom_olymp/bottom}}
where as you can see there's a top, a bottom, and a variable number of rows, each '''structurally''' identical (even if the actual details vary from row to row).
What, if anything, would be a sensible way to approach this?
HTH HAND —[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 16:36, 26 January 2006 (UTC)
{{-}}

:Think Babel boxes. There are a few different ways to construct them which map directly to this scenario;
:#{{tl|boxboxtop}}{{tl|User en-1}}{{tl|boxboxbottom}} - Same structure as the above; separate templates for top, bottom, and rows. The rows then just get called however many times are needed. Requires multiple template calls.
:#{{tl|Babel-1}}, {{tl|Babel-2}}, et cetera - Separate templates for each variable number of rows. By setting a 'count' type parameter you could set up a call to <nowiki>{{Babel-{{{count}}} |parameters}}</nowiki> which would always call the correct sub-template. However, the count and the number of parameters passed need to be kept in synch or you get rows being ignored or blank rows being displayed.
:#{{tl|Babel-N}} - Similar to item 1 above except that the rows are passed as a parameter to a template which then builds the top and bottom around them. Just as long as option one, but all the template calls are in one long stream.
:#{{tl|Babel-X}} - Similar to item 2 above except that it adds conditional logic to suppress any unused rows. Requires use of 'qif', '|if=', 'display: none', or other conditional logic to suppress the extra rows.
:None of these options are perfect, but they handle these types of scenarios pretty well currently. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 17:35, 26 January 2006 (UTC)

=== Conditionals are not really needed ===
I do not support any proposal to add conditionals. People are over-thinking how templates are used, and I can describe, for any potential usage of conditionals, options which are easier on both template geeks and editors. I challenge anyone to come up with something that actually requires conditionals. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 12:18, 23 January 2006 (UTC)

:Boy, [http://en.wikipedia.org/w/index.php?title=User:Netoholic&oldid=30645700 no one saw ''that'' one coming]... — [[User:Omegatron|Omegatron]] 14:52, 23 January 2006 (UTC)

:Uhm, an infobox which wants to allow optional parameters. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 12:20, 23 January 2006 (UTC)
:: Solution: remove those parameters that are not common enough, or split the template into multiple similar ones with different options. Selective hiding of empty data rows is a "nice to have", but the infobox should make complete sense with them visible. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 12:27, 23 January 2006 (UTC)

:::Multiple similar templates == confusing. Removing parameters == disappointing to editors affected. I'm sorry, your solutions are totally unacceptable. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 13:09, 23 January 2006 (UTC)
:::: Only confusing if there is lack of documentation. Only disappointing if the editors ''adding'' the extra optional parameters lose focus of what the infobox is designed to do -- display data ''consistently'' across related articles. If an option is not common enough, remove it and document in article text. We already have several infoboxs about "people" (politician, wrestler, adult film star...) - these are not confusing or disappointing to the editors. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 13:25, 23 January 2006 (UTC)

:Netoholic, the CSS hack is not a viable option. It is causing problems for people with Lynx browsers, people with screen-readers, people on other language Wikipedias who copy over templates but haven't updated the common.css, et cetera. It is a complete mess. That leaves 'qif' style meta-templates or the '|if=' blank parameter trick... and you've ranted about both of those often enough for it to be clear you aren't advocating them here. So the only other options are built-in conditionals or scrapping hundreds of templates which make life much easier for the users in favor of doing everything manually. The latter is a non-starter... so get behind built-in conditional logic, 'qif', or '|if=', because one (or more) of those '''is''' going to be used extensively going forward. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:26, 23 January 2006 (UTC)
:: Edit conflict, see my 12:27 response above. Give me a specific template and I will describe how precisely we can go about making it better. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 12:29, 23 January 2006 (UTC)
:::[[Template:Taxobox]]. It would be absolutely ridiculous to have a separate template for Kingdoms, Phylums, Families, Genuses, Species, et cetera '''OR''' to show each of the different classifications as blank for every life form/group. One template with conditional text is ''vastly'' superior to any 'alternative'. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:39, 23 January 2006 (UTC)
:::: Solution: Has already been solved. Blank (hiddenStructure) classification rows are presently used and are perfect for that template. Looks only mildly large on lynx, but that has been improved lately. The rate at which that is being accepted by editors is amazing, and I anticipate one day that a bot will make a run against the articles and convert them all to it. (added: Note also the talk page, where it's mention that it's being copied to the Turkish Wikipedia. Expect more.) -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 13:25, 23 January 2006 (UTC)

[[Image:Lynx.blue whale.css.png|thumb|This is what [[Template:Taxobox]] looks like with CSS hacks (click for larger version).]]
[[Image:Lynx.blue_whale.meta.png|thumb|This is what [[Template:Taxobox]] looks like with meta-templates (click for larger image).]]
::::: Note also my comment on reverting it back to the meta-template version which worked fine long before you came along, and rendered wonderfully in Lynx without CSS. Also note that the person copying it to the Turkish Wikipedia had to have the deal with CSS hacks explained to him before he could get the template to work there... expect to meet a lot of resistance with these CSS hacks, let alone any attempts at running a bot to mass convert anything. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 13:35, 23 January 2006 (UTC)

:::::So, you start out claiming that conditional logic is not needed and then, when faced with proof that it is, claim that the 'hiddenStructure' CSS hack solves the issue... despite the numerous problems with it. Yes, after adjustments were made to get the CSS version of taxobox working right in CSS compatible browsers it has been widely used... which doesn't mean anything. The 'qif' template is widely used too... anything which works for most people will be widely used. The 'qif' approach has the advantage of being easier to follow and working for '''more''' people than 'hiddenStructure'. People have used 'hiddenStructure' ''only'' because it has been claimed that they ''have'' to. Now that they don't... there is '''no''' good reason to use something which doesn't ''work'' right. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 13:51, 23 January 2006 (UTC)

:::::: Resistance? Are you kidding? I find templates all over now that I never touched, yet have on their own incorporated the hiddenStructure method. It is editor-friendly. The Turkish contributor needed some guidance, but he obviously still likes it and has [[tr:Vikipedi:K%C3%B6y_%C3%A7e%C5%9Fmesi#Common.css|put in a request to change common.css]] on his home wiki. Some centralized documentation may help in the future, but that's all. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 13:45, 23 January 2006 (UTC)

::::::: I see you're so confident in this that [http://en.wikipedia.org/w/index.php?title=User_talk:Brion_VIBBER&curid=41532&diff=36366079&oldid=36361896 you're resorting to personal appeals] to Brion to try and stop conditionals from being added to MediaWiki. If these conditionals are handled right, they'll result in '''less''' complexity than we have with meta-templates so my question to you is: why are you fighting this? You bemoan the need for less complexity, while pushing CSS hacks that are arguably as complex as the meta templates (code-wise anyways) that result in more complex output for browsers to deal with. So why fight this? It's good for the servers, it's good for editors, and it's good for browsers. Win/Win/Win. I do not see the problem here at all.. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 15:47, 23 January 2006 (UTC)

:::::::: hiddenStructure is incredibly simple in a typical Infobox scenario, as evidenced by the self-proliferation it's inspired. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:26, 23 January 2006 (UTC)

::::::::: Yes, it's so simple that if you use it properly, it spews out a bunch of crap in the output. If you use the more recent "clever" method where you trash the HTML tag attribute, you get rid of some of the crap being output, but you place a burden on Tidy (or alternately risk outputting non-standard XHTML). And don't be proud of the proliferation it's inspired; this method is an accessibility nightmare, and you should be ashamed of yourself.
::::::::: I sincerely hope we can undo the damage done and have hiddenStructure removed from [[MediaWiki:Common.css]]. It's an abomination. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 02:13, 24 January 2006 (UTC)

:::::::::: The accessibility argument again. How very... dramatic. I've been thinking of accessibility for a long, long time - even started the [[Wikipedia:Accessibility]] page itself. You should be ashamed for even insinuating that I don't care. The accessibility issue is only a factor because there is no editable stylesheet available for non-visual displays. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 04:17, 24 January 2006 (UTC)

::::::::::: Not dramatic at all; a point of fact that you claim to be concerned with but frequently ignore. You "started" [[Wikipedia:Accessibility]] barely three weeks ago. I'd hardly call that proof that you've been "thinking of [it] for a long, long time". And if you really ''do'' think about it so much, how on Earth could you promote something that others have told you is '''broken''' for disabled readers? —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 05:15, 24 January 2006 (UTC)

Just for completeness, here are [[Blue Whale]] in [[Links]]:
[[Image:Links Blue Whale CSS.png|200px]]
<sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 17:44, 23 January 2006 (UTC)

And a [[w3m]] session for comparision:
[[Image:W3m Blue Whale CSS.png|200px]] <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 17:52, 23 January 2006 (UTC)

:::::::::With all due respect, the CSS hack is inadquate for the needs of many infoboxes. Might the supposed consensus of usage that you are seeing, perhaps be caused by the fact that you [http://en.wikipedia.org/w/index.php?title=Template%3AInfobox_TV_channel&diff=33058327&oldid=33053702 unilaterally revert alternate methods] without discussion? I am not saying that those alternate methods are any better, but to say they are un-needed is patently ridiculous. &ndash; [[User:MrWeeble|<span style="color:#008040;">Mr</span><span style="color:#007FBF;font-weight:bold">Weeble</span>]] <small>[[User talk:MrWeeble|Talk]] [[Wikipedia:WikiProject British TV channels|Brit tv]]</small> 18:36, 23 January 2006 (UTC)

:::::::::: The acceptance of the CSS hack is also partly because the users most affected by it, text-only browser users, [[MediaWiki talk:Common.css#CSS hack reduces accessibility, confirmed |blind users]], search engines, non-editors of Wikipedia, don't have much of a voice in how templates are coded. Nevertheless, they constitute an important minority. The fact that editors have to make special requests to alter their local Wikipedia's style sheets to hide junk text in the page content indicates what an appalling hack this technique is. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-23&nbsp;19:49&nbsp;Z</small>''

==Policy/Guideline status==
I think we need to edit this down a bit before we slap {{tl|guideline}} on it. Specifically, the section titled "Use of meta-templates" likely needs to be totally rewritten in light of the dispute over server effect/load. I propose we work on a rewrite at [[Wikipedia:Avoid using meta-templates/Temp]], then move that in place once we're in agreement (and then place {{tl|guideline}} back on it). —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 00:54, 22 January 2006 (UTC)

: Do we even need this page? If the server load issue isn't really an issue, then this page should have a {{tl|historical}} tag. That's the only reason it existed in the first place.
: The parts that are still applicable can go to [[Help:Template]] or [[Wikipedia:How to use templates efficiently|How to use templates efficiently]] or something like that. — [[User:Omegatron|Omegatron]] 01:25, 22 January 2006 (UTC)

::I think we can all agree that overly complex meta-templates (be it complexity from multiple levels, or complexity from nesting calls to templates within other templates) should be '''avoided''' (emphasis there, not outlawed, not banned, not disallowed, but ''avoided''). I just think the language in use now leans too much in favor of zero-tolerance for meta-templates. Certainly if there's agreement though we could place {{tl|historical}} on it. But we should probably wait for Jamesday to have a chance to respond with the information Brion requested. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 01:34, 22 January 2006 (UTC)

:I've taken what's on the main page now, hacked off a good chunk of it, and started a rewrite at [[Wikipedia:Avoid using meta-templates/Temp]]. (I've also redirected the talk page there back here). Feel free to discuss changes or edit as you see fit (we can discuss any issues that crop up as we go). —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 09:51, 22 January 2006 (UTC)

:I think we should stop fiddle around with this page until we know more from Brion. Ugliness and fragility is not that helpful as a guideline. The policy tag is gone and I'm also happy with the removal of the guideline tag. I think that's it for the moment. If we edit here too much we just end in another useless content dispute. The comments about meta-templates from Brion and his expression to implementent conditionals in MediaWiki speek for itself. These are the most important two things. --[[User talk:Adrian Buehlmann|Adrian Buehlmann]] 10:18, 22 January 2006 (UTC)

:: I'm not comfortable with that. Brion is a paid developer. He's paid to make Wikimedia work well. ''Of course'' he is going to defend how well Wikimedia is working because anything else reflects on him. Jamesday is a database developer and knows full well how "costly" database reads are over other operations. Both agree that we should reduce template calls where necessary. The developers are not disagreeing - Jamesday describes the theory behind it all, and he's right. Brion wants to be shown proof that Wikipedia is ''actually'' being affected, and he's right. Both are in total agreement that complex code should be avoided for the editor's sake. This page is just one more guideline for good use of templates. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 12:25, 23 January 2006 (UTC)

:::Brion has ''specifically'' stated that editorial decisions should not be driven by speculative technical considerations. If you think that a specific nested template is ugly, badly written, etc., then that is a perfectly reasonable ground to oppose it. But, given the new clarification, it is no longer reasonable to say to get rid of all nested templates simply on the ground that they are nested. It is simply an editorial decision at this point, not policy. There was a community consensus that we would do what was necessary to protect the servers; there was never a consensus that nested templates were bad in and of themselves. The only justification for banning them as a policy was that database dev [[User:Jamesday|James Day]] asked us to stop, and this has since been seriously questioned by the lead developer. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 21:24, 24 January 2006 (UTC)

::: We all seem to agree they should be avoided where possible. what we don't agree on is at what cost. we've already had at least one complaint from a screen reader user about the hiddenstructure css. its really hard to move away from meta templates (and other structures that cause lots of template invocations like that currently used for taxoboxes) without proper if support or creating a maintinanace nightmare. [[User:Plugwash|Plugwash]] 15:15, 23 January 2006 (UTC)

:::: That screen reader's problem seems rooted in the current fact that the main.css (and any other downstream like Common.css) are of type "media: screen, protector" - and aren't applied. MediaWiki may need to change to make available editor-controlled CSS for screen readers. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 15:49, 23 January 2006 (UTC)

::::: If were talking changing the source we may as well just do "if" right and then we can eliminate both abominations of {{tl|qif}} and "hiddenstructure" (which no matter what excuses you make is misusing css to do something that should be done at page-build time). Unfortunately getting changes into the source is a damn hostile process. First you have to deal with a large virtually undocumented (at the code level) project written in a crappy web scripting languge. then once you've managed to actually change it you have to try and get the devs to look at the patch and apply it (even with much nagging and a fairly imporant patch this can take weeks). [[User:Plugwash|Plugwash]]
::::::Brion has expressed openness to including conditionals in the MediaWiki engine. This is almost certainly a better solution in the long run than either template hacks or CSS kludges. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 21:24, 24 January 2006 (UTC)

== Page focus ==

This (policy/guideline/proposal) page is named "Avoid using meta-templates". Its predecessor was named "Meta-templates considered harmful". If you do not agree with the statement in the title, you should not be editing this page to present your alternate view. People have asked for a re-write which tempers Jamesday's and Brion's statements, yet I can't make a change to this page without it being reverted within five minutes by people who advocate using meta-templates. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 15:09, 23 January 2006 (UTC)

:That's a goofy argument: so where should people go who disagree with, for example, the [[WP:BP|blocking policy]]? Someplace else? Maybe your changes are getting reverted because you lack [[WP:CON|consensus]]? —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 15:17, 23 January 2006 (UTC)

::Indeed, it's circular reasoning. Both the current and prior titles listed above fail to adequately describe the situation. As such, the title will likely need to be changed (to something like 'Use templates carefully') once the particulars have been sorted out. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 15:38, 23 January 2006 (UTC)

This page's history (I know cause I wrote most of it) is on the assertion that meta-templates are bad. This page will stay that way. Go start another page if you want to evangelize bad template practices. The subject of this page is clear - only it's status as a policy/guideline or just proposal is determined by the consensus of editors. It should not be renamed; instead, those that like meta-templates should create an equivalent page. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 15:46, 23 January 2006 (UTC)
:If you want it to stay here, and to remain a one-sided argument against meta-templates, then it will have to be marked <nowiki>{{rejected}}</nowiki> on the grounds of lack of community consensus. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 21:32, 24 January 2006 (UTC)
:Wrong. The page will be shaped into what the consensus agrees with. If you want to write an essay on the evils of meta-templates, do that; but note well, even there, you are still subject to consensus. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 15:48, 23 January 2006 (UTC)
:: THIS PAGE is my "essay" on the evils of meta-templates. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 15:49, 23 January 2006 (UTC)
::: Yeah we remember when you were forming it all the revert wars you got into pushing your interpretation of jamesdays statement into this "essay" and eventually managing to convince the arbitrators into accepting it. It shows what a strong enough revert warrior can achive with regards to getting what they wan't on a wiki especially one thats as reluctant to block as wikipedia.
::: Pages in the project namespace (with the exceptions of things like the village pump which are essentially talk pages in all but name) should represent either descisions from the board or jimbo (or possiblly at a push the head developer if its urgent) or community consensus. This "policy" never did either it reflected one persons interpretation of a few vauge and certainly not official seeming statements from jamesday. {{unsigned|Plugwash|2006-01-23 17:04:22 CET}}

:::And, as I mentioned, even an essay would be subject to consensus. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 16:11, 23 January 2006 (UTC)
:::: No, it is perfectly reasonable to have contradictory pages in the Wikipedia: namespace - and there are already several. Consensus is important only when you want to move a particular page into the guideline/policy realm. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:23, 23 January 2006 (UTC)

:::Netoholic, please reconsider in light of [[WP:OWN]]. If you want a 'personal essay' it should be in your own user space. So long as this is out here in the Wikipedia namespace your claims of ownership are completely inappropriate. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 17:06, 23 January 2006 (UTC)
::::: Don't quote that page to me. I wrote this page and have welcomed additions which assert the position in it's title. Go work on another page. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:23, 23 January 2006 (UTC)
:::::: Neto, what's the problem with you? <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 21:33, 23 January 2006 (UTC)
Personal editorials belong in user space. If the consensus dictates moving, rewriting, or changing the message of a page in Wikipedia space, so be it. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-23&nbsp;20:26&nbsp;Z</small>''

: This is by no means "personal" as other editors here agree with "avoid using meta-templates". The problem is that some are basically turning this page into "We ♥ Conditionals" rather than presenting solutions to the scourge of meta-templates based on the present feature set of MediaWiki. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 20:35, 23 January 2006 (UTC)
::Having converted this from an essay into a policy page (without broad consensus, on the claim that this was mandated by the developers, which now seems to have been a misunderstanding) and used it to force or try to force the deletion of many conditional templates, and the editing of many other templates not to use conditional or nested constructs, IMO this has become the proper page for whatever policy finally attains consensus (within the limits of board or developer mandated restrictions, if any). If that policy ultimately favors the sue of conditionals either broadly or within narrow limits, this page should IMO become the place to say so. If you want to create [[Wikipedia:Arguments against conditional and nested templates]], anc to copy onto such a page much content that has been on [[WP:AUM]], feel free. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 20:59, 23 January 2006 (UTC)
::: A signifant number of pages refer to this page from a very specific standpoint and context. Conditionals have nothing to do with meta-templates, except that proponents of conditionals ''used'' meta-templates. Instead, any talk of the benefits or drawbacks of conditional templates should be moved to [[Wikipedia:Conditional expressions]]. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 21:56, 23 January 2006 (UTC)
::::I seem to recall that not so long ago you were defining "meta-templates" to include any conditional template, however implemented. Perhaps I misunderstood. In any case the arguments in favor or agaist both nested tempaltes and conditional templates seem reasonably to belong here as much as anywhere. I note that [[Wikipedia:Conditional expressions]] is at the moment simply a how-to page on implemeting the CSS Hiden structure method of implemtign limited conditional functionality. This makes it IMO a poor place to discuss the merits and costs of conditional structures in general, and of implementing such in the mediawiki software, unless the current content is moved to some other location (which might be a good idea, as it currently gives the incorrect impression that Hidden Structure is the only way to achieve such effects).
::::: This page's title is "Avoid using meta-templates" ... it is off-topic to advocate them on ''this page'' and it sure as hell would result in fewer goddam reverts by those who support meta-template use. Let's each side document our position and let time tell. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 22:15, 23 January 2006 (UTC)

::::::If you want to write a personal essay about templates, it goes in your userspace. ''This'' page will be about the best use of meta-templates in Wikipedia, and is subject to [[WP:CON|consensus]]. The title will be changed if the content changes from an "avoid" stance. — [[User:Omegatron|Omegatron]] 22:42, 23 January 2006 (UTC)

::::::: To call what you are doing "consensus" is nonsense. This is just another way to undermine the intended purpose of this page. It's a dirty tactic, when a lot of grief would be avoided by working on parallel guideline proposals. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 04:13, 24 January 2006 (UTC)

:::::::: Do you understand what [[WP:CON|consensus]] means? It means working ''together'' to make a page that represents everyone's views (or the developers' views on purely technical matters, as you were so happy to point out a few months ago). You don't [[WP:OWN|own]] the page just because you wrote the first revision. It's in the Wikipedia: namespace; it doesn't ''matter'' what your "intended purpose" of the page originally was. You can't just edit it to remove everyone else's viewpoints and include only your own. If you want to write an opinion piece, it goes in your userspace. You ''do'' understand this, right? Do you?
:::::::: Regarding "parallel" guideline proposals: What are you suggesting? You want to write up an anti-meta-template proposal and have others write a pro-template proposal and have them duke it out in the arena of popular opinion? Seriously, who do you think would win? What does that imply about your viewpoints? — [[User:Omegatron|Omegatron]] 05:14, 24 January 2006 (UTC)
::::::::: I don't care about winning. I care that people coming to this page in the future hear a coherent position which matches the "Avoid using meta-templates" title. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:32, 24 January 2006 (UTC)
:::::::::Probably that title should be altered to a more neutral one such as "guidelines on the sue of conditional and nested templates". [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 16:51, 24 January 2006 (UTC)
::I don't think the policification of AUM was based on a misunderstanding. It was based on the opinion of a developer. There was no misunderstanding. Whether it is now contested is a different matter. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 21:45, 23 January 2006 (UTC)
:::Unless I have misunderstood, the policy designation was based on the impression that there had been a fairly absolute dictat from one of the key developers, and that this was supported by all the other key developers. The second point of this now, seems, at a minimum to be no longer true, if it ever was. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 22:11, 23 January 2006 (UTC)
::::I don't think you'll disagree, though, that it was the correct enterpretation to make ''based on the evidence at hand''. That was what I was saying. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 17:25, 24 January 2006 (UTC)
:::::(''after edit conflict''): Actually i thought at the time that it was being interpreted as more final and definate than the wording of Jamesday's coment justified. Others also thought so and said so. But the reason I used "misunderstanding" is that that interpetation seems to have been incorrect, which may have been casued by unclear communication on the part of Jamesday, or a disagreement on this subject betweem Jameday and Brion, or some other failure of communication or intrepretation. I presume that Netholic and others who took Jamesday's statement as a basis for applying apolicy tag were acting in perfect good faith, accodign to their best understanding of the evidence at hand. Whether that was fully justified by the evidence then at hand is now moot, since we have Brion's later statemetn, which contradicts the previosu interpretation on which a policy of "all conditional and most nested templates must be removed" was based. IMO this page should now be used to give ourt current guideleines and sugestions on when and how to use conditional and nested templates, adn when and why to avoid their use. As such it ought to reflect consensus, or if there is no consensus, all significant points of view. Perhaps it should be renames to [[Wikipedia:Conditional and nested templates]] or some similar neutral title. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 17:56, 24 January 2006 (UTC)

::::::Agree with the suggested move. — [[User:Omegatron|Omegatron]] 19:51, 24 January 2006 (UTC)

:::::Not really. In case you didn't notice, a lot of people opposed the attempts to make it policy, even though they had read Jamesday's statements ([[Wikipedia talk:Avoid using meta-templates/Archive 1|1]], [[Wikipedia talk:Avoid using meta-templates/Archive 2|2]], [[Template talk:Sisterproject|3]]) themselves. All we had to go on were his statements, which he didn't follow up on, and which did not mandate any policy or claim the support of all the developers or set out a clear statement of what should be done. Most were of the "I think we should avoid things as a temporary expedient"/"using excess resources is bad" flavor. Netoholic made up his own interpretation of those statements, and ArbCom members apparently interpreted this as a clear absolute mandate from ''all'' of the developers and gave him license to do whatever he wants.

:::::Whatever. In the meantime, any attempts to rewrite the page are kind of pointless. We still need clear statements from both Brion and Jamesday to figure out exactly how much complexity the servers can handle. If there really is no problem with the servers (as Brion has stated), then it goes back to the matter of whether the increase in template complexity (including future changes to the software) is worth the article editing advantages, which ''can'' be decided by community consensus between regular editors. — [[User:Omegatron|Omegatron]] 17:47, 24 January 2006 (UTC)

::::::Agreed, this is why I haven't really touched the rewrite much (though I think I've cut it down to just the concerns that will be relevant if the server load issue turns out to be irrelevant). —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 17:54, 24 January 2006 (UTC)

:Netoholic, if you want this page to remain a straightforward argument against meta-templates, I see one clear way to do this. We can mark it with a <nowiki>{{rejected}}</nowiki> tag, given its lack of community consensus, and you may express your opinions there. (Alternatively, we could userfy it to your user space.) Then, after that, we could create a more general page, maybe [[Wikipedia:Template guidelines]] or something of that nature, where the meta-template issue would be handled in a more reasonable manner in accordance with community consensus. My concern with your above statements is that you seem to be attempting to force a rule against meta-templates into guideline or policy status despite the lack of any community consensus to this effect. I realize that you had a [[WP:FAITH|good-faith]] reason to believe that this was what the developers wanted, but that now appears highly questionable and has been explicitly denied by the lead developer. What you may not do is [[WP:OWN|exercise ownership]] on this page while forcing it into guideline status in defiance of the will of the Wikipedia community. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 21:30, 24 January 2006 (UTC)
:: I don't want to own this page... trust me, it's been full of grief. What I do want is for people who ''like'' meta-templates to document their reasons elsewhere to prevent conflict. It is perfectly reasonable for pages that document differing views to be in Wikipedia: space. Jamesday, Brion, and several other editors have expressed the view that meta-templates should be avoided (whether for server-related reasons or "ugliness and fragility"), so this isn't a personal essay - it is now a guideline proposal. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 21:51, 24 January 2006 (UTC)
:::If this is a guideline proposal, than it must be open to the arguemntes for other views, and it must be open to editing that will not merely change the wording but significantly transform the suggested rule of action. A proposal is or should be open to all in order to allow a consensus to be formed. If it in some way isn't open, then I will at least oppose its acceptance, and possibly propose its deletion at [[WP:MFD]].

== Yet another kludgy hack ==

I had a thought, and while I'm sure I'll regret sharing it:

<nowiki><span style="display: no{{{test|}}}ne; speak: no{{{test|}}}ne;">Text to be displayed if 'test' is not blank.</span></nowiki>

How does this stack up in terms of accesibility? No wacky class names and/or stripping out of wacky classes, doesn't require changes to the 'common.css' (or whatever) of each place it is ported to, et cetera... but still sending stuff and then retroactively saying 'ignore that text behind the curtain'. It's not the prettiest code, but it works. Can be presented slightly nicer with the form <nowiki>display: {{{test|none}}};</nowiki>, but then it doesn't work if test is set blank ('|test=') or if it is actually set to the word 'none'. Thoughts? Feelings? Rotten vegetables? --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 21:03, 24 January 2006 (UTC)

: I don't understand—is that the actual code generated? Will it be "display:none" for hiding the text and "display:no<nowiki>{{{test|}}}</nowiki>ne" or "display:notestne" otherwise? Neither is a valid value for a CSS display or speak property, so the page's CSS will not validate; results in any particular browser are unpredictable. In terms of accessibility: hiding text with CSS is ''still'' not the same as removing it. This is the same technique as the other CSS hack, which has been shown to fail in older versions of Jaws and in Lynx, and that's without doing any formal testing at all.

: Folks: the page's content is in the HTML. Anything done with CSS is just styling, and it is completely optional. The WCAG accessibility guideline requires that all pages work properly without any of their CSS being displayed. This is a priority one checkpoint, and ignoring it is not acceptable.

: The template's output is broken. Please let's put energy into fixing the template or replacing it (see {{tl|wikicite}}), not into using CSS to make it look okay to the sighted MSIE users, and forget about everyone else. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-25&nbsp;04:45&nbsp;Z</small>''

::Given that the devs have committed to implementing something in the code to handle these basic situations, it would be better to just avoid these tricks for the time being. I agree with Michael's comments about accessibility also. --[[User:Thebainer|bainer]] ([[User_talk:Thebainer|talk]]) 07:49, 25 January 2006 (UTC)

::Sorry, I should have explained better. The information above is an example line of code for making text conditional. If the 'test' parameter is not set or is set blank then the span tag evaluates to: <nowiki><span style="display: none; speak:none;"></nowiki> and everything between that and the <nowiki></span></nowiki> tag is suppressed. If the 'test' parameter is set to 'frogs' or anything else then it gets inserted like so: <nowiki><span style="display: nofrogsne; speak: nofrogsne;"></nowiki>... which is not a valid style and thus does nothing - allowing the text to appear/be spoken. An example of this in use can be seen at [[User:CBDunkerson/Sandbox]]... there I have set up a test1 parameter which is set and a test 2 parameter which is not. Each parameter is checked by the method above and text generated if the parameter is set. Only the Test1 text should be displayed... the Test2 text and all of the logic suppressing it should be 'invisible'. This differs from the earlier 'CSS hack' in that it doesn't require an update to the stylesheet for special classnames or need 'Tidy' to strip out the bad classnames. Obviously the goal was to see if this option would ''work'' with the browsers/screen-readers which 'hiddenStructure' breaks on... the <span> tag has been incorporated into HTML 4, but I don't know if that is recognized by these browsers or not. As for a code implementation of conditionals... when it exists I'll use it. In the meantime the 'hiddenStructure' CSS hack has '''already''' been implemented on ''dozens'' of templates and I think we ought to be replacing it as quickly as possible. Efforts to do so by restoring the meta-template versions and/or using '|if=' have led to revert wars and other nastiness. Hence my questions about whether this option meets accessibility criteria. It clearly makes less of a mess than 'hiddenStructure', but I don't know if it would still fail in some circumstances. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:34, 25 January 2006 (UTC)
:::From what I can tell it would behave exactly as the CSS hack does (well, the modified CSS hack Netoholic was using anyways). —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 12:44, 25 January 2006 (UTC)
:::It would still fail for anyone working with a browser that ignores css completely (e.g. some text browsers). [[User:Plugwash|Plugwash]] 12:40, 25 January 2006 (UTC)
::::So it's styles in general, even when set in an HTML 'span' tag rather than the stylesheet. Oh well. Was worth a shot. Though... that tells me that ''alot'' of things which use 'span' and 'div' tags for formatting (like... just about every table on wikipedia) are just ignoring the styling. Guess that doesn't matter much for things like alignment, colors, font-size, et cetera... it all just gets displayed in plain text or spoken normally. Only these 'suppression' styles run into real trouble. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:53, 25 January 2006 (UTC)

::::: Right, there's nothing inherently wrong with styles, it's just the principle that they don't change the content of a page, merely style it. Local styles in a style attribute override an imported style sheet, but are still not guaranteed to be applied. HTML should be authored with its semantics in mind. For example, a table has structure, a table header (th) labels table contents, but span and div tags in particular are meant to be semantically meaningless and used for subdivision and styling only.

::::: Some screen readers try to emulate a visual browser by skipping items that have display:none or visibility:hidden style applied, but others don't. Note that there are rare screen readers and braille readers, and we have no way of testing every one, so we shouldn't take anything for granted.

::::: Accessibility is not that hard: just use HTML tags logically, keep the code tidy, and avoid what seems like a patent workaround. [[Lynx (web browser)|Lynx]] is handy for testing because it reduces the text of a page to its most basic form: if a web page makes sense in Lynx, then it probably makes sense in other alternative browsers including screen readers. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-25&nbsp;15:09&nbsp;Z</small>''

:::::: Another quick check is to just turn off css in your browser. Not as "reduced" as lynx, but still useful. There's a bookmarklet [http://www.squarefree.com/bookmarklets/webdevel.html here] that will do it, and there are probably better solutions that I don't know about. — [[User:Omegatron|Omegatron]] 18:45, 25 January 2006 (UTC)

:I agree that with regard to portability across projects it is better.--[[User:Patrick|Patrick]] 14:24, 25 January 2006 (UTC)

Accessibility with the [[Wikipedia:HiddenStructure]] method is not a problem, so long as the infobox/whatever makes sense when the information is unhidden. Using hiddenStructure for things like [[Template:Book reference]] is not the way to got. It's perfectly fine to use it for hiding a few lines in Infoboxs. Design templates to look good and make sense both with and without the hiddenStructure, and you're fine. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:12, 25 January 2006 (UTC)

: True, it can work acceptably when the revealed text is obviously a list of empty fields, and may be acceptable as an ''interim'' solution for a technical problem ''which we know will be solved''. But there are two different aspects in which this is still poor practice:
:# The principle of adding a layer of HTML and CSS code to hide inadequate template output: unnecessary complexity, fragility, bloat, misuse of standards.
:# The principle of fixing it for the majority of sighted visual browser users, but saying it's "good enough" for the disabled or users of alternative browsers: not real accessibility, could be interpreted as disrespectful, easily extended to cases where it really matters.
: If having a list of empty fields in an infobox really is good enough, then why don't we skip the hack, and just show those fields in visual browsers? This would put everyone on as equal a footing as possible, and helps remind us that something still needs to be fixed properly. The answer, of course, is that it really ''isn't'' good enough, but we choose to ignore it because it only makes the experience worse for a minority. This is especially sad, because the only affect on us is that it would look kind of ugly, but for some disabled users who already have to overcome difficulties using the Internet, it makes it even harder. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-25&nbsp;17:29&nbsp;Z</small>''

:: Nobody wants to make things less accessible, and if you can convince editors of infobox templates that it's better to not use hiddenStructure, go for it. I think it's acceptable to hide some empty rows ("Died" in [[Template:Infobox President]], for example), and I doubt that a visually-challenged readers mind that we do it. We do a lot for their convenience (and can do more), and hiding these rows is just a convenience. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:42, 25 January 2006 (UTC)

::: Convincing editors is part of my point: ''we'', that is the consensus lets this happen due to inertia, resistance to difficulties, nimby, etc. Changing back may be difficult or impossible. This is why hacks relying on poor programming and authoring practices, especially ones affecting accessibility, shouldn't be introduced in the first place.

::: The presidents infobox is a very good example where this should definitely ''not'' be used. The text of the page pretty clearly states that [[George W. Bush]] died, although it leaves out the date: "Born — July 6, 1946 New Haven, Connecticut — Died — Political party — Republican". ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-25&nbsp;17:48&nbsp;Z</small>''

:::: I say again, make the template [http://en.wikipedia.org/w/index.php?title=Template:Infobox_President&diff=36668813&oldid=36353817 readable and make sense], and there is no problem. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 18:13, 25 January 2006 (UTC)

::::: Better, but if there were no problem then you wouldn't be adding code to hide that line and the empty signature from visual browsers. I challenge you to make those two lines visible, and see how many complaints from sighted editors mount, or how quickly another editor reverts it, just because it doesn't look right. Then keep in mind that for some disabled readers the extra text isn't just an aesthetic problem, it makes the page ''measurably more difficult to read''. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-25&nbsp;18:28&nbsp;Z</small>''

:::::: I'm not going to perform an experiment I know will fail. Editors hate to see the "Died" line when someone is alive. I do not agree with you that it makes it "measurably more difficult to read". -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 18:46, 25 January 2006 (UTC)

::::::: I'm sure disabled people hate to see the "Died" line when someone is alive, too.

::::::: Screen readers ''linearize'' a web page; like a text-only web browser with a one-line window. They are relatively tedious and fatiguing to use, even in properly-built web pages [[WP:ACCESS#References |(Clark 2003:150)]]. Screen reader users have a ''measurably'' significantly harder time completing basic tasks[http://www.useit.com/alertbox/20011111.html]. This is why many sites including Wikipedia add "skip" links for accessibility, to jump past or to the navigation links, depending on whether they're at the top or bottom of the page.

::::::: Adding a dozen superfluous lines to the taxobox makes it still more tedious to actually find the fields that are present. Adding <nowiki>"Signature [[Image:{{{signature}}}|128px]]"</nowiki> to the President Infobox or "<nowiki>and [[]], and [[]], and [[]], and [[]]</nowiki>" after a Main Article link is confusing. As you say, editors won't settle for this rubbish, and it's wrong to force a disabled minority to suffer through it. Breaking priority-1 accessibility guidelines[http://www.w3.org/TR/WAI-WEBCONTENT/#tech-order-style-sheets] like this [[template talk:Main#Strange output |just makes it worse]]. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-01-25&nbsp;22:03&nbsp;Z</small>''

== Conditionals in codeset ==

I was reviewing the different ideas for implementing conditional logic in the codeset and noticed a common issue which should be considered. They all put the conditional identifier in the template '''call'''. This is similar to the current '|if=' parameter method and will have the same issues. Namely, it is increasing the complexity (granted by a relatively small amount) on the '''article''' side and it would require all existing template calls to be updated. If possible it would be better to implement the conditionals on the '''template''' side to avoid these two issues. For instance, we could make <nowiki>{{{if|{{{A}}}}}}, {{{ifnot|{{{A}}}}}}, {{{and|{{{A}}}|{{{B}}}}}}</nowiki> 'magic word parameters' available to every template to evaluate (respectively) whether parameter 'A' exists, whether 'A' does not exist, and whether both 'A' and 'B' exist. Et cetera. Same concepts, but I think it would be ''much'' better to have all the logic on the template side to avoid needing to teach general users how to set up conditionals '''and''' having to update all the existing calls. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 12:41, 27 January 2006 (UTC)

:Hmm. Trying to understand: if we have a template X that contains "<code><nowiki>{{{if|{{{A}}}}}}</nowiki></code>". When I then write "<code><nowiki>{{X|A=blue}}</nowiki></code>" the transclusion results to? --[[User:Adrian Buehlmann|Adrian Buehlmann]] 15:27, 27 January 2006 (UTC)

::The format really doesn't matter, but keeping with the idea of basing it on a 'magic parameter' setup it would actually be something like: <nowiki>{{{if{{{A|}}}|Text to show if 'A' exists}}}, {{{ifnot{{{A|}}}|Text to show if 'A' does not exist}}}, {{{and{{{A|}}}{{{B|}}}|Text to show if 'A' and 'B' exist}}}</nowiki>. However, the markup could be done any which way (<nowiki>{{{if|{{{A}}}|Text to show if 'A' exists}}} or ##purple#A#Text to show if 'A' exists</nowiki>)... I wasn't trying to show a complete markup system here. Just suggesting that the markup changes should be in the ''template'' rather than the ''article''. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 17:22, 27 January 2006 (UTC)

:::I still feel I haven't synced my slow stupid brain onto your idea (which does not mean your idea is bad or should be changed - I just can't say anything about it if I haven't understood it completely). I have especially problems with your ''"They all put the conditional identifier in the template call"'' (scratching my head). Very strange. If we take Phil's proposal for a qif function in MediaWiki: I think this ''is'' intended to be used in, for example, [[template:book reference]] (my beloved example :-) instead of calls to that much debated qif. So as soon as we have a MediaWiki-built-in qif we just need to change template book reference, ''not'' the calls to book reference. I do not think that a single ''article'' that includes book reference would need to be changed. What am I missing? --[[User:Adrian Buehlmann|Adrian Buehlmann]] 17:53, 27 January 2006 (UTC)

::::Hmmm, ok ignore me... both Phil's and AzaToth's versions could be used in the template rather than the article. They just looked like 'template calls' so I was thinking they were 'top level' settings. The idea (which ''I'' wasn't understanding) is to have the markup in the template (as I was suggesting)... the markup is just written so that it ''looks'' like you are calling a template. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 18:38, 27 January 2006 (UTC)

:::::Yes that's it. it looks like template calls but they are built-ins. Maybe we could even ''have'' templates built into MediaWiki (but I do not mandate that, I will happily use any syntax we can have from the devs :-). I will certainly not ignore you as I am always on the lookout for new ideas. If I say ''no'' to something I haven't understood, I'm a plain idiot. Thanks for your presentation anyway. I think we really need every idea and must carefully check we have understood everything. Never mind. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 18:51, 27 January 2006 (UTC)

== Reverted again ==

I really don't understand what it takes in order to make an edit here. I am really feeling like shit because I spent a long time on a rewrite, which removed Jamesday's comments about how a pages are handled, reorganized the page, concentrated several ideas down, and added a section describing problems with all three conditional methods. I feel like shit because it was [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&diff=37420660&oldid=37419101 reverted] within 10 minutes. It is very hard to assume good faith when people snap-revert like that. I doubt there was even enough time for him to read it, let alone see what had changed. Nobody else has worked on this in six days, and if there were specific objections, the article is editable by anyone or you could bring those objections here. I just feel sick in my stomach right now. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 22:51, 30 January 2006 (UTC)

:See below. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 22:54, 30 January 2006 (UTC)

:Obviously the problem is that we disagree on what the page should say. You decreased the 'slant' of the page, but is still very much present. Note that 'qif' and '|if=' are listed as 'not useable with subst:'... but 'hiddenStructure' ''isn't''... when in reality it has exactly the same problem with evaluated parameters. Or that '|if=' is described as "often ''very'' hard to understand". For comparison:

<pre>|if= version
|- valign=top {{{if{{{superphylum|}}}|
! Superphylum:
<td> {{{superphylum|}}}<br><small>{{{superphylum_authority|}}}</small>}}}

CSS version
|- valign=top class{{{superphylum|}}}="hiddenStructure"
! Superphylum:
| {{{superphylum|}}}<br><small>{{{superphylum_authority|}}}</small></pre>

:Seems like a vanishingly small difference to me... and that's using table structure, where '|if=' is weakest. Make it conditional formatting styles instead and hiddenStructure gets ''very'' messy in comparison. The page should mention that there is already discussion of a built-in Wiki conditional method to solve these problems. Also the 'vandalism' and 'page update' issues really have little to do with meta-templates per se... single templates linked to the same number of pages are equally vulnerable to either issue. That ought to be explained so people don't do alot of work to 'de-meta' templates for no real gain.
:However, ultimately the issue here is whether we listen to Brion when he says that we shouldn't be making policy (or 'guideline') decisions based on hypothetical server load. He has said that if/when it becomes an issue it would be dealt with on the software side. This page inherently attempts to deal with it (presuming that it ''exists'') on the user side. I'd rather see a page which describes the potential issues around templates in general and the pros/cons of various methods than this repackaged 'meta-templates are evil' presentation. I've seen ways to bring Wikipedia as a whole to a grinding halt with templates that wouldn't require a single 'meta' (nested) layer. In some cases removing meta-templates could actually be 'harmful'. It should be about understanding how templates work so informed decisions can be made. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 23:22, 30 January 2006 (UTC)

:: If you read my rewrite, I dramatically reduced the scary "server load" text. I preserved the undisputable concept that meta-templates do requiremore database reads/processing.... but balanced with Brion's comments as to the actual impact of that. This page's focus is to stop using complex meta-templates ''and'' the replacements like CSS. Avoid them all. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 01:42, 31 January 2006 (UTC)
:::This is an editorial decision, however, and it is one that the community consensus appears to be against. Using two (or more) templates rather than one template with conditionals, which seems to be what you're advocating, means unnecessary complexity and added maintainence. I know of ''no'' programmer who would consider doing subroutines that way. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 04:04, 31 January 2006 (UTC)

:::: Please don't speak for what you ''think'' I advocate. I do not support '''any''' blanket statement on how any template should be handled. At various times I've used conditional CSS, merged templates, forked templates, nominated templated for deletion, and created new templates from scratch. I look at each situation as it comes up and decide what I think is the best course of action. I also ask that everyone refrain from speaking on behalf of the "community consensus". I find that to be of little help, since I and other supporters of "Avoid using meta-templates" are also part of the community. Instead, voice ''your'' opinion, provide rationales, undertand that others may disagree, and be open to new ideas. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 06:42, 31 January 2006 (UTC)

:::::You have specifically requested that conditionals ''not'' be included in MediaWiki [http://en.wikipedia.org/w/index.php?title=User_talk:Brion_VIBBER&curid=41532&diff=36366079&oldid=36361896]. This is, quite frankly, a bizarre position, and I'm not aware of ''any'' other users who share it. I don't think anyone is arguing that {{tl|qif}} is the ''best'' solution. What is being argued is that it is the ''least bad'' solution until we can get support for true conditionals at the engine level. My statement stands: I don't see why anyone would consider the existing arrangement of kludges, hacks, and forks to be superior to genuine support for the conditional syntax that some layouts badly need. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 07:26, 31 January 2006 (UTC)

:::::: For the sake of our non-template-geeky editors... life without conditionals is preferable in my opinion. I do not want to see the template namespace gain some "elite" status where only the privileged few can make a template or even make a change. It's already happening on some pages. Templates should be very simple contructs. This "consensus" you're so fond of citing is the result of several very clever folks converging on this talk page. The only thing ''I'' think about is how many people out there will stop creating, maintaining, correcting, and improving templates because they've become too complex. If I could convince the developers to even remove the default parameter function, I would. It's led to no ending of headaches in this namespace, which was already a maintenance nightmare. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 07:48, 31 January 2006 (UTC)
:::::::"''For the sake of our non-template-geeky editors''". Ah. And no doubt [[Usenet|the lurkers support you in email]], too. Look - article editors outnumber template editors by a significant margin. And, ultimately, the articles are what Wikipedia is all about. Using conditionals, we can make articles easier to edit (by increasing the flexibility and ease of use for infoboxes, etc.), at the cost of making some templates (arguably) more difficult to edit. This is a tradeoff we should make without hesitation. If someone wants to edit the formatting of a complicated template and doesn't feel comfortable wrestling with the code, then they can ask on the Talk page for assistance from someone more technically minded. The alternative is to put the burden on article editors, which is far more onerous. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 07:57, 31 January 2006 (UTC)

=== Rewrite ===

Netoholic made a proposal for a rewrite. I reverted it and moved it to [[Wikipedia:Avoid using meta-templates/rewrite]] for general editing. Please work there until there is consensus to move that to [[WP:AUM]]. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 22:53, 30 January 2006 (UTC)

: And what happens when six days pass on that with no edits? We already had one [[Wikipedia:Avoid using meta-templates/Temp|temp page]] which was not being used either. It's silly that we can't just work on the main page... because right now it looks like trash. Of course, that fact may be why its always reverted to the version with that huge ugly message box. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 22:57, 30 January 2006 (UTC)
: Please note that Adrian's been doing some substantial neutering of that rewrite page. [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&diff=37419101&oldid=36535109 Here is my original rewrite]. Judge for yourself which one better expresses the statement "avoid using meta-templates". -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 23:18, 30 January 2006 (UTC)

::No it is not silly. We still have that disagreement between Brion and Jamesday and the page should best stay as it is until we have further info. If you want to propose such a huge change in one step, let's do that on the side. By the way I have edited your proposal and am still working on it. The initial version corresponds to your proposal. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 23:20, 30 January 2006 (UTC)

::By the way I think the current title ''is'' bad. But we already had that discussion. Need to discuss again? I would say no. Let's first put the new contents in shape then talk about the title. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 23:30, 30 January 2006 (UTC)

::Well, personally, I think this page should be moved to [[Wikipedia:Meta-templates]] (or something more neutral sounding), since obviously it's no longer correct that we should "avoid" them. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 00:27, 31 January 2006 (UTC)

::: Agreed. Or [[Wikipedia:Special templates]] or something, since conditionals aren't necessarily "metas". — [[User:Omegatron|Omegatron]] 06:10, 1 February 2006 (UTC)

:::Moved to [[Wikipedia:Meta-templates]]. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 09:33, 1 February 2006 (UTC)

::: I will always be an endorser of the idea "Avoid using meta-templates" and for the forseeable future there will be a page at that title because I, Jamesday, Brion, and several others agree with that position. If you want a "Wikipedia:Meta-templates", please create it from scratch to avoid disrupting this page's edit history. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 01:39, 31 January 2006 (UTC)
:::::Neto, your public position has in various places and at various times been that we should "avoid using '''templates'''", particularly in the context of citing sources and references (and IIRC infoboxes). It is therefore difficult to imagine that this is not part of your apparent crusade against the use of templates, given that the templates against which you have railed most strongly just happen to be those which use condition syntax most heavily. HTH HAND —[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 09:17, 31 January 2006 (UTC)
:::::No. We do not want a page "Avoid using meta-templates". You can do so on your user space. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 09:40, 1 February 2006 (UTC)
::::In fact, this is not true. Brion did ''not'' say "avoid using meta-templates". He said "try to avoid ugly and fragile templates, and let me worry about the server load issues." (Not an exact quote, but this is the essence of what he said in several places, including [[WP:AUM]].) The question, now, is whether it's more "ugly or fragile" to (A) use a conditional template like {{tl|qif}}, (B) use CSS hacks for optional data hiding, or (C) fork templates into two or more versions and get rid of the conditionals entirely. You favor approach C. However, this is not the community consensus. The consensus for now appears to be that we should use (A) for now, and that hopefully we will soon have real conditionals embedded in the MediaWiki engine so that no hacks have to be used to get them. Approach C seems to me, as a programmer, to be horrible coding practice, and I know of few coders who would disagree with this. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 04:08, 31 January 2006 (UTC)

:::::(C) defeats the whole purpose of templates (especially with the amount of forking that would probably need to be done to cover all the possibilities). It also adds complexities for regular editors (keeping track of the various forks). And when it's time to update the appearance or functionality of a group of forked templates? Further complexity because you need to update all the forks as well. (C) is just a total non-starter from any angle you approach it from... —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 04:28, 31 January 2006 (UTC)

:::: Please stop trying to [[WP:OWN]] this article. And please don't speak for Brion (or even Jamesday) in the future; if you believe they support you, have them post here themselves. Regardless, as it's no longer a "server issue" with unanimous developer backing, it's back to the community to decide if the costs of meta-templates (generally ugly) outweighs the benefits (simpler '''use''' of templates (no forks), better rendering and accessibility). And so far the community seems to be for meta-templates as opposed to the alternatives. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 04:25, 31 January 2006 (UTC)

::::: These users have posted here expressing specific desires to avoid using meta-templates... Jamesday: "''Please instead work at reducing the use of qif to reduce the harm.''"[http://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Avoid_using_meta-templates&diff=31881003&oldid=31876792] Jamesday: "''Using resources unnecesssarily is not helpful''" [http://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Avoid_using_meta-templates&diff=31765136&oldid=31672741]. Brion: "''Complicated templates-within-templates generally ought to be thought twice about before being used, because they can be confusing and fragile.''" [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&diff=36043188&oldid=36039987]. Sam Korn: "''In my opinion, ["ugliness and fragileness" is] the most important reason. the main reason I cite when I ask for meta-templates to be removed.''" [http://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Avoid_using_meta-templates&diff=36120215&oldid=36117723]. Snowspinner: "''we still should not be using them''" [http://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Avoid_using_meta-templates&diff=36107342&oldid=36072832]. I am willing to make sure this page reflects the ambiguity around the server impact, and my rewrite covered that well, but the core idea is to avoid making templates any more complicated than they already are. Just because you can do a thing, does not imply we ''should'' do a thing. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 06:42, 31 January 2006 (UTC)
:::::::These users were almost without exception working under the impression that JamesDay's original pronouncement was the result of unanimous agreement between the developers: the fact that this has now been shown to be incorrect rather dents the impregnability of the arguments. HTH HAND —[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 09:20, 31 January 2006 (UTC)
::::::::I wasn't arguing under that assumption. I consider server load to be important, but not as important as accessibility. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 18:14, 31 January 2006 (UTC)
::::::First of all, Sam Korn and Snowspinner are not developers at all (AFAIK), so their opinions should be given the same respect as those of any other editor - no more, no less. Citing them as authorities holds little meaning. We're already aware of Jamesday's statements, but Brion's claims appear to run counter to his, and Brion is, after all, the lead developer. Furthermore, even taking Jamesday's statements at face value, "reducing" does not mean "eliminating", and if there is no other effective way to get the effect we need, it's not an "unnecessary" use of server resources. I agree we shouldn't use nested templates just for the hell of it. But we already ''have'' "thought twice" - and three, and four, and five times - about them. For some things, you need conditionals. This can be done with CSS hacks, but that creates accessibility problems for some users, and generates ugly code. It can be done via {{tl|qif}}, which is probably the least bad option we have open to us now. Ultimately, it will be done via server-side implementation of conditional functions, and this is the optimal solution. In the meantime, we'll muddle through with what we have, and there's no point in trying to limit the use of our most effective current tool. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 07:32, 31 January 2006 (UTC)
::::::::Hey, hang on. I do still get to have an opinion! Netoholic's point wasn't that I had more authority, only that it was a misrepresentation to claim that there was a complete consensus for keeping such templates. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 18:14, 31 January 2006 (UTC)
::::::: If I were to use your rationale, that the opinions of these editors somehow weighs less than the developers, when we're talking strictly about usability vs. server issues. You joined WP in May 2005, so how exactly should I rank your opinion on this matter? Where does my opinion rank, since I've got a couple thousand edits just in the Template space? On your other point... it is a fallacy to think that there is any "need" for conditionals or meta-templates. Wikipedia managed just fine before last October (?) when the parameter default function was first put in, leading to things like Template:Qif. The truth is that it's only ''because'' that function now exists that we're ''inventing'' new ways to use it. Some of those ways are good, and some are very bad. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 07:48, 31 January 2006 (UTC)
:::::::::By your argument, if Wikipedia managed perfectly well before '''templates''' were added to [[Mediawiki]], then we should still be managing fine without them, and all these pesky users inventing new ways to use these troublesome beasts should be disciplined and shown the door. —[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 09:23, 31 January 2006 (UTC)
::::::::The way the community "managed" it before that was to create multiple templates. That caused an even ''bigger'' maintainence problem when something had to be changed, since redundant changes had to be made to a bunch of different boxes one at a time. Now that we have a better way, we ought to use it. And, again, none of this increases complexity for article editors in any way. Wiki-syntax is not rocket science, with or without conditionals. And of course people are going to invent new ways to use the functionality we have. I can't think of a single programming platform where that wasn't the case. Was the [[Commodore 64 demos|C-64 demo scene]] evil? Should the authors of [[BASIC 8]] have been taken out and shot for daring to enable the [[MOS Technology 8563|640x200 hi-res]] functionality that Commodore's BASIC didn't support (and was officially undocumented)? I could go on with these examples all night. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 08:06, 31 January 2006 (UTC)

(unindenting, reply to Crotalus horridus)<br>
Your grand examples don't apply because, as Wikipedians, we are not computer programmers for Wikipedia. Several of us may be in real life, but that only means we have to understand and plan for the significant majority that are historians, linguists, biologists, etc. Yes, we ought to use templates in simple ways for the benefit of those non-technical editors among us. Using conditionals goes against that premise - wikitext is not a programming language, it is [[markup language|markup]]. Let's get creative, and actually talk about solutions to specific templates and decide on a strategy for each one on it's own accord. Sometimes, two templates instead of one is a fine option. Sometimes, using ''no''template is the right way to go. The community has not expressed a desire for conditionals... as far as I see, only about five people on this talk page have -- five people that are probably excellent programmers, but are missing perspective on how such template monstrosities are completely unintellible to the average Wikipedian. I fault myself for making things more complex than necessary, just as much as I fault you all. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:14, 31 January 2006 (UTC)
:As I've commented before: 99% of "conditionals" and "nested templates" and who knows what else is essentially doing the same thing "hiddenStructure" is. In fact, we can probably narrow it even more: the overwhelming majority of conditional use is in place to hide empty rows in infoboxes.
:Therefore, the vast majority of users&mdash;particularly non-programmer ones&mdash;don't really care what the underlying implementation is; they just want their infoboxes to work properly. The hiddenStructure method has some flaws (discussed at great length all over the 'pedia now); these could be easily solved by introducing a server-side version of it. —[[User:Kirill Lokshin|Kirill Lok]][[Wikipedia:Esperanza|<font color="green">s</font>]][[User:Kirill Lokshin|hin]] 17:51, 31 January 2006 (UTC)

:I completely disagree. Conditional logic is '''most''' important for those who are not programmers. In the past they would have to learn table markup and attempt the impossible task of maintaining consistency across dozens or even hundreds of pages. Now they just need to know how to fill out the template call with the right parameters. All of the table rows and CSS formatting is handled by the templates... thanks in large part to conditional logic. Two templates is '''not''' better than one for the users... because then they have to know the names and parameters of the two different templates and when to use each rather than always being able to use one. The more different templates they have to call the '''more''' like a programming language it is for the '''users'''. Greater 'programming flexibility' ''in'' the templates leads '''directly''' to less 'programming' being required to ''use'' the features. The extreme of your position would be to eliminate templates entirely... at which point all those general users have to learn table markup and HTML/CSS formatting code... all of which is in the article itself as a big mess. Adding templates removed the need for general users to learn that stuff. Adding conditional logic to templates removed the need for general users to understand an array of closely related template forks. Yes, the general users have a hard time understanding the code itself of complex templates... but that's no different than when they had a hard time understanding tables and formats directly in the articles. Templates have removed the complexity from the article space and consolidated it into fewer locations for easier management. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 17:57, 31 January 2006 (UTC)

:You are completely wrong, as always in this matter. Behind the people that take care to work on [[WP:AUM]] and its implications are a whole bunch of wikipedians that actually do like to use simple templates like those that actually contain conditionals. The use of qif makes these templates actually much simpler as any set of sub-templates that need to be put together to get something useful. It is also amazing how fast people understand how to use qif and those that are interested also are fast in understanding how qif is implemented, though ''that is not needed'' in order to use any template that uses qif. You simply waste a lot of time of editors with your WP:AUM pushing, especially now that Brion has it downgraded to an essay. I see people going willy nilly all around on wikipedia and doing stupid downgrades of templates rooted in your silly [[WP:AUM]]. Brion has stated that we will get conditionals in code and as far as I and others can see you are the ''only person opposing that''. Please stop your pushing of WP:AUM now and your crusade against templates and your pushing of that ridiculous CSS against Brion and consensus. You are clearly disruptive to Wikipedia with this of your stampedes. I acknowledge that you are very intelligent and that you nearly got your message through with that WP:AUM. But now is the time to stop. If you don't do this now I must assume that you act in bad faith. This is about writing an encyclopedia not about pushing one's own technical POV, which is not based by developer or community consensus. Stop it now. You are simply wasting our time. Finally accept that Brion has vaporized your "beloved" WP:AUM and stop hurting the servers by revert warring on the templates. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 17:58, 31 January 2006 (UTC)

You know how there's [[Godwin's law]]? I'm beginning to think we need a similar guideline about when a discussion should go into time-out based on the indentation level and paragraph length on talk page. ;)

Neto asked me to take a look at [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&oldid=37485378]. I skimmed it quickly; it doesn't look terribly offensive, though I would play down the alleged "server load" and play up the "currently cache clearing of multi-level templates doesn't really work" a touch.

I'd still like to get some basic conditionals into the software, along with hopefully some better definitions on _how_ things like templates expand so we can start nailing down the syntax for future versions and software compatibility. Hopefully we can get that done sooner rather than later. --[[User:Brion VIBBER|Brion]] 02:01, 1 February 2006 (UTC)

== It will never end ==

I propose to stop working on this page here and on the talk for all that do not agree with Netoholic on this. This page here is simply Netoholics private pamphlet and he will continue to use it at as a banner to remove templates and push his CSS hack. It's best to ignore him and this page here. The discussion with him will never end until he has reached his goals. It's simply a waste of time and harddisk space. Good luck to all! --[[User:Adrian Buehlmann|Adrian Buehlmann]] 16:07, 1 February 2006 (UTC)

:Ignoring him would be good for our wikistress levels; but harmful for the encyclopedia. — [[User:Omegatron|Omegatron]] 17:48, 1 February 2006 (UTC)

:Provided conditional logic is built into the system some time soon this will all be largely irrelevant. I'd prefer to get rid of the 'hiddenStructure' method in the interim because we ''know'' it is bad for accessibility (as opposed to 'qif' which is only hypothetically a 'server load' issue), but if the change is going to be "sooner rather than later" as Brion says the short-term disenfranchisement of users shouldn't do ''too'' much damage. If/when conditionals are built in, most 'meta' templates will simply go away as they are replaced by single level 'conditional' templates and even the ''hypothetical'' need for this page will end. So, based on the hope that we '''will''' get built-in conditional logic ''soon'', I agree with Adrian that we should just ignore it. This page is an issue desperately attempting to achieve relevance as it slides into obscurity. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 18:03, 1 February 2006 (UTC)

:: Introducing conditional logic will help in some cases to "Avoid using meta-templates", but there are plenty of other awful implementations out there that have nothing to do with "conditionals". This page will be relevant as long as it's possible to nest templates. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 18:05, 1 February 2006 (UTC)
:::Your view on this matter is decidedly in the minority. Let it go. There's no shame in [[Wikipedia:Off-Wiki policy discussion considered harmful|having one's policy proposal rejected]] by the community. As long as productive discussion happened, then something worthwhile was accomplished. However, this particular discussion is no longer productive at this point, and the same old points are being rehashed ''ad infinitum''. That's why I favor [[Wikipedia:Miscellany for deletion/Wikipedia:Avoid using meta-templates|archiving and protection]] to avoid more sterile arguments. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 18:35, 1 February 2006 (UTC)

== From main page ==

This page is still an active proposal, contrary to whatever tags are being inserted or removed by the non-neutral opponents of it. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 23:49, 2 February 2006 (UTC)

:I've revert back to the one Brion OK'd above. (I see also that Radiant has protected this page) Brion said there are some things that could be improved, and I'm willing to unlock it to that end, but tagging it as historical is simply unacceptable. [[User:Raul654|Raul654]] 04:29, 3 February 2006 (UTC)

::Attempts to improve it (for one, by moving it to a less damning page name) have met with fierce resistance by [[User:Netoholic|Netoholic]]. One need only peruse the talk above and the page history to see that Netoholic is simply pushing AUM as an agenda despite Brion disputing the server load argument (and thus reducing the argument against meta-templates to the more subjective "they're ugly" (can be difficult to read/understand) or "they're fragile" (can break easily if vandalized). If you haven't kept up with the discussion here (or the edits to the page), I strongly suggest you do so before calling the {{tl|historical}} tag "nonsense". —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 04:37, 3 February 2006 (UTC)
:::My understanding is that Brion disagrees with the specific reasons (avoid using metatemplates because they create an undo load on the servers), but agrees with the general principle (avoid using metatemplates) for other reasons. If that is in fact the case, then I agree with Netoholic that the name should stay. (and, for the same reason, that the historical tag is absolutely inappropriate) [[User:Raul654|Raul654]] 04:45, 3 February 2006 (UTC)
::::Your understanding is a <strike>deliberate</strike> misinterpretation <strike>pushed</strike>advocated by Netoholic. The crux of Brion's statements (which actually were initially about image use on userpages; WP:AUM came up later in that conversation) was that '''editorial considerations should not be driven by speculation on server load or other technical issues'''. Brion said (paraphrasing) "Let me worry about the servers, and you worry about creating a great encyclopedia." He went on to say that if specific meta-templates were ugly or fragile, then argue against them on that ground, not just because they're meta-templates. Netoholic simply refuses to accept this. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 06:50, 3 February 2006 (UTC) ''Struck out statement that was on the borderline of [[WP:CIVIL]]. Sorry about that. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 07:15, 3 February 2006 (UTC)''
:::Brion also acknowledged that there are still non-subjective technical problems with meta-templates, that being related to the [[Wikipedia:Avoid using meta-templates#Template links|Template links]] problems. He read the page, and directly said he had no strong objections, so it's not appropriate to say Brion has done anything to "vaporize" this proposal. For example, you interpret "they're fragile" as "can break easily if vandalized". I read his comments and it seemed to me he means "very likely to break if template syntax changes". Stop saying what you ''think'' he means and get his actual input. He seems very responsive. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 06:12, 3 February 2006 (UTC)
::::<strike>Sigh. You just don't want to hear anything that contradicts your fixed views. The most important part of Brion's statement, IMO, is that editorial considerations shouldn't be driven by speculation about server loads, that this was the job of the developers and that our job is to create an encyclopedia. If nested templates help us do that, then we should use them. It should be possible to reduce their use soon when we get conditionals in the software, but until then, {{tl|qif}} is the best solution we have. '''The community does not want this as either a policy or a guideline'''. We can either use {{tl|historical}}, {{tl|rejected}}, or {{tl|essay}}, but any tag that suggests that this has any binding effect on Wikipedians is wholly inappropriate. You are already using this page as an excuse to make changes against consensus [http://en.wikipedia.org/w/index.php?title=Template:USCA_Coops&diff=37960809&oldid=37934284]. So far, you've gotten your way on this issue by making a lot of noise and refusing to take "no" for an answer. This must stop, and immediately. You aren't in charge here - the community is. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 06:48, 3 February 2006 (UTC)</strike> Comment redacted; it is not likely to help advance this discussion in a productive way. My apologies for this ill thought out statement. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 07:14, 3 February 2006 (UTC)

Based on Brion's comments cited by Crotalus (esp "You should avoid metatemplates if they're ugly, hard to use, or fragile. That's just common sense; don't worry about "server load" for them.") I've unprotected this page. I don't think a historical or rejected tag is in order, but a major cutdown probably is. [[User:Raul654|Raul654]] 18:52, 3 February 2006 (UTC)

: This page is expressly against templates, and Neto won't let it be altered to anything else. The only reason this page was ever accepted or made policy was because of the server load issue, which wasn't really an issue in the first place. It should be marked as historical. Anything still related to nested templates or conditionals belongs on [[Help:Advanced templates]]. — [[User:Omegatron|Omegatron]] 19:32, 3 February 2006 (UTC)

:: It's not anti-template, and neither am I. The page is a style/usage recommendation, not a "how to use" Help: page. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 19:56, 3 February 2006 (UTC)

== minor change request ==

anyone mind changing "It fails if CSS is disabled or not supported" to "It fails if CSS is disabled, not supported or simply fails to load due to server/network issues". Browsers (at least firefox) don't seem to throw any error if the stylesheets fail to load but simply go right ahead and render the page without css! [[User:Plugwash|Plugwash]] 04:47, 3 February 2006 (UTC)
: "Fails to load"? How often does that happen? I suppose ''much'' of the website would not work properly if that happened. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:04, 3 February 2006 (UTC)

:: ''All'' of the web site would work if that happened (apart from templates using the CSS hack)—it's called ''Myskin''.

:: It has happened to me on individual page loads on very rare occasions. ''—[[User:Mzajac |Michael]]&nbsp;[[User talk:Mzajac |Z.]]&nbsp;<small>2006-02-03&nbsp;06:59&nbsp;Z</small>''

:::If you access wikipedia for the first time from a machine whilst its in its glacial state it seems to be pretty likely for the first page load. its rare after that because once in the browser its cached for quite some time. [[User:Plugwash|Plugwash]] 16:02, 3 February 2006 (UTC)

::: Seems like this is a fairly minor/rare issue that isn't directly related to the hiddenStructure method itself. Adding it would require even more clarification on how it "fails to load", which distracts from the real point - that not all browsers support CSS. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 19:56, 3 February 2006 (UTC)

== Test ==

I have [[Wikipedia_talk:High-risk_templates#Faulty_Basis?|suggested]] that we perform a test to settle once and for all whether edits to widely used templates pose a significant server load risk. If we edit several 'high risk' templates (and then revert them right back) we will see once and for all the truth of the situation. Please share your views on the talk page linked above. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 19:45, 3 February 2006 (UTC)
:This type of stress testing isn't the best thing to throw at a production system just to prove a point. The developers can try this on a test system if they want to benchmark. [[User:Xaosflux|<b><font color="#FF9933" face="monotype"><big>xaosflux</big></font></b>]] <sup>[[User_talk:Xaosflux|<font color="#00FF00">Talk</font>]]</sup><font color="#888888">/</font><sub>[[Wikipedia:Counter Vandalism Unit|<font color="#666666">CVU</font>]]</sub> 23:29, 3 February 2006 (UTC)
:: Yeah. That's pretty obvious [[WP:POINT|disruption to (test) a point]], isn't it? We certainly wouldn't want someone "testing" whether the system could handle DoS attacks. Brion said to leave server load problems to the developers and not concern ourselves with them. They can run benchmarks on a test wiki. — [[User:Omegatron|Omegatron]] 00:04, 4 February 2006 (UTC)

As someone who develops production server applications for a living and routinely performs 'live' stress tests this seems ''very'' strange to me, but it also appears to be the common reaction so... oh well, we will continue 'reading tea leaves' on whether nested-templates cause significant server load issues or not, hypothetically 'unsafe' numbers of transclusions, et cetera. On the 'POINT' bit... look around. We've '''got''' disruption. Rather a lot of it. Any disruption caused by a stress test would be insignificant in comparison and might serve to finally settle the matter... and that's only assuming the test ''failed'' and actually caused some noticable level of disruption. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 00:09, 4 February 2006 (UTC)
:Didn't this already happen, when {{tl|if}} was "blanked" back in [[December 2005]]? IIRC the time taken for the servers to recover from the hit caused by that was about 15 minutes. HTH HAND —[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 12:12, 6 February 2006 (UTC)

== [[Red herring]] ==

How long goes it this time until we have a policy tag on this [[m:Instruction creep|instruction creep]]: "All new policies should be regarded as instruction creep until firmly proven otherwise"? Please do not anser me. I'm a troll. I usually try to vote away server load. This is round #2. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 23:55, 3 February 2006 (UTC)

== Proposal? ==

I see this is again tagged as a proposal. if this is an active proposal, we all have had lots of time to see the implications and effects. I call for an immediate poll on it, and the application of {{tl|rejected}} should consensus not be achieved. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 23:59, 3 February 2006 (UTC)
*I vote away the server load as instruction creep. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 00:07, 4 February 2006 (UTC)
*<s>A poll right now would probably be a bad idea: the page presents the lopsided view that meta-templates are still evil. It would be nice if the page [[WP:OWN|owners]] would let another view be shown besides their own. FWIW, I ''strongly support'' {{tl|rejected}} being on the page.. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 00:30, 4 February 2006 (UTC)</s>
*If it's a propoal that eitehr it should be editable to find a consensus view (which it seems it is not at the moment) or else it is ribe to determine whether consensus currently exists for this. (I think it alomst surely does not.) If anyone can suggext a better way to determine consensus in this isntance than a poll i am very intersted. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 00:37, 4 February 2006 (UTC)
**I withdraw my objection to a poll. Feel free to set one up, anything to put an end to this (for good or ill) would be warmly welcomed. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 00:50, 4 February 2006 (UTC)

I would prefer we wait on hold a poll until the page can be stabilised on a version which represents the premise in all its glory. Let me and others who actually support the proposal work on it without interference. If people think it is doomed to fall on its face, then there is no harm in letting us misguided folks work on it. We can only make it worse, right? -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 01:30, 4 February 2006 (UTC)

== Classification ==

From only having a slight interest in this page, it seems that:
*There is not a consensus or foundatin issues for making this a policy.
*There are at least some portions of this page that describe '''best practices'''.
*There are portions of this page that may no longer be needed.
*This page belongs in a category related to our proceedures.
**There is no consensus as to what category this may be.
**This categorization may be dependant on edits relating to the prior bullet points.
[[User:Xaosflux|<b><font color="#FF9933" face="monotype"><big>xaosflux</big></font></b>]] <sup>[[User_talk:Xaosflux|<font color="#00FF00">Talk</font>]]</sup><font color="#888888">/</font><sub>[[Wikipedia:Counter Vandalism Unit|<font color="#666666">CVU</font>]]</sub> 00:04, 4 February 2006 (UTC)

:Personally, I think that what ever is not disuted by the developers still makes sense (ie. using a meta tempalte where equal functionality can be had without using it is a good thing) should be left in, and this should be a style guideline for templates. [[User:Xaosflux|<b><font color="#FF9933" face="monotype"><big>xaosflux</big></font></b>]] <sup>[[User_talk:Xaosflux|<font color="#00FF00">Talk</font>]]</sup><font color="#888888">/</font><sub>[[Wikipedia:Counter Vandalism Unit|<font color="#666666">CVU</font>]]</sub> 00:04, 4 February 2006 (UTC)

:: I disagree. The only problem I see with complex templates is their complexity (and the imaginary server load problem, which Brion has said is not our responsibility anyway). I think the benefits (simpler article source code) far outweigh the complexity argument. — [[User:Omegatron|Omegatron]] 00:08, 4 February 2006 (UTC)

::: Forget about server load... no one is pushing this based on server load anymore, so that's a [[false premise]]. You're also making a [[hasty generalization]] about how this guideline proposal applies and presenting a [[false choice]] between article source simplicity and complex template code. Template come in many varied forms, and the solutions to template complexity do not always lead to complex article source. Each template use must be examined on its own, and the options weighed based on some general good practices. The option of using nested meta-templates has some drawbacks that are not immediately apparent, and if we are going to accept those drawbacks it needs to be after we've examined many alternatives. That's all this page is meant to suggest as an approach. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 04:56, 4 February 2006 (UTC)

::::Personally I don't see any of the other issues as particularly serious. Drawbacks yes, but I'd take them over the decreased accessibility of 'hiddenStructure' any day. Also, the page seems to have rather alot about the 'server load' that no one is pushing anymore. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 05:19, 4 February 2006 (UTC)

::::: Even Brion didn't ask to remove all of the server load section. He's confirmed that certainly two templates use more database reads than one, and that any edit of a high-use template could cause short-term problems. Jamesday, who is a database developer and really shouldn't be ignored, also expressed this. Brion hasn't seen proof of a problem, and he wants to own the problem if it presents itself. The question is one of scale and it is still not answered fully, so still has a (tasteful) place on this page. It is no longer #1 reason to AUM, but it's in there as a concern. Templates aren't vandalised too terribly often either, but the ''concept'' is one to be wary of... the same goes for server load. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:31, 4 February 2006 (UTC)

:::: ''Each template use must be examined on its own, and the options weighed based on some general good practices.''
:::: This looks like a veiled attempt to shift this debate to every template you come across and dispute. [[meatball:ForestFire|Forest fires]] anyone? No thanks. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 05:23, 4 February 2006 (UTC)

::::: That is an assumption of bad faith. The best way to prevent a ForestFire is to have a central place to talk. This page serves that purpose, or a "Template workshop" WikiProject could work, too. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:31, 4 February 2006 (UTC)

:::::: You've exhausted all good faith I had in your intentions, I'm sorry I didn't specify earlier: I am no longer assuming good faith in regard to ''any'' of your actions. And you're right, the best answer is a central location, but you insist on [[WP:OWN|owning]] it with your favored version. That is unacceptable. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 05:35, 4 February 2006 (UTC)

:Your best practices aren't needed. Use my common sense. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 00:06, 4 February 2006 (UTC)

== Happy Anniversary! ==

[[Image:Birthday cake.jpg|thumb|200px|right|Happy Birthday [[WP:AUM]]!!]]

I'd just like to point out that this page was created on February 4th, 2005.

We've been fighting about this for an entire year now. How time flies... :-) — [[User:Omegatron|Omegatron]] 00:23, 4 February 2006 (UTC)

<div style="clear: both;"></div>
== Protected ==

I'm sure we all have something better to do than argue over whether this is policy, guideline, essay, historical, rejected, controversial, or smelling faintly of roses. Kindly stop edit warring about it. [[User_talk:Radiant!|<b><font color="#DD0000">&gt;<font color="#FF6600">R<font color="#FF9900">a<font color="#FFCC00">d<font color="#FFEE00">i</font>a</font>n</font>t</font>&lt;</font></b>]] 00:57, 4 February 2006 (UTC)

: My edits were to re-add the changes which Brion suggested after he reviewed it. CBD changed the premise and substantive content of the page in several places. LockeCole is just baiting a revert war (read the edit summaries). -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 01:01, 4 February 2006 (UTC)

:: And you were engaging in a revert war. You always have a choice. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 01:05, 4 February 2006 (UTC)

:: We don't need your, or Brion's, permission to modify this page. Please keep that in mind. Brion did not rubber-stamp your version, nor did it get stamped with some magical gold seal that stops others from being able to contribute. You do not [[WP:OWN|own]] this page. Maybe you missed it, but there's a lot of people who disagree with the basic premise of this page. I see now that your request for a review by Brion was just an attempt to get that "developer mandate" back that you lost two weeks ago... —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 01:12, 4 February 2006 (UTC)

::: So which is it.... is this page ''my'' essay (if so, why are you worried about what it says?). Criticisms were raised that several people were misinterpreting the devs words, so I asked for his input directly. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 01:25, 4 February 2006 (UTC)

::(edit conflict-twice) Netoholic, please stop 'interpreting' Brion, speaking for him, and/or claiming to be acting on his behalf or instructions. If Brion wants something done or said I'm certain he is more than capable of doing so himself. As to my edits... I was correcting what appear to me to be inaccuracies and biases in the page. I listed the page as a proposed policy and left in place the suggestion that nested templates be 'avoided' just not to the extent (excessive in my view) you are arguing for. In any case, please [[WP:AGF|AGF]] and follow [[WP:NPA|NPA]]. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 01:13, 4 February 2006 (UTC)

::: I am not speaking for Brion. I asked him to review this, and he did. He also [http://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Avoid_using_meta-templates&diff=37614376&oldid=37544987 suggested] some changes, which my edit incorporates. Your edits are designed to muddle this page, and change the the focus away from the suggestion to "avoid using meta-templates". Go write up a [[Wikipedia:Weeble]] page and expound on its virtues, don't use this page to advertise a technique which is in opposition to the premise. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 01:25, 4 February 2006 (UTC)
::::If this is to be a focused essay with a single premise, then fine. but then it cannot be a proposed guideline. A guideline is soemthing seeking broad community consensus, adn is open to changes, even fundamental changes in persuit of consensus, IMO. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 01:32, 4 February 2006 (UTC)
::::Setting aside the usual claims of 'nefarious motives'... Netoholic, I was not seeking to 'promote' weeble. I barely touched the 'weeble' section of the page and, at that, ''added'' information about it's most significant drawback. Your statement that it is "in opposition to the premise" of 'avoid using meta-templates' is incomprehensible to me, as you are well aware that the '|if=' parameter (aka 'weeble') method can vastly reduce or completely eliminate meta-template usage. That and my other edits were entirely '''consistent''' with 'avoid' using meta-templates. I think meta-templates ''should'' be avoided... but not banned for all but the rarest of circumstances. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 01:51, 4 February 2006 (UTC)

::::: Avoiding meta-templates by using a more complex and harder to implement method is not a recommendation this page should make. As I said, please document that method somewhere else, and add a link here. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:35, 4 February 2006 (UTC)

:::::: Please '''cease''' the [[WP:OWN|ownership]] campaign you've undertaken on this page. It's '''not''' your playground. Telling people to "go to another page" is being ignorant of your opposition and is totally unacceptable. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 05:37, 4 February 2006 (UTC)

::::::: How nice. People have accused me of promoting [[Wikipedia:hiddenStructure|hiddenStructure]], and yet what I wrote on this page was critical of the method. By splitting the arguments about that method out of this page, it makes things much better. If Weeble were so documented, this page would be critical as well, but provide a link to that documentation. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:55, 4 February 2006 (UTC)

Listen, seriously, some people really need to take a step back and chill the hell out before this is discussed anymore. This isn't about who won x and x a fight x and x weeks ago and who's interpreting for whom or any of the venom that is being back and forth here. Take a step back from the keyboard, grab a beer, a shot, Pepsi, I don't care what the heck it is but just friggin relax. You would think the Earth would tumble off its axis if this was one way or the other if you took the time to kill brain cells reading this. --[[User:Wgfinley|Wgfinley]] 01:35, 4 February 2006 (UTC)

==Use of conditionals in infoboxes==
''Note: This has been posted both to [[Template talk:Infobox]] and [[WT:AUM]]. I've done several reverts on [[Template:Infobox]], and I want to make my own position on the matter clear, rather than just blindly reverting without an explanation.''
Most of the general talk about "meta-templates" obscures a simple fact. The overwhelming majority of meta-template usages are conditional templates, chiefly {{tl|qif}}, and the overwhelming majority of conditional usages are for one single purpose: to hide empty sections in infoboxes. According to Brion, there is currently work underway to add native support for conditionals into the MediaWiki software; when this is done, it will clearly be the preferred way to do this, and {{tl|qif}} can then be deprecated. Until that happens, though, we need to have a backup plan. There are currently three primary options:
#Use qif.
#Use the hiddenStructure hack.
#Fork a single infobox into multiple templates.
(2) is unacceptable because it generates horrendous HTML and breaks some client software, including screen readers. (3) is even more unacceptable because it results in a maintainence nightmare (whenever someone wants to change the base infobox design, they have to remember to do so across multiple pages). Furthermore, (3) places more of a burden on ''article'' editors. With a well-designed conditional infobox, empty fields will simply be ignored, so users of the infobox need only omit the parameters that are unused; this is quite intutive. In contrast, forking means that editors must remember multiple template titles and spend time figuring out which one to use. By optimizing for ease of editing on the templates themselves (and, as pointed out above, it doesn't even do that very well) we are hurting ease of editing on articles, which affects far more editors.

Therefore, option (1) is the best alternative we currently have. It's not ''that'' difficult for an intermediate HTML programmer to understand, and it offers by far the best experience to the article editor and end user - who ultimately must take precedence. This will hopefully all be moot before long, but this is why the references to qif should stay in [[Template:Infobox]]. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 06:38, 4 February 2006 (UTC)

: To avoid a [[MeatBall:ForestFire]], please follow-up discussion about whether to use conditionals at [[Template talk:Infobox]]. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 06:45, 4 February 2006 (UTC)

:As a wanna-be coder and consensus fool I support this. But I have said this numerous times already. This eassay here is just a masterpiece of techno-[[FUD]], desinged to be used to win edit wars on templates with edit summaries like "rm meta-templates per [[WP:AUM]]. Don't revert! This is a policy!". Make some unproven FUD claims ("meta-templates are evil"), hack them up on an WP page, slap "proposal for guideline on it", let the fools fight and demonstrate how they are unable to prove that your claims are wrong, wait until some admin slaps "policy" on it and then you have the perfect sledge hammer. Neto, I must say you are a genious, honestly. But you fail on one important point: the duty of prove is on your side that this essay here is needed. Until then it is pure instruction creep. This whole thing is no longer about writing an encyclopedia. Happy birthday [[WP:AUM]]! --[[User:Adrian Buehlmann|Adrian Buehlmann]] 08:12, 4 February 2006 (UTC)

::It was also, on the basis of the evidence available at the time, fully justified. Your incivil tone may be indicative of the level of the controversy and of the dispute, but it is not thereby justified. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 17:06, 5 February 2006 (UTC)

:::I apologize for the tone. But not for the content. The leniency that has been shown in the past on tonality was indeed remarkable. One might even argue that tonality does not count when enforcing policy. Thank you for reminding me that this is not the "house" style. I'm confident that you will keep an eye on this aspect on all involved parties equally well. Per the evidence, I could say that in fact there was none. The whole crusade was based on hearsay like "the devs have said: beat qif with a stick", which seems not to be much of a convincing evidence. Deriving policy from ugliness on a technical matter is not such a good idea. But that would be rather something for the wiki-forensic departement, given the willingness of Brion to incorporate a conditional function into MediaWiki. I think we have enough fuel for this perpetuum immobile here even when restricting our views to the future only. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 19:15, 5 February 2006 (UTC)

:::: Developer [[User:Jamesday]] said directly - "''[http://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Avoid_using_meta-templates&diff=31881003&oldid=31876792 Please instead work at reducing the use of qif to reduce the harm.]''". There is no hearsay, and he spoke ''specifically'' about Qif. I know for a fact that I have pointed this out several times, so will you please confirm that you've read this? This ''was'' the mandate we had at the time. If I hear anyone say anything different, I am going to (FIGURATIVELY) stamp this quote onto my shoe and kick them in the face until they can read it in a mirror. Before we can move forward on this page, people need to stop assuming bad faith on the part of the Arbitrators that promoted this to policy-status, and those that worked to educate people and enforce the policy, based on this direct developer request. You are flat out wrong that any "hearsay" was involved. That being said, we have new information and are trying to move forward. Dredging up an incorrect version of the past in order to fuel current disagreements is unwelcome. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 07:28, 6 February 2006 (UTC)

:::::Ok then, wiki-forensic again: Yes, Jamesday requested to work reduce the harm of qif. But may I ask you to look carefully ''when'' this happened and what happended before? And what did I do ''after'' he had said this? And as per Jamesday: what is the harm caused by qif? It is not the fact that it is a meta-template as Brion said ''we shall not care about server load and templates''. And as per the tonality: thank you for your "kick in the face" (I dispense with further evidences from my talk page as I do not waste my time with this kind of kindergarten). As per "Dredging up an incorrect version of the past in order to fuel current disagreements is unwelcome": besides the "incorrect" I agree with you. May I ask you to stop taking this thing here personally? I have saveral times explicitly agreed with you on technical claims that you brought up. I'm looking forward to having conditionals in MediaWiki as Brion has announced (and which you oppose). In the mean time, please do what ever you think is needed for the well-going of Wikipedia. I reserve the right to review your work as soon as we have built-in conditionals. Thank you. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 08:54, 6 February 2006 (UTC)

:::::: Everyone who worked based on the "server load" directive from Jamesday was absolutely correct in that what they did at the time. The fact that Brion later provided new information does not suddendly discredit or devalue that previous work. Using new information to attack old actions is the [[historian's fallacy]]. Please stop bringing it back up over-and-over again, because you are misinforming new readers of this page, and just plain being divisive. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 09:13, 6 February 2006 (UTC)

== Feb 11 changes by CBD ==

In [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&diff=39230630&oldid=39227350 this edit], CBD removed a section describing a problem which has not been fixed. While recently improvements were made to how Whatlinkshere works, in general, with templates, this does not change when speaking strictly about meta-templates. Please read the section carefully, and do your own experiment.

In [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&diff=39231205&oldid=39230630 this edit], he removed several bits about server load. The processing that is required on the back-end is completely supported by dev comments -- what is unclear is to what degree that extra processing actually affects things, please don't confuse the two ideas. The current page already touches very lightly on the server load subject, without going overboard.

In [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&diff=next&oldid=39231205 this edit], CBD changed the "POV" of the section. NPOV rules only apply to articles, not this page which is describing a specific position. The difficulty "to implement in conjunction with Wiki table markup" is tangential at best. In the "Blank parameter (aka "Weeble")" section, CBD changed this from being critical of that practice to one describing how easy it is to implement. That is the wrong perspective for this page, since we are seeking to keep both article source and template source as simple as possible. I've ask CBD many times to create a descriptive page (like [[Wikipedia:hiddenStructure]]), which we could then link from here. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:00, 14 February 2006 (UTC)

: *still amazed you think you can drive your opposition off to another page when it's clear there's little, if any, consensus for this page* —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 05:05, 14 February 2006 (UTC)
:: Are you going to just attack me and revert war, or actually present some argument about the topics above? I would not be posting here on talk if I wasn't seeking consensus. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:07, 14 February 2006 (UTC)
::: Is it your intent to continually bring this "issue" up every few days/weeks until you get your way? —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 05:13, 14 February 2006 (UTC)
:::: Which issue are you referring to - one of the ones I posted above about the content of the page, or my comment about you? -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 05:17, 14 February 2006 (UTC)
::::: The content of the page, of course. I'm not the one with a problem here.. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 05:48, 14 February 2006 (UTC)
:I see no point in creating another page for the '|if=' method. That, like the 'hiddenStructure' writeup and this page itself, would eventually be made obsolete by true conditionals. In the meantime I was simply correcting inaccuracies and biases in how information was presented on ''this'' page. Even if another (redundant) page ''were'' created there would still be no reason to show false or slanted information here. You say 'NPOV' doesn't apply because this is a 'position' document... how can a biased position be made policy? If it isn't balanced/accurate there is no point. If you want this page to simply reflect your opinion rather than facts or consensus then don't list it as a proposed policy... it is an essay and really belongs in your user-space. On 'Whatlinkshere' the remaining issues seem fairly trivial. The continued insistence on including (and exaggerating) the 'server load' issues seems wholly contrary in the face of your prior claim to no longer be concerned with those in regards to [[WP:AUM]]... if you no longer think they are a reason driving this proposed policy then why are they such a major, and inflated, part of the write-up? --[[User:CBDunkerson|CBDunkerson]] 09:28, 16 February 2006 (UTC)
:: It's really impractical to reply to multiple things at once. How about picking one issue at a time and discussing it? One general point that I want to reply to is your idea of "bias". While I agree a policy page should be accurate, I disagree that policy must be balanced. Take [[WP:NPA]], some people, I'm sure, have different opinions on what constitutes a personal attack and what is tolerable (from rudeness to swearing to threats). Should a policy page describe ''all'' the opinions? I think that would make any policy page's message most confusing. This page's assertion is focused on saying solidly "Don't use confusing and fragile meta-template schemes. Here's why. There are other methods, but they all have problems too. Consider carefully." I do not ultimately care whay "status" (guideline/policy/nothing) people will eventually assign this ... all I care is that its position is clearly presented. Your "balanced" ideas might be better on [[Wikipedia:Transclusion costs and benefits]] - a page that is descriptive and takes no position. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 09:44, 16 February 2006 (UTC)
:: No one has replied to this last comment above in 10 days, so I've re-done my changes. I remain willing to discuss them point-by-point to find common ground. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 15:00, 28 February 2006 (UTC)

== Policy is too extreme ==

This policy is too extreme. Crazy even. I agree with using meta-templates as little as is practical - but sometimes it is much better to use them than not. For instance, {{tl|qif}} is in templates necessary because it so much better than the alternatives. Any CSS-hack like [[Wikipedia:hiddenStructure]] is not an option, since it breaks the site for many browsers. Every other alternative makes templates even harder to maintain. [[User:Gracefool|··gracefool]] |[[User talk:gracefool|&#9786;]] 12:28, 10 February 2006 (UTC)
:: You're working off a broad assumption that conditionals are "necessary" and that the only alternative is the CSS hack. We all want templates that are easier to maintain, but the solution is not going to be the same across the board. Each case is different and requires solid planning and investigation. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 15:40, 15 February 2006 (UTC)
:::True. I was thinking of complex meta-templates (which should be as easy to read as possible). Yes, I think complex meta-templates are a good idea. [[User:Gracefool|··gracefool]] |[[User talk:gracefool|&#9786;]] 03:39, 16 February 2006 (UTC)
:I don't know if you've kept up with recent changes, but this is no longer policy, it's not even a guideline. Any changes made with this page as justification should be disputed for the reasons you set out above. (Read up this talk page for details on how this page was demoted from policy, as well as the arguments since then addressing your concerns with browser breakage/accessibility). —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 08:49, 15 February 2006 (UTC)
::Thanks, I've read it. It's a ''proposed policy'' &mdash; a kind of policy, though disputed :p [[User:Gracefool|··gracefool]] |[[User talk:gracefool|&#9786;]] 03:39, 16 February 2006 (UTC)

==Netoholic citing this page again==
As I feared, Netoholic is again using this page as an excuse for reverting to poorly implemented CSS hacks, as seen [http://en.wikipedia.org/w/index.php?title=Template:Infobox_Software&curid=1420324&diff=41578124&oldid=41576572 in this diff]. Unless there is significant objection, I will be placing {{tl|rejected}} on this page in the next day or so, because there's been zero activity recently, and for as long as this page has existed it's been rejected repeatedly by other editors. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 06:59, 28 February 2006 (UTC)

: I think you know there is significant objection to marking this rejected... until you can show the community has made such a determination. I see plenty of people citing this as a guideline on TFD and in the course of regular template editing... I only see a few people opposing it. As for whether or not I cite this page... I will continue to do so to raise awareness among fellow template authors. It is better than cluttering up the summary or the template talk page with an explanation that is better presented here for centralized discussion. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 07:15, 28 February 2006 (UTC)

::You've manipulated the system long enough, Netoholic. You claimed that you wanted this to serve as a new proposal, and I believed you. Since then, you've made no attempt to gauge consensus, because you prefer to coast by on ambiguity (knowing that the proposal has little chance of succeeding).

::You're well aware of the fact that the page's primary reason for existence (the developers' supposed stance) has been removed from the equation, so you've attempted to retrofit your creation into something that can remain afloat (while staying as close as possible to the original text, against the wishes of those who would prefer a broader focus).

:: You have no legitimate basis for citing your personal essay as a de facto guideline. If you wish to save your baby, please assemble a straw poll. (I'm giving ''you'' the opportunity to do so, thereby avoiding accusations of unfair wording on my part.) If you refuse to comply, I'm afraid that {{tl|rejected}} is the only tag that fits. It's your call... &mdash;[[User:David Levy|David Levy]] 14:11, 28 February 2006 (UTC)

::: I'd love to. The only problem I see is that the opposers of this page simultaneously water it down and insist on a formal polling process. I also hate the idea that this is seen as "my" page and "my" responsibility. I never promoted it beyond "proposal" - that was done by others. I want this to be widely accepted, the only problem is that it's an esoteric concept and had to find people who feel strongly enough to get involved. By it's nature, the only passionate people that come here are those who've created bad template schemes. (note: I've only commented on tyour last point, because your first two are either completely false or simply ''[[ad hominem]]''.) -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 14:49, 28 February 2006 (UTC)

::::What do you suggest? That this page should serve as a permanent "proposal" (while carrying the weight of a guideline), because most of the community is incapable of recognizing its wisdom? That's unacceptable.

::::This is perceived as "your" page because you behave as though you [[WP:OWN|own]] it&mdash;attempting to retain strict editorial control and attributing its failure to the interference of others.

::::At this point, I fully support the idea of allowing the community to judge '''your''' preferred version of the page (or both versions, if the alternative version's proponents wish to proceed). Otherwise, there's no justification for stringing this along as a "proposal," as you aren't really ''proposing'' anything. (It's more of a declaration than anything else.) &mdash;[[User:David Levy|David Levy]] 15:25, 28 February 2006 (UTC)
:::::I agree with David. Just how long, Netoholic, do you plan on keeping the "proposed" tag in place? It can't be indefinitely; that's unacceptable. Ultimately it will either have to be accepted as {{tl|policy}}, which is very unlikely to happen given the lack of community consensus or developer mandate, or it will have to be {{tl|rejected}}. Alternatively, it could be branded an essay, and in that case it should probably be userfied, especially given Netoholic's desire to [[WP:OWN]] the page. The current situation is untenable. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 17:11, 28 February 2006 (UTC)
:::::Also, can someone explain to me why Netoholic's [[Wikipedia:Requests for arbitration/Netoholic 2|probation]] is not being enforced? He's not supposed to be editing here at all until May 2006. If he was making useful and productive edits, I could understand overlooking the literal terms of his probation, but all I've ever seen him do on any Wikipedia: and Template: related pages is revert war &ndash; which is the exact behavior that got him that remedy in the first place. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 17:15, 28 February 2006 (UTC)
::::::In fact, he's just been [[Wikipedia:Administrators' noticeboard/3RR#User:Locke Cole|blocked for 48 hours]]. &mdash;[[User:David Levy|David Levy]] 17:22, 28 February 2006 (UTC)
:::::::That's good to know. I'm glad that his probation was enforced this time, and I hope that he will refrain from attempts at policy pushing against consensus in the future, especially by means of revert warring. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 17:37, 28 February 2006 (UTC)

I object to the rejected tag - there is still some important content to this page. The CSS hacks are not good either, but the fact that we ought avoid meta-templates, CSS hacks, and other non-transparent things does remain true and important. Wikipedia is supposed to be editable by anyone, not just coders. [[User:Snowspinner|Phil Sandifer]] 18:40, 28 February 2006 (UTC)

:That's your ''opinion''. However, many others disagree with you on this, and since there is no longer a mandate from the developers (nor does this relate to any core Foundation issues), community consensus must control. And there's no evidence that the community consensus is, or ever will be, in favor of this proposal. There seem to be about half a dozen staunch supporters, maybe a dozen strong opponents, and the rest of Wikipedia really doesn't much care. This amounts to no consensus. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 20:27, 28 February 2006 (UTC)

:The forthcoming native support for conditional templates will render this entire issue moot. In the meantime, Netoholic is using stall tactics as a means of keeping this "proposal" alive along enough to cite it as a basis for forcing the adoption of the aforementioned CSS hacks (which are far more harmful). &mdash;[[User:David Levy|David Levy]] 18:55, 28 February 2006 (UTC)

::You're reading Netoholic's mind now? [[User:Snowspinner|Phil Sandifer]] 18:58, 28 February 2006 (UTC)

:::No, I'm stating facts. Netoholic has resisted all attempts to gauge consensus (or lack thereof), and he is citing this page in his edit summaries when restoring the CSS hack (which Brion Vibber has deemed harmful) to templates: <span class="plainlinks">[http://en.wikipedia.org/w/index.php?title=Template%3AInfobox_Software&diff=41578124 1] / [http://en.wikipedia.org/w/index.php?title=Template:Infobox_Software&diff=41578824 2]</span> &mdash;[[User:David Levy|David Levy]] 19:22, 28 February 2006 (UTC)

==Guideline==

I've hacked out the inaccurate stuff from this page and set it to guideline - simply put, there is widespread concern and sense that making pages uneditable except to experienced users and vandalism magnets is BAD. If the sole problem with the page is that Netoholic is using it inappropriately, the page is not the thing to change. [[User:Snowspinner|Phil Sandifer]] 19:03, 28 February 2006 (UTC)

:Until it's established that this page is backed by consensus, it is ''not'' a guideline. I'm not certain, but I believe that some of the remaining claims are disputed. &mdash;[[User:David Levy|David Levy]] 19:22, 28 February 2006 (UTC)

::I would like to see some dispute - transparent editing and avoidance of disastrous vandalism seem to me very fundamental issues. [[User:Snowspinner|Phil Sandifer]] 19:25, 28 February 2006 (UTC)

:::These are editorial decisions. Since this page is no longer a developer mandate, it's inappropriate to elevate it to "guideline" (much less "policy") status without any community consensus. I'd like to see some actual evidence of the "widespread concern" that Snowspinner cites. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 20:27, 28 February 2006 (UTC)

:::I might be mistaken, but I seem to recall someone claiming that some or all of the statements from the "Template links" section are outdated and no longer applicable. &mdash;[[User:David Levy|David Levy]] 19:31, 28 February 2006 (UTC)

::::I thought I'd killed that section. There. :) [[User:Snowspinner|Phil Sandifer]] 19:38, 28 February 2006 (UTC)

Edit warring over the status of this page, and the tag used to describe it, is very, very silly. I attempted to compromise on a "tag" that would capture the current state of dispute, but that didn't last long. How about some discussion on the merits of the whatever-it-is before any more reverting? [[User:Android79|<span style="color:#072764">android</span>]][[User talk:Android79|<span style="color:#c6011f">79</span>]] 19:40, 28 February 2006 (UTC)

:I like your tag quite a bit, actually. [[User:Snowspinner|Phil Sandifer]] 19:55, 28 February 2006 (UTC)

::Fine with me. Now let's see if it cools off Netoholic's disruptive editing. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 20:27, 28 February 2006 (UTC)

::I have reworded it to be less clunky. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 23:01, 28 February 2006 (UTC)

''making pages uneditable except to experienced users is BAD''
: So you agree that using templates to simplify complex markup and insertion of content is a good thing? :-) — [[User:Omegatron|Omegatron]] 00:29, 1 March 2006 (UTC)
::Exactly. {{tl|Qif}} is *less* opaque than its alternatives. Obviously, native conditionals, when implemented, will be better still. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 00:52, 1 March 2006 (UTC)

==Straw poll==
I thought, perhaps why not make a straw poll to see how the people stands. <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 20:37, 28 February 2006 (UTC)
:I've made an attempt at widening the discussion by placing notices at [[Template:Cent]] and [[Wikipedia:Village pump (policy)]]–
::[http://en.wikipedia.org/w/index.php?title=Template%3ACent&diff=41677921&oldid=41676536 Template:Cent notification]
::[http://en.wikipedia.org/w/index.php?title=Wikipedia%3AVillage_pump_%28policy%29&diff=41678253&oldid=41676275 Wikipedia:Village pump (policy) notification]
:If anyone places notices anywhere else, please feel free to update this list. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 00:33, 1 March 2006 (UTC)

===Accepted (guideline or policy)===
#

===Rejected===
# <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 20:37, 28 February 2006 (UTC)
# [[User:David Levy|David Levy]] 20:40, 28 February 2006 (UTC)
# For reasons I have stated numerous times previously on this Talk and elsewhere. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 20:51, 28 February 2006 (UTC)
# seems pretty clear to me. <b>...&nbsp;</b><span style="background-color: #11cbc4; width: 52px; height: 16px; font-size: 12px; p { text-align: center; font-face: Times New Roman} ">[[user:avriette|aa]]:[[user talk:avriette|talk]]</span> 21:05, 28 February 2006 (UTC)
# --[[User:CesarB|cesarb]] 22:15, 28 February 2006 (UTC)
# If this here means going willy nilly extincting every qif at all cost despite knowing we will get a MediaWiki built-in conditional function, then I reject it. I also reject it if it has "Generally accepted by editors" or guideline/policy tag. I also reject it if this means replace qif on the [[:category:Infobox templates|Infobox templates]] with [[Wikipedia:hiddenStructure]] or nothing at all. But that doesn't mean we should pile up layers of templates without good reason. And we actually ''do'' have some damn good reasons for at least two layers. That's where we disagree here. If you shoot qif, I will do weeble. It is not a meta template technique, and thus compliant with [[WP:AUM]]. But it moves the ugliness of qif into the templates. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 23:25, 28 February 2006 (UTC)
# —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 23:43, 28 February 2006 (UTC) this thing was already rejected in the past, but if it must be rejected again, so be it. Kill it with a stick.
#:You aren't voting to reject it. We don't do that. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 23:47, 28 February 2006 (UTC)
#::You've got it wrong: this is a ''straw poll''. I've already made my case for why this should be rejected above (on this talk page, in the history, and elsewhere). Omegatron's comments below (in response to Phil) fairly well sum up why I think this should be rejected. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 01:48, 1 March 2006 (UTC)
# The only reason it was forced into policy was because of a misunderstanding. In that light, it's {{tl|rejected}}; not {{tl|historical}}, though that's acceptable, too. — [[User:Omegatron|Omegatron]] 23:54, 28 February 2006 (UTC)
#Causes far more problems than it solves. Nested templates should be used carefully, not replaced with far worse 'solutions'. --[[User:CBDunkerson|CBDunkerson]] 02:57, 1 March 2006 (UTC)

===None of the above===
*It was a policy. It now isn't. I think (though I could be wrong) that that makes it a '''historical''' policy. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 21:17, 28 February 2006 (UTC)
**This is a matter of semantics, but I don't believe that the {{tl|historical}} designation is appropriate. This page's {{tl|policy}} status was based entirely upon a misunderstanding, and therefore was annulled by Brion Vibber (the lead MediaWiki developer). For all practical purposes, it never was an actual policy; it was merely believed to have been one. &mdash;[[User:David Levy|David Levy]] 21:58, 28 February 2006 (UTC)
***Nonsense. It was treated as a policy, ergo it ''was'' a policy. Calling it "rejected" is unnecessarily inflammatory and inaccurate. Have most of the tenets been rejected by the community? I don't think so. Only the technical one has been shown to have no real basis. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 22:58, 28 February 2006 (UTC)
****Yes the community has. The Arbitration Committee even said this was rejected in [[Wikipedia:Requests for arbitration/Netoholic 2|Netoholic's 2nd RFAR]]. From [[Wikipedia:Requests_for_arbitration/Netoholic_2#Lack_of_consensus_concerning_meta-templates|finding of fact #4]]–
****:'''Lack of consensus concerning meta-templates'''
****:4) Despite Netoholic's best efforts his concerns regarding meta-templates were not adopted as policy.
****:::''Passed 5 to 0 at 22:40, 4 May 2005 (UTC)''
****The only reason this was made policy was because of certain arbitrators marking it a policy against community consensus. Other than that, this has '''always''' been rejected by the community. —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 23:56, 28 February 2006 (UTC)
*****Not adopted != rejected. And the adoption of AUM as policy was after this, anyway, so your point is very moot.
*****Phil is not an arbitrator. You say that this has "always" been rejected by the community. I shall follow your statement with no evidence presented with my own: piffle. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 17:49, 1 March 2006 (UTC)
****** [http://en.wikipedia.org/w/index.php?title=Wikipedia%3AAvoid_using_meta-templates&diff=31742813&oldid=31686679 Raul654 is an arbitrator]. And it's hard to show evidence that something never happened... —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 18:31, 1 March 2006 (UTC)
*******Oh? And there was me thinking that rejection had happened. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 19:21, 1 March 2006 (UTC)
**** Have most of the tenets reached any sort of consensus or support with the community? I don't think so. — [[User:Omegatron|Omegatron]] 23:54, 28 February 2006 (UTC)
*****For a time, I believe they did, yes. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 17:49, 1 March 2006 (UTC)
::::The following is the modified policy tag that appeared on the page:

{| class="messagebox"
|-
| [[Image:Yes_check.svg|30px]]
||'''This page is an [[Wikipedia:Policies and guidelines|official policy]] on Wikipedia.''' Although it has not been accepted through the normal policy adoption method of community consensus, the [[User:Jamesday|Wikimedia developers]] have requested that it be followed as a technical guideline until such time as the underlying server problems can be fixed. Please discuss any edits on [[WT:AUM|the Talk page]] before making them.
|}

::::On Januray 21, Brion Vibber (the lead developer) <span class="plainlinks">[http://en.wikipedia.org/w/index.php?title=Wikipedia%3AAvoid_using_meta-templates&diff=36043188 declared]</span> that the page was ''not'' a policy, because no such developer mandate existed.

::::It really wouldn't make much practical difference if the page were to be tagged {{tl|historical}} (as opposed to {{tl|rejected}}), but I don't believe that such a designation would be accurate. &mdash;[[User:David Levy|David Levy]] 20:19, 1 March 2006 (UTC)

:::::Tell me. Was AUM ever treated as policy? [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 21:00, 1 March 2006 (UTC)

::::::Yes, it was mistakenly treated as policy, despite the fact that it never was policy. &mdash;[[User:David Levy|David Levy]] 21:06, 1 March 2006 (UTC)

:::::::That's a contradiction in terms. If something is treated as policy, it is policy. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 22:16, 1 March 2006 (UTC)

::::::If we can find consensus by putting {{tl|historical}} on this, then please do so. "This Wikipedia article or category is currently inactive..." is the most important part of it. --[[User:Adrian Buehlmann|Adrian Buehlmann]] 21:08, 1 March 2006 (UTC)

:::::::From what I can tell, people are far more keen to make it clear that this is an evil policy which Netoholic is waving in our faces in order to win us over to his evil ways. Now I'm sure that isn't intended, but {{[[Template:rejected|rejected]]}} gives an impression that the page is incorrect. It is not wholly incorrect, as it states facts that are indisputable. How far the facts are applicable, and how far they are counter-balenced by other factors, is what is relevant. [[User:Sam Korn|Sam Korn]] <sup>[[User talk:Sam Korn|(smoddy)]]</sup> 22:16, 1 March 2006 (UTC)

===Polls are still evil===

#The portions of this that are relevent are not a matter for voting - we do avoid opaque pages, we do avoid pages that make high-speed vandalism a trivial effort, we do avoid permanantly protected pages. Therefore we avoid meta-templates where we can. That doesn't mean we replace them with CSS hacks, but it also doesn't mean that it's up for a vote that they're bad. [[User:Snowspinner|Phil Sandifer]] 21:36, 28 February 2006 (UTC)
#:Two of those three arguments could be applied to ''any'' template. (Should we "avoid using" all of them?) Also, there is no consensus that we shouldn't permanently protect high-use templates; many have suggested that we ''should'' do just that. Finally, the above is based upon the assumption that meta-templates' drawbacks outweigh their benefits&mdash;purely an opinion. Again, templates themselves have drawbacks, but no one is proposing that we do away with them. &mdash;[[User:David Levy|David Levy]] 21:58, 28 February 2006 (UTC)
#::Nor is this page called "do away with meta-templates." "Avoid using templates" would be a nice page to have, though. [[User:Snowspinner|Phil Sandifer]] 22:18, 28 February 2006 (UTC)
#::: By what logic? I have yet to see a good reason to avoid templates. And if there is one, it should just go on [[meta:help:templates]], where people who use templates will be sure to see it. — [[User:Omegatron|Omegatron]] 23:54, 28 February 2006 (UTC)
#::::They are harder to edit, make text inaccessable, are very frequently found lying around unused, are often ugly, give high vandalism potential... they've always been a tool for specific uses, not something to be sprinkled liberally throughout Wikipedia. [[User:Snowspinner|Phil Sandifer]] 00:53, 1 March 2006 (UTC)
#::::* ''harder to edit''
#::::** How is a template harder to edit than the same code inside a million articles?
#::::* ''make text inaccessable''
#::::** Utter nonsense. They make wikitext ''much more'' accessible.
#::::* ''very frequently found lying around unused''
#::::** Your point? Maybe we should create [[Wikipedia:Avoid creating articles]] so that people don't keep making obscure orphans that never get edited?
#::::* ''are often ugly''
#::::** Better in a template than in the article. At least broken code can be fixed sitewide if it's in a template.
#::::* ''give high vandalism potential''
#::::** Vandalism? Vandalism in templates can be reverted just as easily as vandalism in an article, and the more visible, the more quickly it will be reverted. How many times have templates been vandalized and how much permanent damage has it caused? This is an imaginary problem. Substituting every template in sight, a natural extension of this page, creates a ''real'' vandalism problem, in that substituted vandalism (or crappy code) can't be quickly and easily reverted or fixed. — [[User:Omegatron|Omegatron]] 01:35, 1 March 2006 (UTC)
#:''The portions of this that are relevent are not a matter for voting'' – they most certainly are, or this shouldn't have {{tl|proposed}}, {{tl|guideline}} or any other tag on it. You either accept that people can reject this, or you admit it's an essay (and in that case, I strongly believe this should be userfied). Otherwise, this is akin to having [[Wikipedia:Fire is hot, and will burn you]], which is silly. Or, more seriously, [[Wikipedia:Avoid leaving pages unwatched]]. In any event, it's obvious; we don't need a page saying why ([[WP:BEANS]] and all that). —[[User:Locke Cole|Locke Cole]] • [[User talk:Locke Cole|t]] • [[Special:Contributions/Locke Cole|c]] 00:04, 1 March 2006 (UTC)
#::No, see, this is where you're wrong - rejection does not come from the collective value of the querrelous. It comes from a policy actually being wrong. This one is not, and no matter how many people you get to insist that it is, it will not magically become a good idea to load pages with uneditable vandalism magnets. [[User:Snowspinner|Phil Sandifer]] 00:53, 1 March 2006 (UTC)
#:::And who decides whether a policy is "wrong", and on what basis? With a very few exceptions ([[WP:NPOV]], developer issues, etc.) the community does. What you're arguing here is that you can make up whatever policy you want regardless of community consensus and that just isn't true no matter how much you might wish it. <TT>[[User:Crotalus horridus|Crotalus horridus]] <SMALL>([[User talk:Crotalus horridus|TALK]] • [[Special:Contributions/Crotalus horridus|CONTRIBS]])</SMALL></TT> 01:05, 1 March 2006 (UTC)
#:::Yes, we can all agree that a) article opacity is bad; b) enabling high-speed vandalism is bad; and c) permanent page protection is bad. These are all valid principles that help make Wikipedia what it is. What is left for the community to decide, however, is whether a, b, and c add up to "Avoid using meta-templates", and just how strong that admonition is. [[User:Android79|<span style="color:#072764">android</span>]][[User talk:Android79|<span style="color:#c6011f">79</span>]] 01:23, 1 March 2006 (UTC)
#:::Meta-templates are no more 'vandalism magnets' than any frequently used template. Insulting the majority who recognize that fact does not make your position stronger. There are plenty of templates which are ''hypothetical'' vandalism targets that don't have any nesting involved. The only added 'vandalism danger' of meta-templates is that on heavily nested templates it might require an extra thirty seconds to sort through the nested layers (which are listed right on the page) to find which linked template was actually vandalized. That's hardly cause for concern. --[[User:CBDunkerson|CBDunkerson]] 17:27, 1 March 2006 (UTC)

Latest revision as of 16:37, 21 December 2022

Conditionals[edit]

Netoholic and Thebainer want to have the sentence "One of the most common reasons meta-templates are created is to add functions that mimic conditional expressions". I disagree with having this sentence in his guideline and I don't see why we need a section for conditionals at all. This might have been true before we had m:Parserfunctions. But nobody needs metatemplates for conditional logic anymore, so WP:AUM doesn't have to do anything anymore with conditional logic. How are metatemplates needed to implement conditionals? Could you show me where metatemplates are needed or used for conditional logic, let alone as "most common reasons"? --Ligulem 15:04, 22 October 2006 (UTC)[reply]

I've rewritten the section describing the use of metatemplates for conditionals as historic. But I don't think this section is needed anymore, as conditionals now don't have anything to do with metatemplates anymore. --Ligulem 15:24, 22 October 2006 (UTC)[reply]
That version's better, it emphasises the historical use. Although they aren't used for that purpose now, it makes perfect sense for this page to explain why that is so, and what is to be used instead. --bainer (talk) 00:26, 23 October 2006 (UTC)[reply]

Netoholic reinserted "Meta-template schemes are sometimes created using many layers of nested templates to mimic conditional expressions". Again, this is not correct. Meta-templates are no longer used to mimic conditional logic. I have thus reverted to the version which Thebainer agreed on. --Ligulem 07:58, 23 October 2006 (UTC)[reply]

You are missing the point. While YOU may not create meta-template schemes... it is still a very common practice by template neophytes who don't know a thing about m:Parserfunctions, and so "One of the most common reasons meta-templates are created is to add functions that mimic conditional expressions". That statement, and the mention of the practice here is not an endorsement... the page title says to avoid such things. The point is to describe the practice so that people can recognize what's being discussed and be shown alternatives. In other words "Here's a common practice, and it should be avoided in favor of x, y, & z". -- Netoholic @ 07:59, 23 October 2006 (UTC)[reply]
Can you show me such practice? --Ligulem 08:02, 23 October 2006 (UTC)[reply]
Template:Flag. Please to enjoy. -- Netoholic @ 08:11, 23 October 2006 (UTC)[reply]
Well known. Anything else? But Template:Flag does not serve as an example of "common practice". --Ligulem 08:27, 23 October 2006 (UTC)[reply]
Those teeny-tiny flags are on hundreds pages, and there are several variations of the basic flag template. Category:Flag templates and Wikipedia:WikiProject Flag Template cover all the related ones (Olympic, ISO, etc.). An extremely common practice (relatively on an encyclopedia of almost 1.5 million articles), and still is a convoluted meta-template scheme. You can see some of the hundreds of related templates here. Because of how these are set up, Whatlinkshere is highly unreliable. The flag templates were my main inspiration for WP:AUM. I'd help fix them, but... -- Netoholic @ 17:56, 23 October 2006 (UTC)[reply]

In general, I agree with this wording. Although I do think "Conditionals should generally be avoided, unless there is a significant advantage in their use" is a bit dense. But as long as "Generally avoided" is not misrepresented as "do not use {{#if:...}} at all cost", I can live with that wording. Common practice is that even the "few template gurus" don't insert #if's if they are not needed. --Ligulem 08:27, 23 October 2006 (UTC)[reply]

Overall, I don't think there is enough of a 'problem' here to require a policy/guideline. If individual templates (e.g. the flags) could be better structured then we should address that directly on a case by case basis rather than setting up an 'official policy'. The latter can only serve as a 'club' to force people to change something which has consensus... and, as I said, I don't see any problems here which I think would necessitate that. The fact is that people generally aren't creating "convoluted meta-template schemes" since the introduction of parser-functions. The flags are a relic from pre 'conditional template' days that have never been updated to more recent methods. Maybe there are reasons for that... or maybe it is just that nobody ever put in the effort, but that is one of a handful of cases and not any sort of widespread or significant problem. --CBD 12:56, 26 October 2006 (UTC)[reply]
You'd probably be surprised with just how many conditionally-based nested template schemes there are out there. This page can be a guideline which explains the issues, so that the same arguements aren't repeated. -- Netoholic @ 20:57, 27 October 2006 (UTC)[reply]
So point them out and I'll be happy to talk with the people there about simplifying them. Heck, you could talk to them yourself, work out a consensus, develop an alternative in your user space, and get someone to implement it. Which would probably go a long way towards getting your ArbCom probation on the matter rescinded. I just think it is a bad idea <tm> to go down the road of 'this type of template is a bad design... see there is a page which says so... so you have to change/abandon/delete it' again. There is not enough of a 'problem' here to justify ANY sort of cudgel... whether it be labeled 'guideline' or not. If there is really a way to simplify things people will usually jump at the chance. --CBD 13:11, 6 November 2006 (UTC)[reply]

A rejected page is any proposal for which consensus support is not present. Consensus need not be fully opposed; if consensus is neutral on the issue and unlikely to improve, the proposal is likewise rejected. Making small changes will not change this fact, nor will repetitive arguments. Generally it is wiser to rewrite a rejected proposal from scratch and start in a different direction.

This page and its fundamental concept have been rejected over and over. Neto is the only one trying to revive this. The content you want to add is fine, but not policy material. It belongs on an informative page like Wikipedia:Template namespace; not here. — Omegatron 00:10, 4 November 2006 (UTC)[reply]

So feel free to add a summary on that page, but let this be the expanded -guideline- (not "policy"). I cannot tell from the above whether YOU YOURSELF reject this page, or are only acting out of some sense of obligation becuase you believe that it oresently is rejected. IF you say the wording is fine, and Ligulem does, and me, and CBDunk doesn't have major objections... then what is the problem? It is a proposed guideline, nothing more. LEt it evolve, let more people read it without the stigma of that giant red "X" on the top. -- Netoholic @ 07:21, 4 November 2006 (UTC)[reply]

WP:AUM had been rejected... Is it time to revert some of the "forward looking" edits?[edit]

I believe there are a few pages that were edited in anticipation of WP:AUM. Some (probably not all) of these pages may warrant reverting. Are there any guidelines, or priorities or concensous was to what to revert first? I am of the mind to simply do the ones I know about.

Sumburgh 08:49, 5 November 2006 (UTC)[reply]

Of course other pages should reflect the fact that this is rejected, but can you give some more concrete examples of what you're talking about? — Omegatron 09:29, 5 November 2006 (UTC)[reply]
People who rejected this page 9 months ago did so because they felt that it threatened a poorly implemented hack involving Template:If and such. Now that scheme is deprecated in favor of ParserFunctions, and all RECENT indications about are that the main people who lead the rejection of this page are now of the mind that, with some updates to reflect the present situation, that the content of it is good. To repeatedly say this page is rejected while ignoring recent consensus is not accurate. I do not care about the past, I care that this page makes some excellent observations and suggestions. People "get" what this page is about, as I see the subject come up often and I see people working under the principles given here. Nested "meta-template" schemes are being wiped out. This page is current, and reflects wide consensus. I remain open to discussing specific parts, but Omegatron is not the decider of what is rejected or not. To do so he needs to show this page does not currently hold consensus. -- Netoholic @ 09:51, 5 November 2006 (UTC)[reply]
It seems this is a very touchy subject, so I suggest further discussion before making any changes on the actual project page. -- Ned Scott 10:46, 5 November 2006 (UTC)[reply]
And discussion is happening. It is only "touchy" because people assume it must be "touchy". In reality, the page's function is simple and generally agreeable. -- Netoholic @ 09:50, 7 November 2006 (UTC)[reply]
It would help if you gave some examples of this "general agreement" you keep talking about. Who has said they want this page revived besides you? — Omegatron 17:19, 7 November 2006 (UTC)[reply]
What you're not getting is that you and other people are "saying" that this page has no agreement, but not speaking for yourself. Do you yourself believe that meta-template schemes should be avoided? I really want everyone on this talk page to answer this question, rather than assume they are acting on behalf of some shadowy faction that oppses this page. -- Netoholic @ 17:52, 7 November 2006 (UTC)[reply]
So you can't? — Omegatron 02:37, 8 November 2006 (UTC)[reply]
instructions creep, because it's not a big issue in the first place? -- Ned Scott 03:31, 8 November 2006 (UTC)[reply]

Why not make a workshop page, or a new proposal along similar lines? - A Man In Bl♟ck (conspire | past ops) 03:13, 6 November 2006 (UTC)[reply]

Because we've been down that road before, and this is the right title and place to discuss this very minor consideration in the template space. Besides, the content of the page is largely uncontroversial, except when people assume it is controversial. -- Netoholic @ 09:50, 7 November 2006 (UTC)[reply]

Not again[edit]

Ugh. Do you ever feel like you're the needle running over a broken record? Edit warring, disputed page protections, blocks, et cetera. We've all been here before and we all know how it turns out... badly for Wikipedia. Can we please not fight this war again?

Netoholic, you are not wrong that some templates are set up less efficiently than they could be. We should indeed encourage people to use different methods where appropriate. However, this page is not needed to do that. There is nothing preventing direct contact with people involved in various templates that could be re-designed. No, you can't then point at a page and say, 'all the reasons why this must be done are there'... but that's a good thing. It forces us to examine the individual needs of the template and the people using it and work with them to come up with a replacement they are comfortable with. So that we are the 'good guys' not just in terms of improving templates for Wikipedia as a whole, but also to the individual users impacted.

Why not work on improving the templates collaboratively... rather than fighting to enshrine a framework which can serve no purpose but to over-ride collaboration with 'established practice'? --CBD 13:38, 6 November 2006 (UTC)[reply]

I don't think that approach will help in more than a few cases. I prepared the first version of this page only after dozens of individual meta-template arguments and deletion votes. This page centralises many of the points, so why would we want to expend effort re-explaining this each and every time? No, this is not the biggest problem on Wikipedia - I never said it was. Far more often then not, people have been directed to this page, read it, and come away with a greater understanding and a desire to make their templates less cumbersome. Why take that away? -- Netoholic @ 09:45, 7 November 2006 (UTC)[reply]
I just stumbled here looking for template content. I come from a strong background in C++ template meta-programming and I've witnessed this same debate play out over a decade with larger armies, better trained, and better equiped. I would say the debate was more complex than the meta-programming techniques themselves. The autoptr<> saga raged forever. In my view, this page is not the right forum to achieve its purpose: advocating a judicious use of complexity for the betterment of the community as a whole. Far more useful would be a page or collection of pages concerning Recommendations on avoiding unnecessary complexity in general, with portions applied to templates, and meta-templates, in particular; and from there, as others have suggested, work with people to adopt this material to their specific situation so far as it makes sense.
I lost what sympathy I had when I saw the prominent link to protected pages are bad(tm). That's the kind of innocuous-on-the-surface wolf-in-sheeps-clothing that makes this page dangerous and far from uncontroversial. The same facility that these semi-protected deep-infrastructure meta-templates provide could just have easily have been incorporated into the MediaWiki code base as custom PHP. Does that end up making the facility less-protected? The C++ community went through endless heartache to push complexity away from the core compiler by making the template infrastructure sufficiently powerful that the same complexity could be handled as a deep systems library provided by the compiler vendor or by means of a battle-hardened primitives library (e.g. Boost). At the end of the day, it benefits the entire ecosystem not to code more policy into the compiler itself than absolutely necessary. For C++, the equivalent of the parse-functions extension is coded in a Boost library and you wouldn't want to be mucking with this down in the sub-basement unless you feel up to the challenge of performing a successful self-amputation. Most likely it was of great value that the community could explore the use of this facility before it was formally codified as Mediawiki extension. Experience has shown that new C++ coders often learn faster and make fewer mistakes programming on top of the Boost library, rather than cooking from scratch in a notoriously unsafe kitchen. The issue is about packaging the complexity appropriately, not whether it exists somewhere in a basement that eats children.
The point here is that there is certainly no consensus in any policy page that the use of protected pages to promote the general safety of Wikipedia while wrangling with how to best dispatch complexity taints such an endeavour intrinsically, which is the wolf-in-sheeps clothing that invoking the trappings of a consensus formed about the abuse of a mechanism in a broad political context rather than this hillybilly-esoteric technical backwater. In so far as the reader comes away informed, it could be achieved better by other means.
A good book to consider is Getting to Yes which talks at length about the need to argue from interests rather than positions. The interest here is that Wikipedia complexity be managed in the best possible way across the broad swath of the Wikipedia ecosystem, from casual contributors to hard-core MediaWiki hackers. IMO the existence of this page subtley biases the debate away from the interest of managing complexity and toward the position that template meta-programming can be tarred with one brush. That makes this page plenty controversial in my estimation. MaxEnt 18:18, 7 November 2006 (UTC)[reply]
Wow, that was.. really well put :) -- Ned Scott 03:35, 8 November 2006 (UTC)[reply]

Cache size is getting too small again[edit]

The text alone from United States is 500 KB of meta-templated goodness, not counting javascript, stylesheets and of course images. I clocked five various diffs (with "time wget" from the shell) at between 43 and 48(!) seconds just now. The second try of each was about 5 seconds. When a particular version of an article with enough meta-templates in it gets bumped from the caches, you wait. And wait. I disbelieve the developers when they say nested transclusion isn't a performance penalty. That depends on having an effectively much larger cache than we do now. 1of3 03:40, 6 October 2007 (UTC)[reply]

from Rob Church on the mailing list:
The "technical team" is not responsible for checking that content is correct, nor is it responsible for checking page load times for each article and pruning them in the dumps. If a page contains obvious abuses of markup which cause significant problems for large numbers of users, then we'll kill it off, but of course, we haven't had a large number of reports of that in recent months, although as other threads on the list imply, the problem is resurfacing, and will likely be looked into.
We can't really help it if our users are silly enough to insist upon abusing a markup language as if it were pure code, nor if they insist upon continuing to use fragile-looking template constructs which will end in tears.
xaosflux Talk 11:27, 26 October 2007 (UTC)[reply]

Leave a Reply