{"id":593,"date":"2007-03-30T12:46:56","date_gmt":"2007-03-30T17:46:56","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/hoanga\/2007\/03\/30\/templating-languages-templating-langua"},"modified":"2007-03-30T12:46:56","modified_gmt":"2007-03-30T17:46:56","slug":"templating-languages-templating-languages-and-yet-more-of-them","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/hoanga\/2007\/03\/30\/templating-languages-templating-languages-and-yet-more-of-them\/","title":{"rendered":"Templating languages, templating languages&#8230; and yet more of them"},"content":{"rendered":"<p>\nIn the realm of web development, anytime you start using some software platform to deal with the tedium of writing web pages by hand, it&#8217;s quite often it leads to some sort of templating system to handle it.\n<\/p>\n<p>\nWhile nice in theory and can promise many things (Seperation of logic from presentation, blah blah blah) from the standpoint of someone trying to use these systems it&#8217;s more like being thrown a new language every week.\n<\/p>\n<p>\nAs a personal anecdote, when I started learning <a href=\"http:\/\/www.zope.org\">Zope<\/a> there was the promise that <a href=\"http:\/\/www.zope.org\/Documentation\/Books\/ZopeBook\/2_6Edition\/DTML.stx\">DTML<\/a> would be the tool that would solve all one&#8217;s problems when working with Zope.  However, as was often than not there were always these small things that got in the way like:<\/p>\n<ol>\n<li>Documentation never seemed up to date<\/li>\n<li>Documentation never seemed complete<\/li>\n<li>I was too stupid to figure out how to handle what <b>I<\/b> wanted to do<\/li>\n<li>The W3C released another what??  Does DTML handle that even???<\/li>\n<\/ol>\n<p>So in the middle of it all I learned about this new fangled and shinier system called <a href=\"http:\/\/zpt.sourceforge.net\/\">Zope Page Templates<\/a> (ZPT) for short.  I never really learned it that much as I was finally coming to terms with using DTML without being a complete newbie.  Of course this ended up being a major hindrance to understanding this nice CMS package built on top of Zope called <a href=\"http:\/\/www.plone.org\">Plone<\/a> however after this, I ended up moving on and not bothering much with Zope.\n<\/p>\n<p>\nSo how much of that built up knowledge did I get to take with me?  About zero.   Sure I could pick up yet another template language system that came along but that required once again to go through the docs and find out how to write something as basic as <em>if<\/em> again since it wasn&#8217;t EXACTLY the same.  Anyways, my current view is that learning more templates is not on one of my higher priorities these days unless it gets me something I want and is rather portable.  So seeing something like <a href=\"http:\/\/hobocentral.net\/blog\/\">Hobo<\/a> and something called <a href=\"http:\/\/mephisto.stikipad.com\/help\/show\/Liquid+Plugins\">Liquid<\/a> that supposedly is tied in somehow with some Rails Blog app called <a href=\"http:\/\/mephisto.stikipad.com\/help\/\">Mephisto<\/a> isn&#8217;t making me that enamored with some parts of Rails.\n<\/p>\n<p>\n<a href=\"http:\/\/www.loudthinking.com\">DHH<\/a> captures it very well in<br \/>\n<a href=\"http:\/\/www.loudthinking.com\/arc\/000405.html\">his blog post on templating languages<\/a><\/p>\n<blockquote><p>\nThe pursuit of &#8220;no code&#8221;-templates reminds me of the search for the holy grail of the MDA camp with &#8220;no code&#8221;-programs. It&#8217;s mirage, but its also a play on words of the &#8220;a rose by any other name&#8230;&#8221; variety.\n<\/p><\/blockquote>\n<p>Amen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the realm of web development, anytime you start using some software platform to deal with the tedium of writing web pages by hand, it&#8217;s quite often it leads to some sort of templating system to handle it. While nice in theory and can promise many things (Seperation of logic from presentation, blah blah blah) [&hellip;]<\/p>\n","protected":false},"author":703,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1101,1215,972],"tags":[],"class_list":["post-593","post","type-post","status-publish","format-standard","hentry","category-geek","category-gripe","category-programming"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts\/593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/users\/703"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/comments?post=593"}],"version-history":[{"count":0,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts\/593\/revisions"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/media?parent=593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/categories?post=593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/tags?post=593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}