Talk:Template processor

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing  
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 ???  This article has not yet received a rating on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.

TODO ;; preliminary edit todo items[edit]

  • comparison of template engines (basic)
  • comparison glyphs and sub-element glyphs
  • comparison ... (detailed) (will require split)

dr.ef.tymac 00:26, 23 November 2006 (UTC)


Does anyone mind if I rewrite the page a little? Because it seems to not really be very basic for those who don't deeply know about server-side code and such. Or should I just make a version of this wiki in "Simple English"?

Caleb870 02:22, 26 May 2007 (UTC) caleb870

citations for uses ;; template engines and template processors[edit]

The following describe some uses for stand-alone template engines and template processing:

   The Template Toolkit is a fast, powerful and extensible template processing system. 
   It is ideally suited to the production and maintenance of web content and other 
   dynamic document systems. (accessed 2006-10-08, emphasis not in original)

   What is FreeMarker?
   FreeMarker is a template engine; a generic tool to generate text output 
   (anything from HTML to autogenerated source code) based on templates. 
   It's (...) something that programmers can embed into their products (...)
   (...) A new FreeMarker Eclipse plug-in project was announced recently, with 
   interesting features like code completion for macro names and bean property 
   names. (accessed 2006-10-08, emphasis not in original)

   Cheetah is (...) template engine and code generation tool, written in Python. 
   It can be used standalone or combined (...) to generate C++ game code, Java, 
   sql, form emails and even Python code. (accessed 2006-10-08, emphasis not in original)

   Velocity is a Java-based template engine. It permits anyone to use a simple yet
   powerful template language to reference objects defined in Java code.
   Velocity's capabilities reach well beyond the realm of the web; for example, it can
   be used to generate SQL, PostScript and XML ... from templates. ... either 
   as a standalone utility for generating source code and reports, or as an integrated 
   component of other systems. (accessed 2006-11-22, emphasis not in original)

Template System/engine redirection problems[edit]

SEE on Talk:Template#Template_system.3F.3F_.28redirecting_here.29. -- User:Krauss 23 Nov 2006

Hi Krauss, I looked at the link you posted and put a response. One thing to note is that this article is still undergoing edits and content additions, so things may not look exactly perfect just yet. "Under construction" still applies :) Thanks! dr.ef.tymac 09:15, 23 November 2006 (UTC)

Formal characterization, common referential sugestion[edit]

We have here the same questions: What can be, precisely, a Template and/or a Template preprocessor? What is and what is not?

I think there are very similar answers, and for a formal characterization we can modeling the template system (not web) as a dataflow.

... and use the link "See details Formal treatment supplement". (if need create and redirect "template system (formalism)" to "web template system (formalism)" article). -- Krauss 24 Nov 2006.

Yes, formal (precise) definition could prove useful, although it probably could stand that a "template processor" is (in part) just a highly-specialized kind of lexer, and thus the same mathematical conventions of assumptions of lexical analysis apply here as well, just with slightly different terminology. A common theme in this area is that there are a lot of "overlapping" technologies that do the same or similar things, but with different names because they historically evolved in different contexts. As they say, there's nothing new under the Sun. dr.ef.tymac 16:28, 24 November 2006 (UTC)

template processor as generalization[edit]

Just for the sake of clarity, the article template processor generalization (aka superset concept, superclass, rubric) of other, more specialized instantiations of this concept. This is similar to the way that "web document" is a superset concept of "web page"; and automobile is a superset concept of Compact SUV. dr.ef.tymac 16:45, 24 November 2006 (UTC)

Does this article belong?[edit]

I'm marking this article as "unencyclopaedic" on the basis that I think it's describing a class of software products/languages which is not generally recognized in the literature. Also there's no distinction made with XML template engine which I think falls into the same (non-)category. Until someone writes a book about "template processors" or "template engines", the concept is too vague to form the subject of a Wikipedia article. Let's stick to specific articles about specific languages, and perhaps identify their parallels or similarities with other languages while we do so.

Mhkay 16:03, 3 February 2007 (UTC)

Uhh ... respectfully, this tagging is so puzzling, I summarily removed it. I won't talk about XML template engine because that is a separate article and a separate discussion. Although you may find fault with the content and structure of *this* article (it's definitely in need of work). There are at least "sections" of books devoted *specifically* to this topic, some of them not even on a specific programming language or software product! (see e.g., Pattern Languages of Program Design 5 Addison-Wesley). Thus, unless you want to refine what you mean, "not generally recognized in the literature" seems to be plainly incorrect.
Moreover, your supporting rationale is simply ... huh!?! Are you claiming that an article should be deleted if an entire book has not been written on the subject, with absolutely no reference to a hosting programming language, or software environment, or some other enclosing context?! If so, this is an astonishing claim, because it would require deletion of (for an infinitely-small sampling):
Abstraction , Comment (computer programming) , Curly bracket programming language , CAPTCHA , dialog box , Experience point , File dialog , Filter (software) , Foo , indentation , list comprehension , Off-by-one error , splash screen , Spamdexing , String literal , Tab key , throbber , Toolbar , Utility software , Wizard (software) , WYSIWYG , Zeroth
(... plus thousands more ??? )
Are all these articles unencyclopedic? Are we supposed to go out and delete all these articles, and instead only talk about specific instances, and compare and contrast those instances?! Respectfully, this rationale seems untenable at best. Admittedly, this article needs work, but deletion under this rationale would toss the baby, the bathtub, the bathroom and the entire second floor out with the bathwater. dr.ef.tymac 18:30, 3 February 2007 (UTC)

Essentially, I think the article is developing taxonomic ideas that aren't yet generally accepted; it's headline title has no accepted definition in the literature, and while it's fine to do work to try and identify concepts that apply across different programming languages, Wikipedia isn't the place to do that work. It should only describe ideas and terminology that have widespread acceptance and consensus in the informed community. Unlike for example list comprehension and dialog box, I don't think this article meets that test.

I stopped short of proposing deletion. But I think this and similar articles need to be consolidated and need to confine themselves to ideas that are well-understood and accepted.

Mhkay 21:14, 14 February 2007 (UTC)

Although the basic premises forwarded by Mhkay are sensible in some respects, there are some matters that have yet to be addressed that nonetheless merit serious consideration:
  • the phrase "this and similar articles" seems to imply that the individual merits of this article are somehow inextricably associated with one or more other articles, yet no specifics were enumerated as to why this is the case, thus making the issue of other (potentially deficient) articles a bit beside the point. There may indeed be other articles that are unencyclopedic, but first a relationship must be established before those other articles are relevant to this discussion;
  • the phrase "developing taxonomic ideas" sounds like a claim of "original research" (OR), but claims of OR generally merit correction with citations and reformation of article content, rather than wholesale deletion;
  • deleting an entire article based on OR would probably be meritorious if the entire subject matter of the article were fabricated, a pet theory, a hoax, or otherwise inconsistent with verifiability requirements, but for *this* article, that is clearly not the case;
  • citations (including but not limited to the following) support that this article subject matter is not based on a 'fabricated idea' and is indeed verifiable:
    • Pattern Languages of Program Design 5 James Noble Published 2006 Addison-Wesley 596 pages ISBN 0321321944 (p 262, pp 278-280)
    • Patterns of Enterprise Application Architecture By Matthew (CON) Foemmel, David Rice, Martin Fowler Published 2003 Addison-Wesley 512 pages ISBN 0321127420
    • Learning Java By Patrick. Niemeyer, Jonathan. Knudsen Published 2002 O'Reilly 700 pages ISBN 0596002858 pp 251-252
  • the phrase "no accepted definition in the literature" seems to conflate the issues of "uniformity" and "verifiability" together as one issue. There are numerous topics that are widely established that nonetheless have competing definitions, such as "Model View Controller", and "Design Pattern" (for example). Consequently, 'non-uniformity' is not a sufficient basis for refuting verifiability nor notability;
  • the previous phrase also seems incorrect. Absent a falsifiable definition of what this phrase actually means, this would appear to be a statement of personal opinion that does not take into account cited and citable references to the article subject matter;
  • the phrase "try ... across different programming languages" again sounds like a claim of OR, which was addressed previously. Moreover, the first two citations noted above demonstrate that the concept is applied in contexts where a specific programming language is not the central point of discussion;
  • "consensus in the informed community" sounds like a reference to peer-reviewed scholarly research, which is certainly a useful consideration, but leaves out topics that are verifiable, notable, and yet have not formed the basis of a doctoral dissertation (for example) but nonetheless still are acknowledged in industry circles or as an established pattern of practice in non-academic contexts. Moreover, the phrase "informed community" is extremely vague;
  • no falsifiable "test" has (yet) been given that would distinguish the subject matter of this article from that of "Dialog box", "Foo", "Curly bracket programming language", "Splash screen", and other similar entries as mentioned above, yet those articles all share a critical similarity with this one: topics that touch on concepts that may not have enough "meat" to constitute a PhD thesis, and nonetheless merit classification as established, recognizable concepts.

It would seem (at the very least) that some falsifiable rationale should be provided, so that the content of the article can be reformed without having to consult the opinion of one specific individual to ensure it meets an undefined "test," especially since none of the citations have been contested as false or non-credible. dr.ef.tymac 01:44, 19 February 2007 (UTC)

We're Doing it Wrong[edit]

Shouldn't someone have used a template processor to produce the summary for this article? (talk) 20:06, 1 August 2011 (UTC) I totally agree. <Donathan Coleman Pearson>