Cannabis Ruderalis

Content deleted Content added
m fix linter errors (2x obsolete HTML tags)
 
(732 intermediate revisions by 74 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 ==


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)
;Archives
* [[/Archive]] - Feb 2005—Nov 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)
== Logic templates ==


::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]] ([[User_talk:Thebainer|talk]]) 00:26, 23 October 2006 (UTC)
I intend to author a new section for this page dealing with the specific problems related to the so-called "logical" templates being created and used (see [[:Category:If Templates]] and [[:Category:Boolean Templates]]). A few "clever" individuals have found a way to hack the template mechanism into doing things it was not intended for. Rather than petition the MediaWiki developers (or write code themselves), they've put this kludge into effect and it is unfortunately growing rapidly. The problems I see with this are:
# As described on [[WP:AUM]], templates within templates have a direct effect on the performance of the wiki, just like templates used for meta-formatting.
# The developers may make future changes to the template mechanism which would make these logical templates fail. The amount of rework if we need to fix the related templates and pages could be incredibly extensive.
# New and old users alike have a hard time understanding how these all work. This discourages participation in the entire authoring process.
# Templates in general should be used sparingly. Certain tasks, like inserting [[Template:book reference|book reference]]s, are not being better served by using a template.
I'm going to ask some key people for comments on this topic. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 14:47, 9 December 2005 (UTC)


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)
:Please also have a look at the discussion that emerged on [[User talk:AzaToth#Wikipedia:Avoid_using_meta-templates]]. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 15:22, 9 December 2005 (UTC)
::Maybe that discussion should be moved here? — [[User:Omegatron|Omegatron]] 15:25, 9 December 2005 (UTC)
:::Agreed. I already put a pointer to here on [[User talk:AzaToth#Wikipedia:Avoid_using_meta-templates]]. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 15:29, 9 December 2005 (UTC)


: 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)
:Re: "Rather than petition the MediaWiki developers (or write code themselves)" we can still do that. "and it is unfortunately growing rapidly" :-) If this is true, this means that it gained some popularity as it seems to be grounded on some editors real needs. If this is enough evident, there will be enough drive to do "petition the MediaWiki developers (or write code themselves)". Which might be a good thing (if that should prove needed). – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 15:38, 9 December 2005 (UTC)


::Can you show me such practice? --[[User:Ligulem|Ligulem]] 08:02, 23 October 2006 (UTC)
:See also [[m:Template:If]] and [[:Category:Citation templates]]. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 16:02, 9 December 2005 (UTC)


::: [[Template:Flag]]. Please to enjoy. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 08:11, 23 October 2006 (UTC)
There is one template that is almost impossible to use without logical templates, that is {{tl|language}} <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 17:31, 9 December 2005 (UTC)
: When I look at the code in that template, I want to throw up. I'll post on that talk page further. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:55, 9 December 2005 (UTC)
: I wouldn't say it's "almost impossible to use". I would rather say it's almost impossible to implement. Usage is not affected by how it is implemented (as long as it can be implemented, of course). – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 18:58, 9 December 2005 (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)
On the contrary: I find that inserting book references ''is'' better served by using a template. [[User:Uncle G|Uncle G]] 18:26, 9 December 2005 (UTC)
:* I agree, I personally dont know how to type a reference by my self, a template gives me defined fields to use (like author goes here) <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 18:30, 9 December 2005 (UTC)
:* I agree. Book templates help keep our articles referenced in a standard way. Keeping our material referenced properly is ''very'' important if we hope to create a useful encyclopedia. — [[User:Omegatron|Omegatron]] 19:29, 9 December 2005 (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)
Re: "New and old users alike have a hard time understanding how these all work. This discourages participation in the entire authoring process". Not every user of book reference needs to understand how it was implemented. Those who do not take part in the development of book reference and the like never need to have a look at if & co. at all. The logic templates are mostly needed in more complicated templates like book reference, but there, they are essential. There is generally no need to use the logic templates on article pages. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 18:50, 9 December 2005 (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)
Re "Templates in general should be used sparingly". No. To the contrary. If we have an abstraction mechanism, then we should use it. This increases dependency but this is a good thing. Complicated things should be built up by using less complicated and tested building blocks. This is a well known engineering principle. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 19:07, 9 December 2005 (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)
Re "A few "clever" individuals have found a way to hack the template mechanism into doing things it was not intended for". This is something very normal. If you have some powerful successfull tools, they sooner or later get used in ways you never dreamt of. I understand that this can be seen as threat. But it isn't. Just start thinking how to anticipate that new usage, if it's really needed and helps to solve real problems. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 19:12, 9 December 2005 (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)
'''Comment''', I checked the use of class="hiddenTemplate{{{foo|}}}", it works optimal only if the specified parameter value does not include <code>"</code> <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 19:36, 9 December 2005 (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)
See [[User talk:Adrian Buehlmann#Spamming]]. No further comment needed from my side. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 19:44, 9 December 2005 (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]]}}
:This sounds like functionality to do this kind of thing should be implemented within the template syntax, where it would be cleaner, less taxing on the server, not use meta-templates, etc etc. Some of the functionality being implemented in this way is proving to be very useful for the average template ''user'' - such as making Template:Book reference not need a dozen different variations to handle different sets of provided information.


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)
:I know, <nowiki>{{sofixit}}</nowiki>, so I plan to spend some time pretty soon on learning PHP so I can start working on stuff like this ... —[[User:Morven|Matthew Brown]] ([[User talk:Morven|T]]:[[Special:Contributions/Morven|C]]) 23:52, 9 December 2005 (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)
==What on earth?==


== WP:AUM had been rejected... Is it time to revert some of the "forward looking" edits? ==
This page (in the version I restored and will happily lock) is a guideline not because of a consensus vote on a talk page, but because of sound technical reasons to avoid using the damn things. Just because you really want to do 'l33t Mediawiki hacks doesn't mean you can build consensus to make it not technically the case, any more than 2+2 equalling 4 is up for a vote. The only reason templates in templates aren't switched off entirely is because they're needed for a few specific purposes. That's why you're supposed to AVOID USING METATEMPLATES, not because some m33nz0r wants to keep you from the k3wl stuff - [[User:David Gerard|David Gerard]] 23:07, 9 December 2005 (UTC)
:*I did remove it becaus the box specified it's a guideline, and guideline says is by consensus, but after reading this talk page there was none, I didn't meen to [[WP:POINT]] <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 23:17, 9 December 2005 (UTC)
:m33nz0r? whatdoes that meen? <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 23:34, 9 December 2005 (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.
:I do not understand what you want to say. Can you tell us what to do with {{tl|book reference}} and {{tl|web reference}}? You are also invited to write on the respective talk pages of those templates. That would fit much better than writing to people on their user talk pages. Please note that AUM is guideline, not a policy. As the box states "This page is considered a guideline on Wikipedia. It illustrates standards of conduct, which many editors agree with in principle. However, it is not a policy". "which many editors agree with in principle" seem to be just Netoholic so far in this specific matter. As this is not a policy, there may be others who don't follow this guideline, for good reasons. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 00:25, 10 December 2005 (UTC)


[[User:Sumburgh|Sumburgh]] 08:49, 5 November 2006 (UTC)
:You may also write on the discussion page of [[:Category:Citation_templates]], as this covers a whole bunch of if or qif using templates. Thanks. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 00:34, 10 December 2005 (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)
== Any of this still valid? ==


: 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)
Wikimedia's server capacity has gone up a few orders of magnitude this year. I'm not convinced that templates represent anything like the proportion of the total load they used to, and are therefore no longer a problem ("with enough power, a brick can fly"). [[User:Dan100|Dan100]] ([[User talk:Dan100|Talk]]) 12:13, 10 December 2005 (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)
: Please take a look at the source for [[Template:Language]]. I don't care how fast the servers are, that template has been coded into complete obscurity. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 15:14, 10 December 2005 (UTC)
::That's your POV, I belive [[User:Garzo]] knows what he do, he is a linguist specialist <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 15:21, 10 December 2005 (UTC)
:::Is it really a good thing that only one editor knows what's going on with that template? -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 15:32, 10 December 2005 (UTC)
::::There are plenty more peoples that knows what's going on in the template. But are you blaming [[User:Garzo]] for not creating a template in your way? <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 15:37, 10 December 2005 (UTC)
::::I can confim that there are several others which are able to understand this form of template. It's not that complicated as it might look at first sight. It takes a moment to accustom oneself with that <tt>if</tt> stuff. And you don't have to understand at the first step how <tt>if</tt> is implemented. But even that is not as complicated as it might look. <tt>qif</tt> is the easier to start with. Yes it is a trick, but a straightforward one, not even a dirty one. And yes, we are interested to keep a close eye on server load, that's why <tt>qif</tt> as a replacement for <tt>if</tt> was created (by using <tt>qif</tt>, one call level is eliminated compared to <tt>if</tt>). And if developers and server maintainers flock in to report that we blow off the servers, believe me, we will kill if/qif immediately. But not due to a guideline that should be carfully reviewed for this special case. And please note that I do not intend to put up a fight. You and we, all of us care about the future of wikipedia. Nobody is interested to "press in" tricky stuff just for it's own sake. We care about building new solutions to existing problems. The way how to solve them (and the cognition of their existence at all) is what we differ in opinions. In good faith, – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 18:08, 10 December 2005 (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)
:::::Well, seeing as I have been mentioned above, I'll let you know the history of &#123;{[[Template:language|language]]}}. The flexibility that the use of &#123;{[[Template:if|if]]}} allows was discussed long before that template was available. We had tried a number of ways of creating a modular template that could fit the great diversity of all language articles, but these hadn't worked. The other users of the template have appreciated the new flexibility that these templates have provided. I have tried to explain what I am doing as I go along, and, as I know nothing about computer programming, I am not being obscure for the sake of it. We weigh up the options of whether we want the template to do all we want it to do, or whether we want it to be easy to edit. I would love it, if there were a possibility of incorporating both options, but there isn't, and we have chosen flexibility above ease of editing. In the meantime, there are a few editors around who have acquainted themselves with the template, and feel able to make changes whan they are needed. In summary, the present state of &#123;{[[Template:language|language]]}} is the work of a linguist rather than a computer programmer, cobbling together the scraps of possibilities of template construction to make an infobox as good as possible. I'm writing an encycolpaedia... --[[User:Garzo|Gareth Hughes]] 18:56, 12 December 2005 (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)
== Another view ==


::::: 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 did some check in the source code to see how mediawiki uses templates. When a page is using a template, that particular template is cached for actual page, so multiple uses of an template on a particular page uses only one fetch for this template. For an example, a book reference, is would then better to use an generic reference that have separate templates for different styles. (If the generic reference template only use for example {{tl|qif}} then there will only be one fetch for actual page) <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 21:53, 10 December 2005 (UTC)


:::::: So you can't? — [[User:Omegatron|Omegatron]] 02:37, 8 November 2006 (UTC)
Can try to explain it a bit further:
*We have the template ''Generic'' that utilize the "logic" template ''logic'' multiple times, and it replaces the usage of template ''Specific-1'' to ''Specific-n'', which does not use any aditional templates.
*If ''Article'' only uses ''Specific-1'' it's faster than using ''Generic''.
*If ''Article'' uses both ''Specific-1'' and ''Specific-2'' there is no difference.
*If ''Article'' uses more than two ''Specific'' templates, it's faster to use the ''Generic'' version.
*If another template used by ''Article'' utilizes template ''logic'', then the cost of ''Generic'' is reduced one step etc...


::::::[[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)
<sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 22:21, 10 December 2005 (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)
:Yeah that sounds damned interesting! Thanks for looking at that. You're really smart (no pun intended). I have to ruminate that further. I just wonder what the other template geeks (like SEWilco) are doing. The tangent I'm on gets bigger and bigger. Interesting. It all started with wondering me how to reference a book on an article....:-) Oh my! – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 23:20, 10 December 2005 (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)
:Interesting. This would suggest, for a start, that all of the various infobox templates should be moved away from using the logic templates if possible (since those are, by definition, used only once in an article). &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 01:46, 11 December 2005 (UTC)
::*That might be correct, but personally I think it's cheaper to do '''one''' extra meta-call (to the template ''logic'' in this case), than to hide a lot of text using class ''hiddenContent'', also, if there are other templates on the page using the template ''logic'' (for example a reference template), then there would be no saving going from logical templates. <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 02:00, 11 December 2005 (UTC)


== Not again ==
::I think it's exactly the opposite. Because the call to <tt>if</tt> (et al.) is cached per article, it does not matter whether we have 500 if calls rooted directly (does not apply now) or indirectly on the page. We can have 100 instances of let's say book reference on a page. Even if <tt>qif</tt> appears several times in book reference (22 times to be exact, at the moment), as per the findings of Carl (=AzaToth) it is loaded exactly *once* per page (not 100 x 22 - ok would possibly not be 22 because not all branches are evaluated, it depends on the parameters fed into each specific template call). I hope I got that right (please correct me if I'm wrong). That's very cool! – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 09:57, 11 December 2005 (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'''?
: Don't worry too much about there being several types of citation templates, they are being consolidated. It probably is more important for this discussion that citations have to deal with the fact that including or omitting information requires various formatting details be included or omitted. The logic templates are at present the only tool for doing that formatting, and infoboxes have similar formatting needs If wiki adds some builtin logic it will be trivial to change the few templates. However, that is not the only possibility, as another possible solution is some sort of tool similar to a "report generator" which would allow specification of the format of data display. For citations there have been various proposals for information handling, and it is possible someone will come up with tools with other solutions (whether specific to citations such as a publication-name-selector or a more general tool such as Jimbo's data retriever ("name of capitol city of country X"). ([[User:SEWilco|SEWilco]] 06:10, 11 December 2005 (UTC))
::''Don't worry too much about there being several types of citation templates, they are being consolidated'' - can you point to where that's happening (out of curiousity)? [[User:Dan100|Dan100]] ([[User talk:Dan100|Talk]]) 08:40, 11 December 2005 (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.
:::I hope SEWilco allows me to step in: see [[Template:Citation]] ([[Template talk:Citation|talk]]). But '''please do not use that in articles yet'''. As per SEWilco (who thankfully started that) who intends it do be for testing and development for now. But I think we can have a look at it, as it is not under user-space. Citation has just got more attraction as per the findings of AzaToth (in this thread). – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 10:07, 11 December 2005 (UTC)


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)
:::: There are ongoing changes to the various citation templates which will affect the consolidated template. A number of the changes involve logic incantations. ([[User:SEWilco|SEWilco]] 15:27, 11 December 2005 (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)
:::: The consolidation of citation templates is also visible in the History of [[WP:CITET]]. The availability of optional parameters has allowed reduction in the number of citation templates to perhaps 20-30% of the number which used to exist. Unfortunately, this also has increased use of if/qif so as to display text and punctuation needed by various optional fields. Consolidation has been slowed by the need to standardize parameter names, conversion of existing calls, and non-technical demands such as consensus finding and devoting time to Arbitration threats. ([[User:SEWilco|SEWilco]] 09:26, 13 December 2005 (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.
== Proposal for "lazy templates" ==


:: '''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.
As we have noticed, there is some concern that meta-templates which are defined as templates that include calls to other templates have some drawbacks which are described in the associated article.


:: 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.
Recent development around the templates [[template:book reference]] or [[template:web reference]] which include calls to so-called "logic templates" like [[template:qif]] have triggered some partly hefty reactions among some wikifolks. These logic templates haven been deemed by some as beeing a "kludge" or just "ridiculous" and for beeing a violation of this guideline here.


:: 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)
Some wikifolks insist that templates like [[template:book reference]] do add real value to wikipedia and its development, as they increase the quality of articles and do help non-wiki experts to write correct citations. What's also clear is that calls of [[template:book reference]] can easily be converted to anything else by a fairly simple bot. This includes possible future extensions. It is also relatively simple to convert those calls back to the old style low-level kind of citations that have been done by using wiki syntax only (without the use of templates). But the other direction is far less easy to do. So articles that today contain calls to [[template:book reference]] are - from an entropy standpoint - more valueable than those who do citations the old-style way (if we look at the wiki source).


:::Wow, that was.. really well put :) -- [[User:Ned Scott|Ned Scott]] 03:35, 8 November 2006 (UTC)
Today, there are about 3000+ articles that already use [[template:book reference]]. If we come to the conclusion, that this guideline here rules, we can see that [[template:book reference]] has qualities of a "meta-template" as it uses [[template:qif]]. Some wikifolks have come to the conclusion that [[template:book reference]] cannot be implemented without using [[template:qif]]. So if this guideline here rules, this would mean the shutdown of [[template:qif]] and in turn the shutdown of [[template:book reference]]. The consequense of this would be that all calls to book reference would need to be downgraded to pure old-style wiki source.


== Cache size is getting too small again ==
One of the mentioned problem areas of the so called "meta-templates" is that - as it seems to be implemented now in the Wiki-software - if a template T is changed, all article pages that contain calls to T get their cache invalidated. As Jamesday describes in the article here, this can be a resource consuming task. This can also result in operations enduring in the order of several tenths of seconds.


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)
A well known mechanism to circumvent this is "subst", where a template is instantiated at the moment the editor clicks on save. The problem with subst is, that it cannot be applied to book reference, as the result is just a bunch of qif expressions that nobody can manage by hand.
: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.''
It must be noted that reckless editing of [[template:book reference]] is not desired anyway. So it is expected that book reference stabilizes more and more and there should be the longer the more less reasons to change it. This is even more true for [[template:qif]], which is even more stable. So rippling changes originating from [[template:qif]] today already are a rare case. So beeing dependent on stable stuff is not that bad.
::''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. ''

:— [[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)
What remains are changes in [[template:book reference]].

I would like to present the following idea: Why not ignore changes in [[template:book reference]] at first for some time and leave that cache invalidating step away completely. It does not hurt if articles referencing [[template:book reference]] use an old version of it. This can wait until somebody edits an article or until a slow bot comes by and invalidates that article's cache (within 24 hours or so). That bot could run at off-peak hours. I would call this feature a "lazy template". Maybe [[template:book reference]] (and [[template:web reference]]) could be marked in some way as "lazy templates". This could also be seen as a more luxory form of "subst" that preserves the entropy of the wiki-source of an article.
– [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 17:03, 11 December 2005 (UTC)

:See also the [http://mail.wikipedia.org/pipermail/wikitech-l/2005-December/032939.html thread ] on the mailing list [http://mail.wikipedia.org/mailman/listinfo/wikitech-l wikitech-l]. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 18:53, 11 December 2005 (UTC)

:Server caches of pages can be manually purged. See [[template:purge]], [[Wikipedia:Purge]]. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 23:00, 11 December 2005 (UTC)

==Removing guideline status==
There is no evidence that [[Wikipedia:Avoid using meta-templates]] ever had community consensus. No polls or discussions were held on the issue that I am aware of. In fact, with the exception of [[User:Netoholic]] (its author) and about three or four other users, virtually all of the comments regarding it have been negative. Furthermore, it was written as a very specific response to a technical issue with MediaWiki server capacity ''circa'' early 2005. No evidence has been adduced that this is still the case. The guideline status seems to be primarily an excuse for Netoholic to engage in revert warring and to carry out a [[jihad]] (or [[crusade]], if you prefer) against templates he doesn't like for whatever reason. Until I see evidence of consensus, I'm removing the guideline status. [[User:Firebug|Firebug]] 20:35, 12 December 2005 (UTC)

:: It's still the case. Using resources unnecesssarily is not helpful. [[User:Jamesday|Jamesday]] 20:35, 17 December 2005 (UTC)

:::This is patently obvious.
:::On the other hand, writing an encyclopedia requires us to use resources. The scuffle here isn't about whether we should heedlessly waste server resources or not; everyone agrees that we shouldn't. The contention is about which tasks are "unnecessary".
:::We could conserve resources even more by turning off search, images, visual styles, red link checking, and editing, but we're not doing that because we'd have nothing of value left. On the other hand, we could streamline the process by using templates and shortcuts for anything (that the developers don't have time to code into a real feature) that makes it easier for newcomers and [[systemic bias|non-hackers]] to contribute content, but we're not doing that because of the server load. The problem ''still'' needs to be clarified (in detail) by the developers: Where do we draw the line?
:::No one's trying to [http://mail.wikipedia.org/pipermail/wikitech-l/2005-December/032939.html vote away technical problems]. We're trying to decide how much crippling of the encyclopedia-building process is necessary to avoid crippling the encyclopedia-hosting process. — [[User:Omegatron|Omegatron]] 02:16, 18 December 2005 (UTC)

:There is just a problem with consensus: as David Gerard correctly points out, we cannot vote whether the servers can manage meta-templates or not. So we need statements from experts (those that run the servers, for example) and specific examples of meta-templates. I do not have a problem with this being a guideline. A guideline, not a policy. Disclaimer: I'm an aficionado of [[template:qif]] and [[template:book reference]] (a meta-template). – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 23:54, 12 December 2005 (UTC)

::One mitigating factor for the logic templates is that once they are stable, they can be protected and not changed, thus removing most of the odds of them cache-invalidating lots of pages if changed. —[[User:Morven|Matthew Brown]] ([[User talk:Morven|T]]:[[Special:Contributions/Morven|C]]) 00:54, 13 December 2005 (UTC)

::: MediaWiki server capacity improvements are a continual race against increasing usage. Profligate waste of server resources is never a good idea. IMO, this guideline should really be reworked into a "don't waste server resources" guideline. Templates invoking templates invoking templates invoking templates for no particular point is a bad idea. Simple is better. I've asked [[user:Jamesday|Jamesday]] to comment. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 01:21, 13 December 2005 (UTC)

:: Why does everyone say we need developer input... [http://en.wikipedia.org/w/index.php?title=Wikipedia:Avoid_using_meta-templates&diff=10217343&oldid=10212289 we have]! I'm not here to say that you can't get more input from them, but it seems this Talk page wants to make it a requirement that the developers check in every couple months just to keep this a guideline. The correct approach would be to respect their previous input UNTIL you hear differently. Meta-templates should be avoided - I doubt there will ever be a time where that guideline will change. What seems to be the point of contention is ''how'' they should be avoided (subst:ing, multiple similar templates, CSS tricks). Don't confuse the two issues, and you'll be far better off. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 03:17, 13 December 2005 (UTC)

:::That's because this proposed guideline makes the job of Wikipedia template editors significantly harder, and therefore it should be subject to severe scrutiny to ensure that it is absolutely necessary. Simply saying that something might increase the server load isn't enough to mean it shouldn't be done. After all, we could dramatically reduce the server load by turning off images completely, but I don't recall anyone making a page called [[Wikipedia:Avoid using images]]. Being able to nest code is a elementary programming feature, and if the MediaWiki software can't handle it without a performance hit, that should be treated as a serious bug that needs to be addressed, not something that users should have to continually work around. I am not at all convinced that the server situation remains unchanged in the past 10 months. [[User:Firebug|Firebug]] 03:48, 13 December 2005 (UTC)

::::It's a guideline, not a policy. So if you have very good reason not to follow it, don't follow it. But it's ok to think four times before violating it. If the developers would have been that shure as they are claimed, then they would have made it a policy. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 10:59, 13 December 2005 (UTC)

:::No. All of this violates basic programming principles. Every programmer knows that hard coding is a ugly, godawful thing to do, but you're urging that it be made Wikipedia policy. (And subst is a form of hard coding - since changes from the template don't automatically propagate.) What we should be talking about is how to add new features like inheritance and polymorphism to the MediaWiki engine - not getting rid of the most basic functionality that was taken for granted in the 1980s. [[User:Firebug|Firebug]] 03:48, 13 December 2005 (UTC)

::::Quite true. I'll remind you, though, that what we're writing here is ''markup'', not ''code''&mdash;and while we need a few semi-clever tricks to get the markup right, I can't for the life of me imagine why we would ever want to use polymorphism, for instance. (On another note, this would likely make templates utterly unreadable to anyone without a CS degree). &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 04:07, 13 December 2005 (UTC)

:::::I will admit I was being a bit deliberately provocative with my comment about polymorphism. But that's not the point. In many cases, nesting templates can make template code ''easier'', not harder, to read. We should not have a policy that encourages editors to write unmaintainable spaghetti templates and hard-coded shit. And using subst: is a hack because it makes further editing more difficult and prevents template changes from propagating, as with transclusions. Even a markup language should be able to handle basic nesting of calls. This ain't rocket science. [[User:Firebug|Firebug]] 04:25, 13 December 2005 (UTC)

::::::: Have you ever actually read all of [[User:Jamesday|Jamesday]]'s comments on this very talk page, or are you just deliberately dismissing them? -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 04:49, 13 December 2005 (UTC)

::::::Well, it does handle them; obviously, this has associated costs (just as nested function calls in code do). In this case, at least at the time this page was written, the resource cost wasn't worth the benefits of using nested calls; it remains to be seen, based on developer input, whether this is still the case.
::::::As an aside, most templates are merely blocks of markup: tables, frames, etc. Only a few templates&mdash;the citation ones, for instance&mdash;truly benefit from nested calls as opposed to some other method of hiding undesired markup; and some of them would likely be better off as MediaWiki features rather than templates. The citation templates, for instance, are basically a wizard to produce a proper citation based on some parameters; once the citation is inserted into the page, we generally don't want it to change appearance. &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 04:33, 13 December 2005 (UTC)

:::::::It's still the case. As for your programming arguments, you might want to consider the relative efficiency of loop unrolling and inlining instead of loops and function calls. Those optimisations are what subst is equivalent to. Very little text needs to be instantly updatable on the whole site. Where it is not necessary, subst is a more efficient way of doing the job. [[User:Jamesday|Jamesday]] 20:35, 17 December 2005 (UTC)

:::To Netoholic's point about asking for developer input - I'm reasonably certain the basics for how pages are constructed has not changed in the last year. My understanding is that if the page is not cached, some Apache server makes a database fetch for its contents and database fetches for each template that must be interpreted in order to build the page contents. I think doing any less work than this is likely to be very difficult. There's ultimately a single database behind all wikipedia pages, and for pages that aren't cached, the database is almost certainly the true bottleneck (since we can add a relatively arbitrary number of Apache servers). A page that references no templates requires one DB fetch. A page that references a template that references a template requires three. We can buy all the Apache servers we want, but if they all have to connect to the same database the limiting factor is going to be the database. It was a year ago. I'm actually a bit surprised we're doing as well as we are. In any event, the point of all of this is that I'm not a MediaWiki developer and I suspect Netoholic isn't either. Certainly some things have changed in the past year. I think it's distinctly unlikely, but it's possible things have changed so that database fetches are not even close to the current bottleneck. The folks wanting to use templates in programmatic ways seem to want to optimistically believe this isn't an issue anymore. Developers know for sure. Asserting it isn't an issue without developer input seems ludicrous. Asserting nothing's changed in the last year that might help this issue without developer input also seems ludicrous. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 05:15, 13 December 2005 (UTC)

::::My point is simply that a feature this useful and powerful should not be discouraged without a '''very''' good reason. Someone's suspicions aren't enough. See my analogy above - this is like asking people not to use images. The burden of proof should be on the anti-template crowd (who have no community consensus that I can see) to prove - not once, but continually - that so-called "meta-templates" make the server utterly impossible to maintain. [[User:Firebug|Firebug]] 06:14, 13 December 2005 (UTC)

: About the Guideline discussion: For this subject, it seems the community of Developers (particularly of DB) are the ones who should decide on the Guideline status. I view many of the meta-templates as tools to achieve needed results using the current technology. If an application such as infoboxes with optional fields become popular, it is likely that an efficient Wiki tool will be created to replace it. However, limits have to be drawn someplace; AUM should prevent extremes such as a fad of everyone creating complex signature templates and then those also being accepted on article pages. We all want to avoid dealing with the ultimate authority on where the limits are: reaching the maximum capacity of the hardware. ([[User:SEWilco|SEWilco]] 09:14, 13 December 2005 (UTC))

:: The hiddenStructure CSS trick can handle optional infobox fields (for now). It's not particularly elegant, but it's probably a good way of keeping meta-template usage limited to where it's really necessary. &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 14:09, 13 December 2005 (UTC)
:::As far as I know, hiddenStructure only works with the monobook skin. People who use different skins have said they see the fields (as, for example Cinematography:{{{cinematography}}} in a page where that field doesn't exist for {{tl|Infobox Film}}). - [[User:Bobet|Bobet]] 20:32, 13 December 2005 (UTC)
::::As of yesterday, that should no longer be the case :-) &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 20:34, 13 December 2005 (UTC)
::::* It also wont work if the parameter start with '" ' or contains the string " class="hiddenStructure"" etc... <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 20:36, 13 December 2005 (UTC)
:::::Thanks, I just went to test it out and thought I was crazy since it looked fine :). - [[User:Bobet|Bobet]] 20:39, 13 December 2005 (UTC)

==Community consensus is beside the point==

The developers flat-out said "Avoid using meta-templates." The developers are given free reign to say "Please do not make our database collapse weeping." And then we, as editors, have to listen. And it doesn't actually matter how many editors don't want to listen - the developers remain empowered to implement guidelines like this. [[User:Snowspinner|Phil Sandifer]] 06:46, 13 December 2005 (UTC)
:No, Wikipedia has substantial editorial problems (Siegenthaler, vandalism on [[George W. Bush]]) and anything that makes it harder to maintain is a '''dangerous''' distraction that imperils the whole project. [[User:Susvolans|Susvolans]] [[User talk:Susvolans|⇔]] 08:07, 13 December 2005 (UTC)
::Wikipedia is very hard to maintain when the database stops working. Though this is beside the point - just as you cannot vote or complain away the developer's right to say "Don't do this," you also cannot vote or complain away the fact that you are unable to do the former. [[User:Snowspinner|Phil Sandifer]] 20:40, 13 December 2005 (UTC)

Perhaps the page title "Avoid" is where people are getting confused. Maybe we need to rename it something stronger like "Don't use meta-templates"? Or better yet, how about "Wikipedia:Template policy"? Let's nail down some of the rules related to template usage. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 06:16, 14 December 2005 (UTC) (revised)

:Wasn't it called "Meta-templates are considered harmful" once? [[User:Snowspinner|Phil Sandifer]] 06:19, 14 December 2005 (UTC)

:: Yeah, but that also confused some users and was a little softer than "Avoid". -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 06:21, 14 December 2005 (UTC)

== Something to read: [[m:Help:Parameter default]] ==

Hi folks! Let's have a break and learn something. For those who watch this talk page and enjoy reading new stuff: There is a nice new page at [[m:Help:Parameter default]] about all that new stuff which is at the heart of these new template tricks. Kudos to Patrick and AzaToth. (Sorry for the advertising here). Have fun reading (no pun intended)! – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 21:30, 13 December 2005 (UTC)

: Boy oh boy... now if either one of them would [[meta:How to become a MediaWiki hacker|learn how]] to write real code in PHP and become real [[meta:developers|developers]], we might have a solution that we could use. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 21:38, 13 December 2005 (UTC)

::And in the interim we use what we have. Deal or no deal? :-) (please don't hit me! And have a look at Carl's box profile). – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 22:22, 13 December 2005 (UTC)

::: No, in the interim we work very hard to ensure these meta-templates are eliminated ''per this guideline''. Does that mean some functions will require multiple templates? Sure. Does this mean some template will lose function? No problem. Will this bruise some egos? Doesn't matter. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 23:49, 13 December 2005 (UTC)

::::First of all, as stated previously, let's see some evidence of developer consensus. I've heard about ONE developer (Jamesday) who has complained about meta-templates. And that was ten months ago. Are there any others? How serious (if at all) do they think the problem is at this time? What (if anything) are they doing about it? Until we know the answer to this, we can't proceed. Furthermore, doing away with nested templates altogether is utterly unacceptable. It's like proposing we do away with images. '''IF''' the developers need template use reduced as a '''TEMPORARY''' hack to reduce server usage, then we can start with templates that can easily be rewritten to avoid metafication. Breaking existing functionality should be an absolute last resort, yet you go about it with an unseemly glee. You should be banned from ever having anything to do with templates on Wikipedia ever again. [[User:Firebug|Firebug]] 04:36, 14 December 2005 (UTC)
::::BTW, on Aug 6 of this year, Jamesday wrote (from the main article): "''There are changes in 1.5 which will help. How much is currently not known.''" Are we running that now? Did it fix the issue? If the issue is resolved, then all of this bullshit should stop and people should use any kind of templates that make things easier. [[User:Firebug|Firebug]] 04:40, 14 December 2005 (UTC)

:::::So basically unless the developers personally continue to notify you that it is a problem, you're going to assume it goes away on its own? [[User:Snowspinner|Phil Sandifer]] 05:04, 14 December 2005 (UTC)

::::::Well, no. When the developers said a couple months ago that the new software update would fix the problem, and when the only person who is openly complaining about the use of these templates isn't even a developer at all, I'd like to get some sort of statement from the developers regarding the issues raised above. I don't need personal notification, but I think the Wikicommunity as a whole should get updates on this. When was the last time the developers were asked about the impact of nested templates? Has MediaWiki 1.5 been rolled out yet? I AGREE that the technical issues are important - and they are being overlooked due to Netoholic's insistence on shoving things down people's throats. [[User:Firebug|Firebug]] 05:14, 14 December 2005 (UTC)

:::::::I generally assume that the developers are too busy to let us know when they have not fixed a problem, and thus to assume that no news is bad news. In the absence of any evidence whatsoever that the problem has fixed, perhaps you might undertake bothering the developers, as I, at least, am rather too polite to do so with questions that they have already answered. [[User:Snowspinner|Phil Sandifer]] 05:18, 14 December 2005 (UTC)
::::::::Where can I obtain Jamesday's email address? I would like to (politely of course) ask him if MediaWiki 1.5 is in use and if this has fixed the "meta template" issues and to what extent. If devs agree the issue is fixed with the newer software, can we get rid of this nonsense? [[User:Firebug|Firebug]] 05:25, 14 December 2005 (UTC)
:::::::::I have faith that you can figure out how to contact [[User:Jamesday]]. [[User:Snowspinner|Phil Sandifer]] 05:26, 14 December 2005 (UTC)

:Can we please relax about this? [[user:Jamesday|Jamesday]] has been asked to comment. I don't think anyone is arguing real problems should be ignored. My suspicion is that this is not a black or white issue, and that the truth is that every little bit hurts and no one (not even the developers) exactly know how much is too much. Yes, we use images. Yes, we'll use some meta-templates. If we can avoid both of these, we'll need to buy fewer servers. The guideline says "avoid". It doesn't say "seek out and destroy all". Don't do things that consume resources unless there's a good reason to do so. Repeat after me - "duh". -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 05:32, 14 December 2005 (UTC)

::I was responding specifically to Netoholic's "salt the earth" comment above, where he said that even if it breaks things we should get rid of all "meta templates". You may be right that the truth lies somewhere in between. It would be helpful to know the extent of the issue as things currently stand, so we can decide just how much effort should be put into this. [[User:Firebug|Firebug]] 05:40, 14 December 2005 (UTC)

::A very wise statement. Thanks for that. And I do apologize for having added fuel to the fire. At least it was worth a try. In the mean time I might see whether I can ameliorate things a bit by replacing calls to <tt>if</tt> with the server friendlier <tt>qif</tt> (one less meta-level, thanks to AzaToth). We might then even be able to delete <tt>if</tt>. At least this would not hurt the servers. I know that this might be in vain if <tt>qif</tt> should get abolished. Just a try. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 08:47, 14 December 2005 (UTC)

== Why Templates in templates not switched off? ==

David Gerard wrote ''"The only reason templates in templates aren't switched off entirely is because they're needed for a few specific purposes."''' Can somebody please list these? Which meta-templates qualify for these "few specific purposes"? What are the requirements to qualify for "few specific purposes"?

I'm just asking this because I wonder why we got into all this trouble if meta-templates are that bad? Why haven't they been switched off? Why is this article here not a policy with a list of exceptions?

Sorry for asking, I'm relatively new to Wikipedia. I came to all this because I wondered how to add a book reference to an article. After some search I found [[template:book reference]] and just used that. Then I wondered why it's not used in more articles and just started slowly to use it on a few articles. After receiving no objections, I just continued a bit. Then some smaller problems around book reference occured and I suddenly was in the middle of template wonderland.

What I cannot understand, as a newbie, is that how is it possible that a technique which seems to be that dangerous can "slip" into thousands of articles without noticing by any of the proponents of the "don't use meta-templates group"? Why did Wikipedia not make this a policy at first hand and list the allowed exceptions or even shut down templates in templates completely? I simply do not understand.

Why do you attract people and do not take more care that they cannot do that harmful things to the servers. Why does wikipedia attract people by saying be bold and beat them afterwards. I think there must be something wrong. I just do not understand that. What I also not understand is, that I haven't seen any of the "don't use meta-templates group" appearing on the talk page of book reference. It's been there quite some time already.

Sorry for my silly questions. Sorry for the long post. I'm just a newbie trying to understand the wonders of wiki-land. Please note that it is not my intention to put a fight. And my ego does not care whether Wikipedia uses meta-templates or not. I'm just puzzeling. And I just stayed here because I found some really great articles and some bright people.
– [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 12:09, 14 December 2005 (UTC)
:Wikipedia and the MediaWiki software and the hardware complex that runs it grow organically, based on strictly volunteer contributions (cash in the case of the hardware). The template mechanism was introduced in the software to address the need for a way to include similar (identical) content in multiple places without reentering it. The way it was implemented allowed template references to be nested. Contributors, being clever, have figured this out and have defined lots of templates that use other templates. Meanwhile, Wikipedia's popularity has been increasing exponentially. It is now one of the most highly viewed sites in the world (Alexa says more than 1000M page views per day [http://www.alexa.com/data/details/traffic_details?&range=1y&size=medium&compare_sites=&y=p&url=www.wikipedia.org#top]). The software and hardware architecture have evolved in response to increasing load (see [[m:Wikimedia servers]]) to the point that I would assert wikipedia.org is one of the most sophisticated web sites in the world (note the basic problem - anyone, anywhere, can edit any page and their changes are immediately visible, combined with tremendous "view only" traffic - is much more difficult than high traffic "view only" sites like microsoft.com). The developers don't get paid. The server admins don't get paid. I believe there's one person who is paid who is in charge of the IT infrastructure. To keep the site running reasonably responsively there's an ongoing effort (again volunteer) to add more servers and analyze and improve the software efficiency. [[user:Jamesday]] is one of a handful of people (volunteers) who do this. He noticed templates including templates can cause bad performance effects, which resulted in this guideline. In general, the things done to improve performance are done without affecting user operation (turning search off being a notable exception). Turning off template inclusion of templates at this point would break lots of articles, so is clearly not a desirable solution. Is template inclusion of templates a significant performance issue at this point? I don't know. I do know that general performance is, and almost certainly always will be, a BIG issue. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 16:45, 14 December 2005 (UTC)

::That's really impressive. And shocking too. I feel the point of no return in re <tt>if</tt> has already passed. And to handle that by consensus does not work. Maybe it would be best to face the situation and put all efforts in implementing that in code instead of argumenting about how to throw it out. But I don't know how long that would take. However, this discussion here is just academic. By yelling at newbies Netoholic just pisses them off. Maybe he also hits that one who could implemement it. They just do not understand him. And the rate he does this is clearly insuffient to solve the problem. Being bold does not solve this. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 18:18, 14 December 2005 (UTC)

:::I don't think that means anything, really. Perhaps it's too late to remove {{tl|if}} outright&mdash;but that certainly doesn't mean its spread cannot be controlled.
:::In other words, we may need to keep {{tl|if}} in order to maintain the various reference templates; but that's no reason to thoughtlessly insert it into every template we can find. In particular, the various userbox templates seem to have been infused with logic extensions&mdash;and why? They're not really part of the encyclopedia proper; to stress the servers for the sake of a little extra eye candy on userpages seems shortsighted. &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 18:36, 14 December 2005 (UTC)

::::[[Template:if]] should be aggressively removed from every userbox template that it is in immediately. [[User:Snowspinner|Phil Sandifer]] 19:57, 16 December 2005 (UTC)
:::::According to [[WP:UBX]] so is no userbox there using {{tl|if}}, one ({{tl|Userbox/Vandalized}}) is using {{tl|qif}} <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 20:51, 16 December 2005 (UTC)
:::::: Are you trying to be funny? [http://en.wikipedia.org/w/index.php?title=Template:Userbox_religion&action=edit Here's] a great example of what needs to go far away. {(if}}, {(switch}}... it's all the same. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 20:57, 16 December 2005 (UTC)
::::::: I'm not trying to be funny, Phil said ''if''. Also, it's more server friendlier to use switch in a generic userbox than to use several different userboxes per meta call perspective (called templates are cached so only one database lookup per template is issued per session) <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 21:04, 16 December 2005 (UTC)
::::::::: '''"Templates" are not cached in any way. ''Pages'' are gathered from their various components, parsed, and then cached as HTML. Read [[Wikipedia:Avoid using meta-templates#How a page is built and cached]]. Each time a user page is edited, all templates and sub-templates it contains are pulled from the database. A template with 10 {(switch}} calls creates ten identical database calls and gets ten identical results. It then mashes those results into the userbox template result, and then incorporates that in the final page. The completed HTML page is then written to cache. '''-- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 21:19, 16 December 2005 (UTC)
::::::::::You have wrong, perhaps it's a so new change in the software that you are unaware of it, but template '''are''' catched. on line 108 on includes/Parser.php, it states:
<pre> $mTemplates, // cache of already loaded templates, avoids
// multiple SQL queries for the same string</pre>
::::::::::<sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 21:23, 16 December 2005 (UTC)
::::::::::: You said it right... "multiple SQL queries for the '''same string'''" - multiple occurances of {(stub}} are held in the parser... but parameterized templates ''are not all the same string''. Take [http://en.wikipedia.org/w/index.php?title=Template:Userbox_religion&action=edit this example]. {(userbox|...}} is called 19 times because the string changes each time. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 21:32, 16 December 2005 (UTC)
::::::::::::They are added to the cache as verbatim, it checks in the cache if the template name is present, if present it sets $text to it and parse it, else it makes a sql call. (see line 2420 in same file) <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 21:44, 16 December 2005 (UTC)
:::::::::::::: Wrong again. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 21:59, 16 December 2005 (UTC)
::::::::If userboxes are creating any sort of server load, they should be shot on sight - they are as wholly a non-essential function as can be dreamed up. We ought not have to play "Which way of doing this totally useless function is less destructive." [[User:Snowspinner|Phil Sandifer]] 21:12, 16 December 2005 (UTC)
:::::::::I don't think userboxes are to much of a worry, they are only used on low traffic pages (userpages) <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 21:21, 16 December 2005 (UTC)

They also tend to be used multiple times on userpages. Furthermore, there is absolutely no reason why they should need to use meta-templates. "This user is X" is a simple enough thing to communicate without being l33t. [[User:Snowspinner|Phil Sandifer]] 21:26, 16 December 2005 (UTC)
:That's why I created userbox foo using switch to reduce the relative number of sql calls if multiple simlar boxes are used on one page <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 21:29, 16 December 2005 (UTC)
::By far the easiest thing to do, though, is to just subst the templates. [[User:Snowspinner|Phil Sandifer]] 21:42, 16 December 2005 (UTC)
:::I think people can get rather angry if you start to subst on their user pages. <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 21:48, 16 December 2005 (UTC)
:::: Aza... you should be trying to help us reduce the server load. Instead, you are just expanding this practice directly in the face of better judgement. You've made it so that several templates ''can't even be subst'd'' anymore ([[Wikipedia:Template substitution#Templates that should NOT be subst'd]]). You're making a mess that you know you won't have to clean up.<br> I vote we just bite the bullet, blank and protect these damn "logic" templates. The trivial purposes we're using this for are not worth it all, and the use is expanding ''daily''. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 21:59, 16 December 2005 (UTC)
:::::That will likely confuse people - how about if we change them to read something like "You are seeing this text because this template uses a deprecated meta-template. Please correct its usage" so that at least people know what happened. [[User:Snowspinner|Phil Sandifer]] 22:03, 16 December 2005 (UTC)
::::::: Well, neither way would be pretty, but either would inspire some quick work either restoring older templates/versions to use. I can find alternatives for every instance of meta-template use. The technical side isn't the problem... it's the ''people'' that openly defy this guideline. I mean, I can understand disagreeing, but actually expanding these things at this point is just reckless. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 22:27, 16 December 2005 (UTC)

== related debate ==

The relevance of this guidelene is being debated at [[Template talk:Spoiler#Wikipedia:Avoid using meta-templates]]. People intested in these issues would be welcome to comment there. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 18:33, 14 December 2005 (UTC)

: Don't let this turn into a [[MeatBall:ForestFire]]. Discuss the [[WP:AUM]] guideline here... talk about possibly merging the spoiler templates there. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 18:56, 14 December 2005 (UTC)
::Since the queastion about whether the AUM guideline applis to the spolier templates, and indeed to the IF logic templates has been raised there, it seems that it is a courtesy to let intersted and possibly knowlegable people here know about the discussion there. This was more in the line of posting a notice of a relevant ongoing discussion in another plce, such as is often done on the pump, or via RFC. I fail to see how that is ignigting a "forest fire" (and given the size of wikipedia, i don't see that discussion on several pages has the kind of problems that MeatBall was complaining about anyway. My only experince with a case where someone cited that "guideline" was in what I continue to regard as an improper attempt to stifle valid discussion, so I do not react positively to the reference.) I might add that you are the person who raised the issue of AUM on [[Template talk:Spoiler]], and used it as the basis of a revert, to boot. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 19:04, 14 December 2005 (UTC)

== A small point ==

Templates are needed for consistency. Compare the situation where we have templates A and B. If they call a template C implementing the common denominator, and it gets edited, then, true enough, all pages containing A and B will need to be re-rendered. But if they don't call C, and A is changed then B must be changed as well. In case of several similar templates this is prone to error (I'm sure you can imagine what can go wrong). All pages containing A and C still need to be re-rendered. Fortunately most of the templates like C will not need changing frequently. That templates are a vandal-magnet is a problem all by itself. Suppose someone would put something nasty on disamb? Perhaps it would be better if we only allowed high-frequency templates to be changed only by registered users who have been around for a while. But that's probably to unwiki of me. Another thing: might it be possible to make only that part of a page affected by a template re-render if that template changes? That would solve a lot. Also if an article is edited and only stuff outside template calls changes, they wouldn't need to be called again, would they? I know, our develepors are busy enough as it is, but hey, one can dream (or have a wishlist). [[User:Gerbrant|Shinobu]] 19:55, 16 December 2005 (UTC)
:Yes, if A and B have a commonality that is changed without a template the net number of articles to be re-rendered is the same, BUT if it's done by modifying a common template C the software immediately marks cached versions of all of the articles as being out of date. With templates using templates, this can result in a tremendous burst of activity that is smoothed out somewhat if instead several templates are modified each affecting only a subset of the total number of articles. The software could keep a queue of cache invalidation requests and meter them to a reasonable rate (even do them asynchronously to the change of the template), but I'm guessing this would be a fairly tricky change to get right. Re-rendering only part of a page is not possible given the current hardware/software architecture (the squid servers, which are the primary caching mechanism, work by caching entire page contents). This could potentially be done using features fairly recently added to the squid software, but again it wouldn't be easy. I think the bottom line is that the developers know there's interest in this, they would like to do something if they could, they aren't stupid, and it hasn't been done - my take-away is that it must be VERY hard. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 23:57, 16 December 2005 (UTC)
Hm. In that case I think it will probably be solved at some point, since we actually do need it. [[User:Gerbrant|Shinobu]] 21:01, 19 December 2005 (UTC)

== Incorrect example ==

Neither {{tl|Metastub}} nor the stub tempaltes (not categories) created using it, nor stub types in general, are or use meta-tempaltes in any way, so they are not appropriate for mention here. Furhtermore, new stub types are normally subject to a proposal and approval process, precisely to avoid "scope creep" and "spur-of-the-moment" creation of new stub types, see [[WP:WSS/P]]. As a result i think the entire "scope creep" section is invalid, as the removal of this clearly incorrect example leaves it without any example at all, and deprices it of what the project page says is currntly the principle example. If that is the principle example of meta-tempalte involvement in scope creep, there is none. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 22:42, 16 December 2005 (UTC)

: While the specific examples are perhaps out-dated (thanks to this guideline's existence), we have much BIGGER fish to fry lately and the section should remain, but be updated. Latest evil-doers can be found at [[:Category:Wikipedia special effects templates]] and [[WP:UBX]]. UBX is a particularly good "scope creep" example. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 22:48, 16 December 2005 (UTC)

== Offer of assistance ==

I would like to offer my assistance to anyone looking for ways to make a template work while also following this policy and general good practices. Please contact me on my talk page and describe what you're trying to achieve. I also run a bot which can assist with some conversion/migration tasks. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 07:34, 18 December 2005 (UTC)

:Maybe you could put that on your user page? Maybe with some pointers to your works (maybe with examples)? Thanks for the offer. Maybe I could ask for some bot run in the future. I didn't recognize that you also operate one. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 09:13, 18 December 2005 (UTC)

== Maintainability and liability ==

There is a saying in the computer programming world: “Premature optimisation is the root of all evil”. While a reasonable degree of responsiveness (which Netoholic’s revert warring does nothing to promote) is worthwhile, aggressively attempting to optimise the servers at the expense of maintainabilty ties up the time and work of editors. Even for editors such as myself who prefer to work on editing other people’s work, it is busywork and a distraction from checking core quality. Some people underestimate the importance of useful back-editing in handling the rubbish (and libel; the John Siegenthaler incident isn’t a worst case) that Wikipedia absolutely must keep under control if it is to survive. [[User:Susvolans|Susvolans]] [[User talk:Susvolans|⇔]] 16:27, 18 December 2005 (UTC)

:This policy has been on the records for months and has been systematically ignored. I see little reason to call a clean up at this point premature. [[User:Snowspinner|Phil Sandifer]] 17:17, 18 December 2005 (UTC)

: Susvolans, ''you'' may disagree with this policy but then you don't need to do any work. All you need to do is allow me and others to do this "busywork" of cleaning up meta-templates. My biggest barrier right now is people reverting my efforts. Go work on articles, and I'll (we'll) fix the templates. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 17:46, 18 December 2005 (UTC)

:: The busywork I was talking about was maintaining by hand pages that have long text instead of templates. [[User:Susvolans|Susvolans]] [[User talk:Susvolans|⇔]] 17:49, 18 December 2005 (UTC)

:::All well and good that you don't want to do this. The developers have asked you to do it anyway, however. So do it anyway. [[User:Snowspinner|Phil Sandifer]] 17:50, 18 December 2005 (UTC)

:I agree with Susvolans. To Susvolans: I would propose to stop discussing here. It is pointless. We now have 21'000+ articles that depend for example on [[template:if]] or its server friendlier replacement [[template:qif]] (most via meta-templates). This is 2.6% of all wikipedia articles. That's a fact. It can't be stopped anyway. It might pass a TfD and then it might go to the holding cell. And then? Good luck in fixing 21'000 articles! – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 19:06, 18 December 2005 (UTC)

::Actually, I suspect that, having just killed [[Template:If]] without removing it at all, the damage will be cleaned up by the users by dinner. [[User:Snowspinner|Phil Sandifer]] 19:27, 18 December 2005 (UTC)

:::Yes. because I have it almost converted to qif. So why don't you kill qif, please? I'd love to watch this! – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 19:42, 18 December 2005 (UTC)

:::::Please refrain from rejoicing at demonstrations of denial of service attack vulnerabilities. Doing so, and deliberately acting in ways known to make them worse, despite repeated requests not to do so, is unhelpful. [[User:Jamesday|Jamesday]] 20:27, 18 December 2005 (UTC)

::::::Seconded. That would be the precise phrasing I was grasping for - [[User:David Gerard|David Gerard]] 20:36, 18 December 2005 (UTC)

::::To give you an idea of how bad these templates are, killing if locked the database briefly. [[User:Snowspinner|Phil Sandifer]] 19:44, 18 December 2005 (UTC)

:::At least I do not have to work on converting if to qif any longer. Thanks! – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 19:48, 18 December 2005 (UTC)

::::: Way to be a team player... -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 20:33, 18 December 2005 (UTC)

::::Please instead work at reducing the use of qif to reduce the harm. [[User:Jamesday|Jamesday]] 20:27, 18 December 2005 (UTC)

:::::I hope that this SPECIFIC REQUEST FROM A DEVELOPER not to use qif now ends the debate? [[User:Snowspinner|Phil Sandifer]] 20:32, 18 December 2005 (UTC)

::::::Specifically, from Wikimedia's DBA - [[User:David Gerard|David Gerard]] 20:36, 18 December 2005 (UTC)
===So do we simply stop cleaning up? ===
So I was going to try to replace stuff like {{tl|if defined call3}} with {{tl|qif}}: should I simply not bother?
Does the transclusion system cache templates?
So if a given article uses five templates, all of which use {{tl|qif}}, does the system fetch {{tl|qif}} five times, or just the once?
If the answer is "yes, it caches them", and if those five templates currently use various different things all of which are more complicated, like {{tl|if}} or {{tl|if defined call3}}, would it not be better to consolidate them so that they all use {{tl|qif}}, which is apparently the most efficient and server-friendly of all the options at present?
Yours puzzled and feeling slightly battered —[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 09:27, 19 December 2005 (UTC)
*To my best knowledge, templates are cached, but if a template is used five times with ''different parameters'' each time, then it counts as five different templates as far as the server is concerned - hence requiring five fetches. What you've been doing is an improvement, but a further improvement would be not using QIF either. In general there's no need for any template to call any other template. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 10:08, 19 December 2005 (UTC)

==Feature request==
* '''Experimental technical prefetch''' — Some high traffic template could be stored in a high-speed buffer to be used as is. <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 02:26, 17 December 2005 (UTC)
*<small>(moved to talk page since this isn't an existing alternative to meta-templates, but a feature request. Submitting it to [[BugZilla]] may be useful). [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 21:41, 18 December 2005 (UTC)</small>

==Protected==

Owing to foolish removal of the policy tag on querulous and insubstantial grounds, I have protected the page. And don't say I didn't warn you - [[User:David Gerard|David Gerard]] 21:02, 18 December 2005 (UTC)

*Seconded. Any issues related to copyright, legality or server load can be and ''are'' imposed by Jimbo, the Board or the Devs. I would like to hear a good reason for ''not'' deprecating all "conditional" templates, because their practical use is outweighed by the problems they cause. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 21:37, 18 December 2005 (UTC)

*Speaking of [[Wikipedia:Protection policy|policies]]: "Admins '''must not''' protect pages they are engaged in editing, except in the case of [[Wikipedia:Vandalism#How to spot vandalism|simple vandalism]]." &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:07, 18 December 2005 (UTC)
**Removing a policy tag counts, thank you for playing! - [[User:David Gerard|David Gerard]] 22:16, 18 December 2005 (UTC)
***By definition, edits made in good faith are ''not'' vandalism. Removing a policy tag from an undisputed policy page (in an attempt to stir trouble) would be vandalism, but removing a policy tag from a page that one genuinely believes does not contain a policy is ''not'' an act of vandalism; it's a content dispute. You were indirectly involved in an edit war, and you ended it by protecting the page in your preferred state. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:47, 18 December 2005 (UTC)
****Removing that policy tag shows a lack of understanding of what Wikipedia policy actually is and how it works. Repeatedly removing it after being told not to by people more knowledgeable on the matter is, to put it mildly, misguided. This is not a content dispute, it is important to system integrity. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 00:28, 19 December 2005 (UTC)
*****I agree that the removal of the policy tag was misguided, but it was '''''not''''' vandalism (simple or otherwise). There are plenty of revert wars in which one side is flagrantly wrong, but that doesn't mean that their edits are made in bad faith. I understand why David protected the page, but I believe that this decision was hasty and premature. Rather than taking the time to solve the problem (by politely explaining why the policy tag was applicable), he took the shortcut of blocking all non-sysop edits (including legitimate ones), and threw in a mention of how "foolish" his opponents were. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 00:51, 19 December 2005 (UTC)

*Where exactly was this adopted as policy? Where was the community consenus obtained, or the decreee from jimbo posted? (Jimbo is as far as I know the only person entitled to make policy without gaining an explicit consensus.) In fact I don't see any basis for having even the {{tl|guideline}} tag on this page, but that is far mor arguable than the policy tag. Unless someon can post a link to the place where consensus was obtained, or to a clear statement from jimbo makign this policy, i think the policy tag should be removed, and I will probably do so after a delay for evidence of adoption to be provided. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 22:07, 19 December 2005 (UTC)
**From [[Wikipedia:Policies and guidelines]]: "A select few important policies are not decided by community consensus, but imposed by Jimbo, the Board, or the Developers - in particular, anything related to copyright, legal issues, or server load." --[[User:Thebainer|bainer]] ([[User_talk:Thebainer|talk]]) 22:15, 19 December 2005 (UTC)
**''"A select few important policies are not decided by community consensus, but imposed by Jimbo, the Board, or the Developers - in particular, anything related to copyright, legal issues, or server load."'' --[[Wikipedia:Policies and guidelines]]. In this particular case, Jamesday, as head sysadmin, has repeatedly and explicitely stated that metatemplates have a large negative impact on the servers. [[User:Raul654|Raul654]] 22:15, 19 December 2005 (UTC)
***Not that it's required, but Jimbo did endorse Jamesday's original statement. Correct? &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:49, 19 December 2005 (UTC)
****I believe he did at some point, but cannot remember where I saw it (It could have been by email, on IRC, or on the wiki) [[User:Raul654|Raul654]] 00:04, 20 December 2005 (UTC)

==Potential alternative to meta-templates==

AzaToth has written [[m:User:AzaToth/Logic]], which implements conditionals as Mediawiki builtins; I've brought this code to the attention of wikitech-l and also suggested he speak to Brion, Tim and/or Jamesday on #wikimedia-tech - [[User:David Gerard|David Gerard]] 21:50, 18 December 2005 (UTC)

*Sounds like an improvement since it doesn't require a db query, but wouldn't it be possible to make such calculations clientside rather than serverside? [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 21:57, 18 December 2005 (UTC)
**Yes it would be possible by defining classes and using javascript, but it have some problems, one is that redundant information will be transmitted and increase the bandwidth (dont know how much this will affect on the total), and two if using javascript, all templates will be evaluated even if they are not to be shown (My implementation is ment to be run before any other parsing of the wiki code is performed), third is that if using javascript, it's problematic to access parameters (you could include all paramters, but how would you then decide what paramter belongs to what part of the document) <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 22:15, 18 December 2005 (UTC)
*If AzaToth's method (or some variation) proves feasible, it should satisfy everyone. This is precisely the sort of solution that I've been hoping for (since before I even knew that meta-templates existed, let alone learned of their negative impact). I strongly believe that we should wait to see how this pans out before engaging in the nightmarish process of eliminating all existing implementations of conditional templates. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:07, 18 December 2005 (UTC)
**In terms of convenience, server load issues entirely trump the need for meta-templates. If the devs say "stop doing this now" and there may be an alternative available later, then we should not continue doing this in the hope that the alternative may appear. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 22:20, 18 December 2005 (UTC)
***I'm not attempting to downplay the importance of this issue, but some of these applications would be a '''huge''' pain in the neck to remove (without a suitable replacement for the meta-templates). This would require countless article edits, and would force users to alter the manner in which familiar templates are used. I see little harm in at least waiting until we've learned whether AzaToth's code could be implemented in the near future. In the meantime, let's concentrate on killing the flagrantly frivolous uses of meta-templates. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:47, 18 December 2005 (UTC)
****I realize that it would be a pain to remove certain things, and that certain editors may have to change their behavior with those templates. However, this problem is going to get worse the longer we wait. Given the fact that the Devs are extremely busy, it sounds unlikely that they will implement AzaToth's (excellent) suggestion any time soon. In general, unless you have explicit word from a Dev that they ''will'' implement a thing like this reasonably soon, it is safe to assume that they won't. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 00:34, 19 December 2005 (UTC)

==My concerns==

I take this issue very seriously. If the use of meta-templates is harming Wikipedia, something must be done to stop this.

I am, however, curious as to why the guideline wasn't elevated to the level of policy sooner, and why this was done only when a dispute regarding the guideline's validity began. I'm not arguing that the "policy" status is illegitimate, but I can understand why someone might suspect that this sudden change was made purely as a means of justifying controversial edits (the removal of meta-templates). Comments on the part of Jimbo have been referenced, and I would sincerely appreciate a link.

Additionally, it's highly irresponsible to deliberately break (and protect) a template, thereby forcing others to clean up the resultant mess "by dinner." When a reader is simply attempting to obtain information from the encyclopedia, a message asking him/her to "fix the page to exclude this template" is not helpful, especially considering the fact that the template in question usually doesn't even appear directly on the page (which is likely to confuse people in such a manner that they remove useful templates from articles, instead of removing the meta-templates contained therein). &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:07, 18 December 2005 (UTC)

:To be clear, it wasn't a matter of "Clean up these templates before dinner or no dessert." I had faith - faith that appears to be well-founded - that the templates would get tidied in about six hours, and that this would be the most effective way to kick-start the process. [[User:Snowspinner|Phil Sandifer]] 22:09, 18 December 2005 (UTC)

::I understood your logic, but I believe that this may have resulted in more harm than good. How many people responded to the request to "exclude this template" by removing the only templates that they saw in the articles that they were reading (when in actuality, the meta-templates were contained therein)? Is there even a way to check?

::At the very least, you should have selected less ambiguous wording. Ideally, you would have waited until the template was orphaned, instead of temporarily compromising the quality of however many articles were affected. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:47, 18 December 2005 (UTC)

::In fact, I think it was about ten minutes total - [[User:David Gerard|David Gerard]] 22:20, 18 December 2005 (UTC)

:::Presumably, this was due to the fact that most applications of {{tl|if}} already had been replaced with {{tl|qif}}. I implore everyone involved to please not take this sort of approach with the latter template. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:47, 18 December 2005 (UTC)

:Here's the issue in a nutshell. It was marked guideline, in the sense that metatemplates were/are not absolutely 100% forbidden. They should be avoided whenever possible, unless you have a really, really good reason not to. Unfortunately, this distinction was (a) too subtle, and (b) more-or-less ignored by people who went about creating the abominations we have today. Obviously the subtle approach has failed, misreably. As such, I've marked it as policy, which it was all along. [[User:Raul654|Raul654]] 22:10, 18 December 2005 (UTC)

::And don't forget the attempts to run a vote on computer science and database and cache performance. Certainly my first exposure to faith-based computer science on this level ... outside a commercial context - [[User:David Gerard|David Gerard]] 22:20, 18 December 2005 (UTC)

:::I'm sure that if he were to hear it, [[Scott Adams]] would make a lovely strip out of that. You know, I think gravity is very inconvenient this month. Let's vote on reducing it. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 22:23, 18 December 2005 (UTC)

::::Indeedy. RFC that Newton guy, we had 68% against. And as for climate change ... - [[User:David Gerard|David Gerard]] 22:32, 18 December 2005 (UTC)

:::::I'm reminded of an [http://www.theonion.com/content/node/39512 article] from [[the Onion]]. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:58, 18 December 2005 (UTC)

:::If you think people are trying to vote away technical problems, you aren't paying attention. — [[User:Omegatron|Omegatron]] 23:08, 18 December 2005 (UTC)
::*Those people who claim that WP:AUM is not policy are unaware of the nature of Wikipedia policy. Technical and legal issues trump consensus. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 00:42, 19 December 2005 (UTC)

::::From [[Wikipedia:Policies and guidelines]]: "A select few important policies are not decided by community consensus, but imposed by Jimbo, the Board, or the Developers - in particular, anything related to copyright, legal issues, or server load." --[[User:Thebainer|bainer]] ([[User_talk:Thebainer|talk]]) 01:12, 19 December 2005 (UTC)

==Take a step back and analyze the situation.==
Much of this acrimony is simply finger-pointing (on ALL sides) about technical problems. No, they can't be voted away. But they '''can''' and '''should''' be fixed. There are two underlying problems here that I see:
#MediaWiki doesn't have native support for [[conditional]]s and [[Boolean]] operations, so templates must be used to obtain such functionality, which is inefficient of server resources.
#MediaWiki has a broken transclusion feature that causes nested templates to use far more server resources than they should.
Expecting users to forever constrain their functionality for the sake of software limitations is foolish and fundamentally un-wiki. The underlying bugs have to be fixed; there is no other alternative. Conditional and Boolean operations must be added to the engine so that they don't have to be invoked through templates, and the transclusion code must be altered so that it doesn't choke on nested templates. I think we have a right to ask <strike>why the developers haven't fixed the issue yet, despite complaining</strike>&nbsp;&nbsp;'''when a permanent fix will be implemented, given that we have known''' about the resulting problems for nearly a year. No doubt it's easier to ask users to alter their behavior than to fix the software's shortcomings, but it's also <strike>lazy and stupid</strike>&nbsp;&nbsp;'''not a viable long-term solution'''. [[User:Firebug|Firebug]] 00:30, 19 December 2005 (UTC)
*Regarding finger-pointing, you have just called the Devs "lazy and stupid" for asking Wikipedia users to not abuse a certain feature. Please don't do that. You have every right to ask the Devs anything; I'd estimate that their answer to this particular issue would be that it's a good idea, but that they have other priorities. If they ask that we not abuse this feature until and unless it is fixed, that is entirely within reason. It would also be entirely within reason if they were to disable it entirely for the time being. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 00:39, 19 December 2005 (UTC)
**You're right, my original comment was intemperate. Mea culpa. See revised version above. If the developers think that there are more important issues to fix, I would be interested in knowing what those issues are. If nested templates are such a server problem (and apparently the if template locked the database today) then it would seem like it should be a high priority issue. Furthermore, the amount of bile being generated over this issue (and I admit I am not entirely innocent here) is harmful and poisonous to Wikipedia. This whole issue is an open sore, and it needs to be healed. And the only way to permanently do that is to fix the underlying technical issues - not to tell users to change their behavior in ways that are inconvenient and distract from our goal of encyclopedia-building. [[User:Firebug|Firebug]] 00:46, 19 December 2005 (UTC)
***We had no problems conveniently building the encyclopedia before the logical templates existed (which has only been for a couple of months, after all). IIRC, the Devs are busy with the fact that Wikipedia traffic has roughly ''doubled'' since September. It would be great if they could implement a better system for WikiProgramming, and that is indeed the ideal solution. But it would require thought, implementation and testing - so in the meantime we should pay them heed. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 00:52, 19 December 2005 (UTC)

:It is a perfectly viable long term solution. In the worst case, it means we have fewer pretty boxes. We can live. [[User:Snowspinner|Phil Sandifer]] 00:55, 19 December 2005 (UTC)

== High-risk templates ==

There is currently a proposal to protect all high-risk templates, this may include meta-templates. See [[Wikipedia:High-risk templates]]. --[[User:Thebainer|bainer]] ([[User_talk:Thebainer|talk]]) 23:24, 18 December 2005 (UTC)

== Let's get this straight ==

=== Facts ===

* '''Templates are harmful'''
# Templates (and categories) incur much more server load than other operations like editing.
#* The only quantifiable description of the damage I have ever read is that [http://commons.wikimedia.org/w/index.php?title=Commons:Images_on_normal_pages_or_categories:Vote&diff=104320&oldid=104276 category views take 1000+ times as many resources] as regular page views.
# Especially templates that are used on many pages.
# Especially templates that are used within other templates (here called "meta-templates").
# Especially when they are edited.
# Using fewer templates on fewer pages, especially templates within templates, would alleviate the server load problems.
* '''Templates are helpful'''
# Templates help keep references thorough and content consistent.
#* Examples: {{tl|Book reference}}, {{tl|FishBase species}}
# Templates make article wikitext simpler and more accessible to non-technical editors, by hiding complicated markup.
#* Examples: {{tl|clear}}, {{tl|taxobox}}, stub templates
# Templates and "meta-templates" make maintenance much more efficient, from a human standpoint.
#* If the same text needs to be updated on many pages, it is quicker to edit a single template than to edit all of those pages by hand (the "busywork" referred to on this talk page). This frees up editors to contribute content instead of being janitors.
# Templates and "meta-templates" are convenient, easy to remember, and prevent mistakes (like malformed HTML that works on the editor's browser, but not everywhere)
#* Examples: {{tl|tl}}, {{tl|edit}}, {{tl|prettytable}}
* '''Templates and categories aren't an inherently bad feature; they're just implemented inefficiently'''
** This ''can'' be fixed in the future, allowing us to use templates as convenient, but it won't be happening any time soon.
* '''This page, as currently written, can be interpreted in many different ways'''
** "Avoid" is a vague word, interpreted by some to mean "all templates and the users who create them are to be shot on sight", and interpreted by others to mean "don't use them for trivial things like userboxes, but they're ok where they help with encyclopedia content".
** The term "meta-templates" is now being used to refer to regular templates, templates that only have simple HTML and visual formatting in them, templates within templates, and so on.

=== Opinions ===

* Subst'ing commonly-used templates is more beneficial to Wikipedia than transcluding them.
* "Meta-templates" should be "avoided". (Whatever that means...)
* Features that are currently implemented with templates would be better implemented directly in the software
* Templates that only contain simple HTML should be deprecated and deleted.
* Templates are only used because editors are lazy and don't understand anything about servers.
* ...

No one is disputing that they cause technical problems or trying to make the problems go away by consensus. We're disputing ''opinions'' about how much we need to limit useful functionality to alleviate those problems. The developers just say "avoid unnecessary server load". But what does that mean? Clearly, no one agrees.

This page needs to be more explicit about what is acceptable before it becomes guideline or policy. Then it will be taken seriously and won't be susceptible to abuse and misrepresentation. — [[User:Omegatron|Omegatron]] 02:24, 19 December 2005 (UTC)

:The lead DBA has flatly said DON'T USE THEM UNLESS WE HAVE TO. What the hell is hard to understand about this? [[User:Snowspinner|Phil Sandifer]] 02:40, 19 December 2005 (UTC)

::Yes, that's what I just said. — [[User:Omegatron|Omegatron]] 02:56, 19 December 2005 (UTC)

:::I am finding it very hard to believe that you genuinely find this hard to understand. [[User:Snowspinner|Phil Sandifer]] 03:26, 19 December 2005 (UTC)
::I can definitely see both sides of this, and I suspect the problem is the interpretation of ''unless we have to''. Since anything that can be done with a template (any template) can be done in straight wiki-code, in a strict since "unless we have to" means never. I genuinely don't think it's necessary to never use templates. Similarly, I genuinely don't think it's necessary to never use meta-templates. Like most issues, I suspect this one is not simply black or white. A meta-template used by 4 other templates which are in turn used on a total of 10 articles is not a problem. A meta-template used by 100 templates which are in turn each used by 100 other templates used on a total of 50,000 articles is a problem. The question from the "I'd like to use these things, they're damn convenient" side is where is the line? From the other side, I think the recommendation is to start with an assumption that "never" would be good, and anything more than that should have a VERY good justification - always try to find a reasonable alternative. This says don't do the meta-template used by 4 other templates that way - just duplicate the code. Sure, it's probably not a problem, but for something used that little who cares? However, how about &#123;{[[Template:U.S.A. State Congressional Delegation|U.S.A. State Congressional Delegation]]}} (50 derived templates, total of 535 articles including it)? Is there some rule of thumb we could develop as a guideline, perhaps with more variables than number of templates and total articles (like frequency of changes to the articles)? Should we inline (subst) infoboxes? Are there high runner templates we can work on getting rid of (or duplicating in code)? People '''want''' ways to increase consistency between articles (it adds to the professional look) and to avoid duplicating wikicode. Just a guess, but I suspect many contributors are programmers and used to using macro languages. Having one here, but being discouraged from using it (the more widely used, the worse it becomes) seems kind of perverse. Hard rules would help. Avoid if possible (when it's always possible to avoid) just isn't that clear. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 04:39, 19 December 2005 (UTC)

:::I would conclude from that "Avoid in all cases, but if someone comes by and manages to make a persuasive case that they have found an essential meta-template, go ahead and accept that." [[User:Snowspinner|Phil Sandifer]] 04:41, 19 December 2005 (UTC)

==== Examples ====
::::Specific example: &#123;{[[Template:succession box|succession box]]}}. Using this template makes any article using it use 7 templates. Any change to any such article requires at least 8 database fetches (one to fetch the article contents, 7 more to fetch the contents of the templates). From a DB perspective, using this template makes the article 8 times more expensive to regenerate (than if no templates were used at all). I got tired of counting references at 10,000. I'd venture a guess that most of the references could be replaced with a similar version defined in a single template reducing the DB cost of regenerating these articles by a factor of 4. We could create a family of such templates. Should we? -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 05:19, 19 December 2005 (UTC)

::::: Succession boxes are [[Template:S-start/Instructions|entirely too overthought]]. One could do the same function with a single template - no meta-templates, no sub-templates. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 06:17, 19 December 2005 (UTC)
:::::*Exactly. That would also make the templates easier to use; if a newbie wants to write a sucbox, he has to read through several pages of manual to figure out how it works, so it's hardly more convenient to all - and to a non-editor, the end result looks the same both ways. But it would actually be easiest if the developers simply disabled templates-in-templates for the time being. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 10:27, 19 December 2005 (UTC)
::::::*Are you suggesting that the developers should simply break [[Wikipedia:Babel]] (as a prominent example), along with everything else that uses this feature? &mdash;[[User:Lifeisunfair|Lifeisunfair]] 10:55, 19 December 2005 (UTC)
::::::If 'Succession box' can be redone as a single template... '''please do so'''. Or give me some pointers on how to replace the QIFs in s-ttl and I'll do it. I can see a way to just have the descriptive text there passed in as a parameter, but since no such parameter exists in the current calls any which use it would have to be rewritten. Is there another way to handle it? It'd be nice to stop kvetching about the problem and start fixing it. I'd identified 'Succession box' as a fairly small item which has QIF calls and gets used extensively (there are even templates which call 'Succession box' like 'template:Pope')... a logical candidate for fixing. However, when I started looking around for pointers on ''HOW'' to fix it all I found was this monstrous argument. Maybe we could identify the most heavily used simple nested templates and find ways to clean those up. Logically it isn't the templates that make two internal calls and get used on five pages which are causing server load problems. Fixing the five biggest resource hog templates is likely to do more good than doing fifty at random. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 13:47, 20 December 2005 (UTC)
:::::::[[WP:HRT]] has a list of the most used meta-templates and the most used templates overall. --[[User:Thebainer|bainer]] ([[User_talk:Thebainer|talk]]) 13:54, 20 December 2005 (UTC)
::::::::Thanks! That's perfect. So let's talk about some of these:
*Ed - This template seems harmless enough on its own, but it gets called by every other template under the Sun to add those little 'edit' links in the upper righthand corner of the template box. Is there any reason it can't be bot replaced with something like <nowiki>'<span style="float:right;">''[http://en.wikipedia.org/w/wiki.phtml?title=Portal:Middle-earth/Featured_article&action=edit edit]''</span >'</nowiki>? I used that to do the same task at [[Portal:Middle-earth]] (not to avoid server load... I didn't know about this problem... or the 'ed' template... we won't talk about my user page). This template is generally only 'two levels' deep... does 'depth' of meta templating have a more significant impact than frequency of doing so?
**As I understand it, the relevant factors are how many articles ultimately include the template regardless of depth (this affects how much cache invalidation has to happen when the template is changed) and how many templates must be fetched when regenerating an article when the article is changed (depth is related to this, but not the only factor). IMO Ed should be subst'ed where its used. Note that leaving a comment on what was subst'd might be useful. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 17:05, 20 December 2005 (UTC)
*Edit, Ed2, Ed right, Ed div - Minor variations on the above. Again, any reason not to bot replace them? Shouldn't impact 'Joe User' either way... the source template still comes out the same way. These seem to have no purpose except making it quicker for template builders to set things up.
**Yup, seems like bot-replace is in order. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 17:05, 20 December 2005 (UTC)
*Country - Simple template which gets called by every country specific template. Again, seems to make it easier for template BUILDERS rather than template USERS. Any reason not to bot replace all calls to this one with the equivalent logic in the calling template?
**Agree, more bot-replacing. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 17:05, 20 December 2005 (UTC)
*Test & Welcome - These aren't Meta, but they are everywhere. Do single level transclusions significantly drain server resources? If so, running a bot to convert these into 'subst:' would have a big impact.
**IMO welcome should always be subst'd, however I wouldn't expect pages including these to be regenerated often enough to be a significant resource issue. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 17:05, 20 December 2005 (UTC)
*Taxobox (group) - These have a separate template for each portion of the box, which (theoretically) is to be used on the page of every type/class of living creature. Are multiple template calls in one article better or worse than a single call which then calls each of the sub levels? Couldn't this be converted into a single call WITHOUT sublevels? Could that be bot driven or would it need to be manually updated?
**Per above, I believe total templates per article is one issue. Taxobox is done the way it is because at the time there was no way to do conditional table entries. This exists now, and taxobox could (and should) be redone as a single template. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 17:05, 20 December 2005 (UTC)
*Et cetera... just those few cover the most heavily called 'shallow' templates. Are templates with greater nesting a bigger problem? If so we should look at whether they can be unnested (like 'Succession box' and related progeny). That one seems to be both deeply nested and extensively used, so fixing it should probably be a priority. --[[User:CBDunkerson|CBD]] <big><sub>[[User talk:CBDunkerson|&#x260E;]]</sub></big> <sup>[[Special:Emailuser/CBDunkerson|&#x2709;]]</sup> 14:26, 20 December 2005 (UTC)

:Maybe we should create a template performance improvement project. -- [[user:Rick Block|Rick Block]] <small>([[user talk:Rick Block|talk]])</small> 17:05, 20 December 2005 (UTC)

::I would think that several of these already have an associated project (which would probably be in a better position to improve things without breaking too many articles). The Military history project is going to deprecate {{tl|campaign}}, for instance; similarly, I would think the taxobox templates would be done by the Tree of Life project, and so forth. &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 17:19, 20 December 2005 (UTC)

----
''(back to opinioins)''

::Phil, perhaps you should get the DBA to comment here. The problem is that no one can verify what you said is true because there is no references to any DBA saying anything. <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 12:11, 19 December 2005 (UTC)
:::Part of the problem is that some (though not all) of these conversations evidently occurred via IRC. The community should be privy to such statements, so they should be reiterated (not merely cited) at Wikipedia proper. Hearsay is insufficient. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 12:21, 19 December 2005 (UTC)
::::You've already been told by the DBA himself on this very page. What more do you want? [[User:Ambi|Ambi]] 12:38, 19 December 2005 (UTC)
:::::[[User:Jamesday|Jamesday]]'s statements here have been rather vague, and I'd like to hear from some of the other developers. Also, I'm still waiting for someone to provide a link to Jimbo's comments. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 12:56, 19 December 2005 (UTC)
::::::You can't wikilawyer around database specifications. You've been told to avoid them. The developers have more important things to do than come here and convincing people of that fact. [[User:Ambi|Ambi]] 14:03, 19 December 2005 (UTC)
:::::::Excuse me, but I'm not attempting to "wikilawyer" around anything. I merely want to understand the nature and extent of the problem. I'm more than willing to abide by the developers' recommendations, but [[User:Jamesday|Jamesday]]'s statements on this page are not particularly specific. "Using resources unnecessarily is not helpful," but how should we define "unnecessarily"? (Technically, all templates are unnecessary.) Should we merely "work at reducing the use of qif," or should we ban it entirely? &mdash;[[User:Lifeisunfair|Lifeisunfair]] 14:27, 19 December 2005 (UTC)

:::::::I agree with Lifeisunfair - Netaholics bot has just destroyed hours of my work, and I am faced with hours more work repairing the damage. This had better be truly official policy with a consensus among developers, rather than one persons POV, or else I am going to start reverting these corruptions. The developers have NO MORE IMPORTANT THING TO DO than to make editing straightforward and user friendly, avoiding as much as possible mid-course policy changes or clarifications that ruin multiple pages which require hours to repair. [[User:PAR|PAR]] 15:58, 19 December 2005 (UTC)
::::::::Jamesday is the leader of the DevTeam. It is not his POV that we yield to, but his technical expertise. This is not a midcourse policy change, either - just something that has been systematically ignored by many users, which needs cutting back. [[User:Radiant!|R]][[User_talk:Radiant!|adiant]][[meta:mergist|_<font color="orange">&gt;|&lt;</font>]] 16:20, 19 December 2005 (UTC)
:::::::::From the users' perspective, the page's sudden shift from "guideline" to "policy" ''is'' a change, even if it was intended to be a policy all along (in which case it should have been labeled as such).

:::::::::And again, Jamesday's technical expertise is unchallenged (by me, at least), but his precise stance is unclear. Does he believe that merely reducing the use of conditional templates (and/or utilizing them only for certain applications) would be sufficient, or does he believe that it's important to eliminate them entirely? There appears to be an assumption that the latter interpretation is correct, but I've yet to see him explicitly issue such a statement.

:::::::::Regardless, the issue of how to resolve the present situation should be discussed. I'm of the opinion that the affected templates should be reconfigured in a manner that allows them to transition as smoothly as possible, not broken en masse as a means of lighting a fire under the editors. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 22:49, 19 December 2005 (UTC)

==Summing up this "debate"==

If this can be called a debate...

The devs have, point blank, said to use meta-templates less. This is clearly their intent, and this is the intent that will be enforced. Deliberately putting meta-templates into use when you are aware of this page is a bad thing - expect to make a lot of people very angry, including those with administrator powers. Putting meta-templates into use when you're not aware of this page is a slightly less bad thing, and will result in your being made aware of this page. No amount of trying to say that you want more developers to tell you to stop or that the developers didn't tell you to stop clearly enough changes this fact. The developers were perfectly clear, and it is, at this point, time to listen to them. And that's really all the discussion that is necessary on the matter. If you put a meta-template into practice after this point, as far as I'm concerned, you're committing grevious vandalism with an intent to DOS attack the Wiki, and I, at least, am going to respond accordingly. [[User:Snowspinner|Phil Sandifer]] 23:42, 19 December 2005 (UTC)

:"''The devs have, point blank, said to use meta-templates less''" - In response, the community has said, point blank, to fix the damn bugs. It's utterly unjustifiable to optimize the time of a few developers by wasting the time of thousands of Wikipedia editors. [[User:Firebug|Firebug]] 02:24, 20 December 2005 (UTC)

::You do realize these developers are [[volunteer]]s, don't you? We're hardly in a position to demand anything from them. &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 02:34, 20 December 2005 (UTC)

:::I was under the impression that at least the DB admins were paid employees of MediaWiki foundation. Was this incorrect? Has any consideration been given to hiring paid developers or admins? The fact that we have to take orders from developers if they're volunteers (as opposed to the giving the orders to them if they're paid) is a serious shortcoming. [[User:Firebug|Firebug]] 02:36, 20 December 2005 (UTC)

::::It's my impression (which could be partially wrong) that none of the technical staff are paid positions. The foundation has enough problems raising funds for hardware that I think paid developers are out of the picture for the near future.
::::On another note, I don't think the devs are giving us orders per se. They're trying to keep the site running; if we ignore them and cause the servers to collapse and die, it's more of a problem for us (the users) than it is for the devs, obviously. &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 02:40, 20 December 2005 (UTC)

:::::Incidentally, our editors here are volunteers too, but no one seems to have a problem with giving us orders. [[User:Firebug|Firebug]] 02:57, 20 December 2005 (UTC)

:<font style="color:#00A650;">''The devs have, point blank, said to use meta-templates less.''</font>

:Yes, we know that they should be used less. '''HOW MUCH LESS?''' You, despite your administrative status, lack the authority to divine an appropriate cutoff point.

:<font style="color:#00A650;">''Putting meta-templates into use when you're not aware of this page is a slightly less bad thing, and will result in your being made aware of this page.''</font>

:I added such functionality to several templates before [[User:Netoholic|Netoholic]] informed me of the page's existence. I actually feel guilty for having unknowingly contributed to the problem.

:<font style="color:#00A650;">''No amount of trying to say that you want more developers to tell you to stop''</font>

:Perhaps I've been unclear. I don't intend to '''''ever''''' use such template syntax again, until a developer explicitly states that it's okay to do so. I want at least one of them to issue a statement of greater specificity, not because I hope to find some wiggle room, but purely in the interest of setting the record straight. If it truly is their belief that all conditional templates should be eliminated for the time being, I want this to be made known in unambiguous fashion (thereby erasing any doubts regarding the policy's legitimacy).

:<font style="color:#00A650;">''or that the developers didn't tell you to stop clearly enough changes this fact.''</font>

:Frankly, the developers (and those privy to their wishes) ''didn't'' tell the community to stop clearly enough. This isn't a complaint on my part, but an explanation of why I (among others) made some regrettable edits. I truly wish that the conditional templates had been nipped in the bud, but they were permitted to linger and multiply for months (during which many of us were led to believe that their use was entirely acceptable). Why wasn't something done about this sooner? As far as I can tell, Netoholic was the first person to speak up.

:<font style="color:#00A650;">''The developers were perfectly clear''</font>

:No, they weren't (at least, not that I'm aware of). But please understand that I want them to be. I'm not saying, "let's all continue to use these templates until we're told not to." I'm saying, "let's be told what not to do, and hopefully no one will try to do it."

:<font style="color:#00A650;">''And that's really all the discussion that is necessary on the matter.''</font>

:That simply isn't true. Assuming that every single conditional template should be eliminated, members of the community are entitled to participate in this process. I sure as heck don't see any developer demands that we break all of them en masse (instead of phasing them out in a manner that preserves as much continuity for readers as possible). &mdash;[[User:Lifeisunfair|Lifeisunfair]] 00:37, 20 December 2005 (UTC)

::I completely and strongly agree with every point made above by Lifeisunfair. Not generally, but specifically, I agree with each point. [[User:PAR|PAR]] 01:17, 20 December 2005 (UTC)

:::And you'll note that qif has not been shot on sight - Netoholic is, to my knowledge, working his ass off to write up replacements for it. If was shot on sight, and turned out to be wholly non-harmful, aside from the database lock that editing it caused. Furthermore, I have noticed significantly less opposition to deprecating all uses of these templates since I shot if. So, really, mission accomplished. [[User:Snowspinner|Phil Sandifer]] 01:32, 20 December 2005 (UTC)

::::How many articles had legitimate templates (in need of editing) removed by users who followed the instruction to "please fix the page to exclude this template"? Unless I'm mistaken, there's absolutely no way to determine the answer to this question. &mdash;[[User:Lifeisunfair|Lifeisunfair]] 01:46, 20 December 2005 (UTC)

==[[Template:Cleanup]]==

Earlier this month, [[User:Freakofnurture|Freakofnurture]] used conditional calls to merge {{tl|cleanup-date}} into {{tl|cleanup}}. I just reinstated the former, and I want to modify the latter to add all articles containing instances of {{tl|cleanup}} accompanied by a date parameter to the nonexistent [[:Category:Inappropriate cleanup template use]] (thereby enabling us to identify and replace such invocations with {{tl|cleanup-date}}, after which we can safely revert {{tl|cleanup}} to its previous state). The template is protected, so I need an admin to do this (unless someone has an alternative plan). Thanks! &mdash;[[User:Lifeisunfair|Lifeisunfair]] 01:15, 20 December 2005 (UTC)
:I could be mistaken, but doesn't adding a category to a template require touching all of the articles that use it for the category to show up on the articles? &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 01:18, 20 December 2005 (UTC)
::There's no need to add a category. I will use the "What links here" listing for Template:Cleanup and the Pearle bot to find and fix all invocations to use Template:cleanup-date. -- [[User:Beland|Beland]] 03:20, 20 December 2005 (UTC)
:::Done. -- [[User:Beland|Beland]] 10:15, 25 December 2005 (UTC)

== [[Template:Conference reference|Conference reference]] ==

I'm not agree with the changes made to &#123;{[[Template:Conference reference|Conference reference]]}} to follow this guideline. As this guideline says, "''Meta-templates that are not essential should be avoided''", and the use of &#123;{[[Template:qif|qif]]}} in this template and others like &#123;{[[Template:Book reference|Book reference]]}}, &#123;{[[Template:Journal reference|Journal reference]]}},&hellip; are essential to have optional paramenters, and this isn't a decorative feature.

I'm agree that the server load must be minimized, but optional template parameters are very useful if not completely neccesary. The problem is not the existence of these "advanced" templates but that the MediaWiki doesn't support optional parameters. The software must be changed, I don't know what's the best technical solution, but I can can propose for example:
* to have a ''very'' special <tt>qif</tt> template that is directly handled by the MediaWiki (not really a entry in the database but implemented directly by the software to achieve that funcionality efficiently), or
* developing a new template syntax that allow optional parameters
However, until the software is changed, current edits cannot be disrupted by this guideline, i.e. {{tl|Book reference}}, {{tl|Web reference}}, {{tl|Conference reference}}&hellip; shouldn't be forbided, and when the new MediaWiki is implemented change them to be more efficient. I'm sure you know about [[WP:POINT]], ¿doesn't you? --[[User:Suruena|surueña]] 12:35, 24 December 2005 (UTC)

:The use of meta-templates is "essential" to the inclusion of optional parameters, but that isn't the context in which the policy was written. (Otherwise, ''all'' such meta-templates would be "essential.") The policy refers to cases in which the ultimate application is essential.

:I realize that what constitutes "essential" is a matter of opinion, but it's better to err on the side of caution. Unless a large segment of the community depends upon a particular setup in its current form (rendering it very difficult to change), any embedded meta-templates probably should be removed. And unless there's one heck of a special reason, new applications should be avoided entirely (until the issue is resolved in the software). &mdash;[[User:David Levy|David Levy]] 13:25, 24 December 2005 (UTC)

== qif for fundriser ==

Just a note: qif was nominated for the fundriser :-). See here: [http://en.wikipedia.org/w/index.php?title=MediaWiki_talk%3ASitenotice&diff=31644556&oldid=30475261]. – [[User:Adrian Buehlmann|Adrian]] | [[User talk:Adrian Buehlmann|Talk]] 17:33, 24 December 2005 (UTC)

==Counterpoint==
For a counterpoint to this page, see [[Wikipedia:Meta-templates considered helpful]]. [[User:Firebug|Firebug]] 01:57, 26 December 2005 (UTC)

:Oh god. You can't vote away technical limitations. Why is this so difficult to understand? &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 02:29, 26 December 2005 (UTC)
::Sigh. No one's saying to vote away technical limitations. We're saying the developers need to fix the underlying technical problems. There are no physical limits preventing meta-templates from working properly; it's all software bugs. [[User:Firebug|Firebug]] 02:32, 26 December 2005 (UTC)
:::Strictly speaking thsi isn't a technical limitation -- meta-tempales work. They impose a cost, in some cases a very high cost. How high that cost really is, is a factual question which the developers should be the last word on. Whether that cost is worth paying is not a technical question, but a policy question, to be decided by community consensus unless overruled by a high authority such as Jimbo or the Board. [[User:DESiegel|DES]] [[User talk:DESiegel|<sup>(talk)</sup>]] 02:33, 26 December 2005 (UTC)
::::Um, no. It's a technical limitation in the software, which the developers have explicitely said not to use. That makes it policy, notwithstanding this transparent end-run attempt. [[User:Raul654|Raul654]] 02:36, 26 December 2005 (UTC)
:::Raul, can you point to where a dev said that? [[User:Dan100|Dan100]] ([[User talk:Dan100|Talk]]) 10:08, 26 December 2005 (UTC)
:::::Maybe if the developers would spend more time fixing the software and less time bitching at us... [[User:Firebug|Firebug]] 02:42, 26 December 2005 (UTC)
::::::They're [[volunteer]]s, remember? &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 02:45, 26 December 2005 (UTC)
:::::::Which is part of the problem. We need developers who will be subordinate to community consensus and we can't get that with volunteers. Open source is great for providing general use software, but you need paid consultants to customize it for your business. Consultants who you can '''order''' to do things. [[User:Firebug|Firebug]] 02:47, 26 December 2005 (UTC)
::::::Brion is actually [[m:Wikimedia staff|employed by the Foundation]]. [[User:Dan100|Dan100]] ([[User talk:Dan100|Talk]]) 10:10, 26 December 2005 (UTC)
::::::::Are you willing to pay for consultants, then?
::::::::Somewhat less snidely, we don't necessarily ''want'' developers subordinate to community consensus&mdash;particularly if the community is made up largely of non-technical people. There has to be somebody with both the knowledge and the power to say "X is a bad idea and we're not doing it". &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 02:50, 26 December 2005 (UTC)
:::::::::The ''only'' reason this is a bad idea is because of software bugs. And when you have known software bugs that are inconveniencing your users, you ''fix them'', not tell your users to inconvenience themselves to avoid running afoul of them. [[User:Firebug|Firebug]] 03:16, 26 December 2005 (UTC)
::::::::::You're mixing up two different issues here, though:
::::::::::#Cost of using meta-templates: this ''cannot'' be removed entirely, only decreased. Any non-plain-text markup operation in MediaWiki has associated performance costs; any improvements that the developers can make in software are still bounded by the ability of the servers to keep up. As you can see at the top of the page, the availability of hardware is not a problem we can expect to go away.
::::::::::#Adding native support for conditionals to MediaWiki: this is somewhat more complicated than it seems. For instance, we ''don't'' want support for loops (inadvertently) added, no matter how much the community wants them&mdash;the security hole that would open up is far too significant. Trying to add a strictly limited set of functionality is somewhat challenging, and it's unreasonable to expect that the developers would be able to do so as soon as you ask them. &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 03:48, 26 December 2005 (UTC)
:Hi Firebug. I deeply understand your point. But I would not do any edit that presses the developers to do something. We do not know what the priorities of the developers are as we are just editors. We must assume that they have bigger fires than our meta-templates. But I agree with Firebug that the template implementation has a design bug that should be fixed. But we should not press the developers to do this by increasing the pressure on the servers. We should now calm down and see what happens. In the mean time do not increase the pressure on the servers. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 09:56, 26 December 2005 (UTC)

== So anyone heard from an active dev on this? ==

Jamesday's original comments are eleven months old - since then, the processing power of the Wikimedia servers has grown several fold and there's been many software changes. James's latest comment is ''Using resources unnecesssarily is not helpful'', which seems pretty vague to me (we don't seem to be short of cycles at the moment). It's certainly far short of saying "no, do not use these templates".

When this was raised on the mailing list [http://mail.wikipedia.org/pipermail/wikitech-l/2005-December/032939.html by David], there was a [http://mail.wikipedia.org/pipermail/wikitech-l/2005-December/thread.html#32978 resounding silence from the devs], despite the fact that these templates are live and in use. I'm pretty certain that if Brion, Tim or Domas (who know the current hardware/software the best) had concerns about these templates, they'd have told us.

Of course, the ideal would be to get a clear statement from one of those guys.... [[User:Dan100|Dan100]] ([[User talk:Dan100|Talk]]) 10:06, 26 December 2005 (UTC)

:A quick example of software change (taken from the project page): ''Please read "The touching process involves a database update to every affected page". There are changes in 1.5 which will help. How much is currently not known. Jamesday 14:55, 6 August 2005 (UTC)'' - [[User:Dan100|Dan100]] ([[User talk:Dan100|Talk]]) 10:18, 26 December 2005 (UTC)

::You're still trying to wikilawyer around an explicit statement. We've been told to avoid meta-templates - something that was restated by James all of eight days ago. You can lawyer your way around that word all you like, but that still doesn't change the effect on the servers. [[User:Ambi|Ambi]] 10:36, 26 December 2005 (UTC)

:Just a note: Jamesday ''has'' made a newer statement. This one is quite explicit: [http://en.wikipedia.org/w/index.php?title=Wikipedia_talk%3AAvoid_using_meta-templates&diff=31881003&oldid=31876792] . He wrote "Please instead work at reducing the use of qif to reduce the harm". [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 10:44, 26 December 2005 (UTC)

::I agree that Jameday has clearly stated that the use of <s>meta-</s> conditional templates can result in server strain. He has '''''not''''', however, indicated that they should be eliminated entirely (at least, not that I've seen). Perhaps they should be, in which case I would like to hear that from him (or another developer). I have absolutely no intention of using such templates, but I firmly believe that others are entitled to a first-hand confirmation of the interpretation that "reducing the use" = "banning all use." This is '''''not''''' "wikilawyering"; it's honest communication. &mdash;[[User:David Levy|David Levy]] 12:13, 26 December 2005 (UTC)

:::And no one is saying they should be banned entirely. As David Gerard has pointed out time and time again, they are enabled because they are vital for a very few things. People have then ignored this, and used it for just about any damned thing they please. [[User:Ambi|Ambi]] 15:22, 26 December 2005 (UTC)

::::Part of the confusion stems from the fact that the term "meta-templates" is being used to describe two different things. You're referring to the correct connotation (a template within a template), but the controversy relates primarily to "conditional templates" (templates with optional/variable parameters). I meant to use the latter term.

::::I strongly agree that the function has been abused (often unwittingly), and I'd like to hear from Jamesday (or another developer) regarding the extent to which its application should be "reduced." I don't believe that anyone else possesses the authority to decide where to draw the line. &mdash;[[User:David Levy|David Levy]] 17:21, 26 December 2005 (UTC)

::::Could you give an example of a use of a meta-template that should not be banned? [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 17:01, 26 December 2005 (UTC)

:::::Mav uses a pile of them for fundraising templates and really wanted templates-in-templates to keep working for this - [[User:David Gerard|David Gerard]] 17:11, 26 December 2005 (UTC)

::::::That's exactly what happens in every field. Look, for example there are people that thought about how to streamline book and web references, something which ''I'' find essential to an encyclopedia. Book references is also the field I came from to here. In several such fields many wikipedian-hours were invested into improving their templates. Take for example masterpiece [[template:language]]. It ''is'' just very hard to remove such a template and throw that work away. I understand that this might be hard to understand for outsiders - I mean those that were not taking part in the creation process of any of these complicated templates. I also agree that the servers do not care about theses communities. But it is very hard for them to accept that their template hits the servers badly. That's why this whole matter is so delicate. If someone finds qif and he sees it solves his problem he just gets excited and says - that's exactly what I needed! I could swear this happend on the fundriser team. (Switching to rhetorical mode) Oh my! do we really have to shoot all these beautiful templates? [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 18:14, 26 December 2005 (UTC)

::::::As another example, [[Wikipedia:Babel]] depends upon the extensive use of meta-templates. (Of course, user pages generate less traffic than articles.) &mdash;[[User:David Levy|David Levy]] 17:21, 26 December 2005 (UTC)

:::::::Fund-raising is an essential part of keeping the site running. The Babel templates are not. If they cannot be done without meta-templates - And I see no reason why they can't be - they should be abandoned. [[User:Snowspinner|Phil Sandifer]] 17:25, 26 December 2005 (UTC)

::::::::In fact, I was surprised to learn that [[Wikipedia:Babel]] uses meta-templates. I'm sure that it ''could'' have been handled without them, but that ship has sailed; it simply isn't feasible to switch thousands of users from the current setup, nor is it realistic to expect the abandonment of one of the most popular projects on Wikipedia.

::::::::If I'm not mistaken, I recall reading a comment (either by one of the developers, or by someone quoting one of the developers) indicating that the use of meta-templates within the user namespace has a relatively minor effect on the database. Presumably, this is why [[Wikipedia:Babel]] has been allowed to exist in its current form (which ''is'' extremely convenient). I am, however, in the process of deprecating a ridiculously complicated (and entirely unnecessary) conditional Babel template created by Azatoth. &mdash;[[User:David Levy|David Levy]] 17:55, 26 December 2005 (UTC)

:::::::::It most certainly is feasible - if a bunch of people implement a system that is a server drain despite a policy saying not to, those people can and should expect to have to clean it up. It is perfectly easy to create manually (Or by bot, or even, frankly, by substing the existing meta-templates into new templates) a set of Babel templates of the form of [[Template:Babel-en1]] and so on, and these should be created. An announced changeover should take place, and a week after that we should shoot the meta-template version. [[User:Snowspinner|Phil Sandifer]] 18:10, 26 December 2005 (UTC)

::::::::::Firstly, as I just mentioned, I believe that the developers have indicated that the use of meta-templates within the user namespace is not a major server drain.

::::::::::Secondly, why you are accusing the [[Wikipedia:Babel]] creators of deliberately ignoring a "policy"? Aside from its relative obscurity, [[WP:AUM]] wasn't even made a guideline (let alone a policy) until June 14.

::::::::::Thirdly, it certainly would be possible to deploy a substitution bot, bit this would leave numerous users with indecipherable code.

::::::::::Fourthly, this is a perfect example of why we need the developers to tell us where to draw the line; you believe that [[Wikipedia:Babel]] isn't important enough to justify the use of meta-templates, but many others would disagree. &mdash;[[User:David Levy|David Levy]] 18:53, 26 December 2005 (UTC)

:::::::::::The Babel project doesn't need meta-templates. It can be done just as well with individual templates for each language and proficiency. Nor does there need to be a bot substitution - just an announced deprecation, asking everyone to please change their userpages as the Babel templates are to be deleted at a certain date, and pointing them towards the new system. The bot would be useful mostly for generating the individual templates. This is the major problem with meta-templates - they're created as elegant solutions to problems, and are in fact only elegant on the user-level, and infact manifestly unelegant in practice. [[User:Snowspinner|Phil Sandifer]] 19:21, 26 December 2005 (UTC)

:::::::::::But keep in mind that qif breaks when substed. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 19:04, 26 December 2005 (UTC)

::::::::::::I was referring strictly to the [[Wikipedia:Babel]] templates, most of which don't incorporate {{tl|qif}}. &mdash;[[User:David Levy|David Levy]] 19:11, 26 December 2005 (UTC)

:::::::::Please refrain from naming those works "ridiculous". It has proven to be unhelpful in communicating with the wikipedians. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 18:14, 26 December 2005 (UTC)

::::::::::I agree. The proper term is "so brain-wrenchingly stupid as to cause spontaneous cerebral hemmoraging." [[User:Snowspinner|Phil Sandifer]] 18:25, 26 December 2005 (UTC)

:::::::::::Way to be a teamplayer! (You see, I learn from Neto :-) [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 18:48, 26 December 2005 (UTC)

== Section "Alternatives": Problem with CSS ==

The section "Alternatives" of the project page lists under point 3 the use of CSS. Netoholic is doing this and was quite successful for optional fields of infoboxes. Sadly this technique does not work for special browsers which do not support CSS, one of which is the text based lynx. Maybe there are also problems with screen readers. This was brought up by Ævar Arnfjörð Bjarmason on [[Template talk:Taxobox#Eliminating meta-templates]]. The CSS trick can be seen for example in [http://en.wikipedia.org/w/index.php?title=Template%3ATaxobox&diff=32617274&oldid=32612063 this diff]. Ævar kindly posted an example user view of that trick as viewed on lynx at [http://www.simnet.is/velfag/tmp/lynx.png]. [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 23:02, 26 December 2005 (UTC)
*How about adding an infobox primitive to the MediaWiki engine, similar to the inherent support for tables? This would solve the consistency problems while reducing server load and could include support for optional parameters that would work in all browsers. [[User:Firebug|Firebug]] 00:20, 27 December 2005 (UTC)


A helluva lot of this website sucks when viewed using lynx. At least, if we keep working to avoid meta-templates, the website will continue to function. [[Wikipedia:Browsers]] is out-of-date, but lynx/links software makes up 0.03% of the browsers used here in Feb 2004. I'm OK with a few tables not looking amazing without CSS as long as the site works well for the rest of us. Perhaps the taxobox should be split up into 3-5 more specific usages (Infobox Bacteria, Infobox Animal, ...), such that the optional parameters are cut to a minimum on each occurence. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 00:24, 27 December 2005 (UTC)
*This kind of dismissive attitude is not at all helpful. [[User:Firebug|Firebug]] 00:56, 27 December 2005 (UTC)
**This entire objection is not at all helpful. [[User:Snowspinner|Phil Sandifer]] 00:59, 27 December 2005 (UTC)
***Look, it's one thing to say that as a '''temporary hack''' we should avoid using these levels of abstraction in cases where there is another equivalent alternative, and quite another to say that we should go around breaking widely used templates - especially when there is NO alternative that works on all browsers - and let someone else fix the resulting mess. Netoholic is running around Wikipedia with a hammer breaking things, and rather than being treated like the vandal he is, everyone is patting him on the head and saying "good boy", an attitude I find utterly incomprehensible. But, then, I thought that we were trying to write an encylopedia, not genuflect before the genius of the developers that must not be questioned. Obviously, I was mistaken. [[User:Firebug|Firebug]] 01:07, 27 December 2005 (UTC)
****The templates should never have been made! You're mad at the person who's actually UNDOING damage, and giving a complete pass to the people who implemented meta-template and meta-template over a period of MONTHS after the developers asked for meta-templates not to be implemented! [[User:Snowspinner|Phil Sandifer]] 01:29, 27 December 2005 (UTC)

I have a question about using the css-hack, does it increase the resulting bandwith a lot? <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 01:11, 27 December 2005 (UTC)
*There's no reason why it would, really. CSS will be used Wikipedia-wide regardless of whether hiddenStructure is used in any particular article. &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 01:14, 27 December 2005 (UTC)
**I was refering to that text that is not ment to be visible is transfered <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 01:15, 27 December 2005 (UTC)
***The text is pretty minimal, compared to the rest of the article. I doubt it makes a noticeable difference; but you'll have to ask a dev if you want anything more concrete than that ;-) &mdash;[[User:Kirill Lokshin|Kirill Lokshin]] 01:21, 27 December 2005 (UTC)
*** The resultant html is stored in a very fast [[Squid cache]] server. Meta-templates cause extra calls and work for the database servers - a much slower and more "costly" segment of the system. -- [[User:Netoholic|Netoholic]] [[User talk:Netoholic|@]] 02:42, 27 December 2005 (UTC)
****It was not that I was asking about. Perhaps a rephrase: Does reducing usage of meta-templates weight up the increased dataflow over the squids? <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 02:49, 27 December 2005 (UTC)
*****Are we back to arguing that the devs weren't thinking when they said to reduce the usage of meta-templates? [[User:Snowspinner|Phil Sandifer]] 02:56, 27 December 2005 (UTC)
******I was just asking, you don't need to be angry. <sub>→<font style="color:#975612">[[User:AzaToth|Aza]]</font><font style="color:#325596">[[User_talk:AzaToth|Toth]]</font></sub> 03:02, 27 December 2005 (UTC)

If (or should I write qif? :-) I have to choose between (A) "no conditional logic in templates" and (B) "0.03% of the browsers display taxoboxes or other wp stuff badly" I must say that the second evil is the lesser one at the moment. The reason why I brought this here is that I wanted to know whether we could go further with this CSS trick or not. I think we all agree that that trick is not the best solution for all times (which qif also isn't, though it works with lynx), but at least the CSS trick works for now ''without violating WP:AUM'' (please, no start-over about this - we've been there enough). And at least we have a good reason to break lynx and possibly screen readers. If developers find time to implement something in WikiMedia that they see fit to solve our pain in the arse dilemma, they can look here. If somebody decides that lynx or screenreaders are prime then they can read here that we either need conditionals in WikiMedia code or a license to use qif in order to do that (or a lot more will break). [[User talk:Adrian Buehlmann|Adrian Buehlmann]] 09:00, 27 December 2005 (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