<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: On templates and programming languages</title>
	<atom:link href="http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/</link>
	<description>News from the Wikimedia Foundation and about the Wikimedia movement</description>
	<lastBuildDate>Fri, 17 May 2013 23:47:24 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6-beta2-24176</generator>
	<item>
		<title>By: jps</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7639</link>
		<dc:creator>jps</dc:creator>
		<pubDate>Wed, 08 Jul 2009 19:57:53 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7639</guid>
		<description><![CDATA[http://www.mediawiki.org/wiki/Extension:AbuseFilter/RulesFormat

Now all we need is I/O routine(s) suitable for template argument processing and wikitext generation.]]></description>
		<content:encoded><![CDATA[<p><a href="http://www.mediawiki.org/wiki/Extension:AbuseFilter/RulesFormat" rel="nofollow">http://www.mediawiki.org/wiki/Extension:AbuseFilter/RulesFormat</a></p>
<p>Now all we need is I/O routine(s) suitable for template argument processing and wikitext generation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jps</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7638</link>
		<dc:creator>jps</dc:creator>
		<pubDate>Wed, 08 Jul 2009 19:54:22 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7638</guid>
		<description><![CDATA[now thinking Andrew&#039;s suggestion is the most parsimonious

Where is the abuse filter language documented?]]></description>
		<content:encoded><![CDATA[<p>now thinking Andrew&#8217;s suggestion is the most parsimonious</p>
<p>Where is the abuse filter language documented?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tgr</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7637</link>
		<dc:creator>Tgr</dc:creator>
		<pubDate>Thu, 02 Jul 2009 23:43:16 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7637</guid>
		<description><![CDATA[&quot;One thing that’s looks especially promising in the Lua extension is the ability for different templates on the same page to “talk” to each other through shared variables.&quot;

Ugh. So when will templates start throwing exceptions and passing arguments by reference?

Unreadable as the current syntax might be, it is conceptually very simple: you have functions that receive parameters and return something based on those, with no variables and no side effects (that is, a very simple functional language). Providing a more effective language with a very different concept is a fair tradeoff as long as it can be isolated from normal templates and used only to define new parserfunction-like constructs, but changing the behavior of all templates by introducing side effects is a horrible idea IMHO. Also, with the very limited debugging tools available for template writing, finding errors in templates which can interact with other templates on the same page can quickly become a nightmare,]]></description>
		<content:encoded><![CDATA[<p>&#8220;One thing that’s looks especially promising in the Lua extension is the ability for different templates on the same page to “talk” to each other through shared variables.&#8221;</p>
<p>Ugh. So when will templates start throwing exceptions and passing arguments by reference?</p>
<p>Unreadable as the current syntax might be, it is conceptually very simple: you have functions that receive parameters and return something based on those, with no variables and no side effects (that is, a very simple functional language). Providing a more effective language with a very different concept is a fair tradeoff as long as it can be isolated from normal templates and used only to define new parserfunction-like constructs, but changing the behavior of all templates by introducing side effects is a horrible idea IMHO. Also, with the very limited debugging tools available for template writing, finding errors in templates which can interact with other templates on the same page can quickly become a nightmare,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jps</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7636</link>
		<dc:creator>jps</dc:creator>
		<pubDate>Wed, 01 Jul 2009 20:47:50 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7636</guid>
		<description><![CDATA[I saw &lt;a href=&quot;http://lua-users.org/wiki/SortedIteration&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; today and am no longer a huge fan of Lua.]]></description>
		<content:encoded><![CDATA[<p>I saw <a href="http://lua-users.org/wiki/SortedIteration" rel="nofollow">this</a> today and am no longer a huge fan of Lua.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brion</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7635</link>
		<dc:creator>brion</dc:creator>
		<pubDate>Wed, 01 Jul 2009 18:50:56 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7635</guid>
		<description><![CDATA[Hmm, externally restricting a PHP process probably isn&#039;t too easy to do in a portable way; what works on Linux won&#039;t work on BSD/OS X and never mind Windows... :(]]></description>
		<content:encoded><![CDATA[<p>Hmm, externally restricting a PHP process probably isn&#8217;t too easy to do in a portable way; what works on Linux won&#8217;t work on BSD/OS X and never mind Windows&#8230; :(</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jps</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7634</link>
		<dc:creator>jps</dc:creator>
		<pubDate>Wed, 01 Jul 2009 04:27:35 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7634</guid>
		<description><![CDATA[Although I am a huge fan of Lua, I would have to say go with PHP for usability and more widespread familiarity and harmony with Mediawiki. Run it under ptrace with most of the syscalls disallowed, strict resource limits, and in a chroot jail.]]></description>
		<content:encoded><![CDATA[<p>Although I am a huge fan of Lua, I would have to say go with PHP for usability and more widespread familiarity and harmony with Mediawiki. Run it under ptrace with most of the syscalls disallowed, strict resource limits, and in a chroot jail.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nihiltres</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7633</link>
		<dc:creator>Nihiltres</dc:creator>
		<pubDate>Wed, 01 Jul 2009 02:40:17 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7633</guid>
		<description><![CDATA[I think simplicity should be valued: choosing a language like PHP, JavaScript, or Python involves setting a higher learning curve for the syntax. One of the advantages of the current syntax is that it has a rather short learning curve: there are only a few basic methods and structures, and complex operations are merely a matter of forming compounds. (Whether those compounds quickly become unreadable is another issue.)

Lua looks promising because it&#039;s so readable and simple. If a suitable implementation can be found, it would seem to be the best option among those you&#039;ve listed, for that reason.

The other consideration is functionality. What can—and should—a &quot;real&quot; programming language do that current wikitext can&#039;t? One thing that&#039;s looks especially promising in the Lua extension is the ability for different templates on the same page to &quot;talk&quot; to each other through shared variables. Another could be (is it available?) proper string functions, which the community&#039;s been waiting a long time for.

All in all, this is an interesting development. I look forward to hearing more.]]></description>
		<content:encoded><![CDATA[<p>I think simplicity should be valued: choosing a language like PHP, JavaScript, or Python involves setting a higher learning curve for the syntax. One of the advantages of the current syntax is that it has a rather short learning curve: there are only a few basic methods and structures, and complex operations are merely a matter of forming compounds. (Whether those compounds quickly become unreadable is another issue.)</p>
<p>Lua looks promising because it&#8217;s so readable and simple. If a suitable implementation can be found, it would seem to be the best option among those you&#8217;ve listed, for that reason.</p>
<p>The other consideration is functionality. What can—and should—a &#8220;real&#8221; programming language do that current wikitext can&#8217;t? One thing that&#8217;s looks especially promising in the Lua extension is the ability for different templates on the same page to &#8220;talk&#8221; to each other through shared variables. Another could be (is it available?) proper string functions, which the community&#8217;s been waiting a long time for.</p>
<p>All in all, this is an interesting development. I look forward to hearing more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charlie</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7632</link>
		<dc:creator>Charlie</dc:creator>
		<pubDate>Tue, 30 Jun 2009 23:46:41 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7632</guid>
		<description><![CDATA[Ruby would be just lovely ^_^ It&#039;s already used on the mobile site - why not expand that to the wikis, too!]]></description>
		<content:encoded><![CDATA[<p>Ruby would be just lovely ^_^ It&#8217;s already used on the mobile site &#8211; why not expand that to the wikis, too!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: colin</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7631</link>
		<dc:creator>colin</dc:creator>
		<pubDate>Tue, 30 Jun 2009 18:38:45 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7631</guid>
		<description><![CDATA[For security reasons, I would suggest using a restricted implementation of the used language that only provides what is really needed. So using a language not usually present on a server should also be no problem. 
For instance if the language/implementation does not offer a function to delete a file no one can abuse it to delete a file.

The other thing is whether you really need a Turing complete language for templates. Maybe something (much ?) smaller would be at least as good from a usability point of view and probably much less of a security risk.]]></description>
		<content:encoded><![CDATA[<p>For security reasons, I would suggest using a restricted implementation of the used language that only provides what is really needed. So using a language not usually present on a server should also be no problem.<br />
For instance if the language/implementation does not offer a function to delete a file no one can abuse it to delete a file.</p>
<p>The other thing is whether you really need a Turing complete language for templates. Maybe something (much ?) smaller would be at least as good from a usability point of view and probably much less of a security risk.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Micke</title>
		<link>http://blog.wikimedia.org/2009/06/30/on-templates-and-programming-languages/comment-page-1/#comment-7630</link>
		<dc:creator>Micke</dc:creator>
		<pubDate>Tue, 30 Jun 2009 17:40:58 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.wikimedia.org/?p=259#comment-7630</guid>
		<description><![CDATA[If the security issues can be handled I&#039;d go for PHP for all the reasons you&#039;ve stated all ready. I like the idea of having the tamplates written in the same language as the software it self. I also think Python has alot going for it, it is very easy to learn for one thing and the indentation makes for readable code, which is important in templates where alot of people are supposed to edit together..]]></description>
		<content:encoded><![CDATA[<p>If the security issues can be handled I&#8217;d go for PHP for all the reasons you&#8217;ve stated all ready. I like the idea of having the tamplates written in the same language as the software it self. I also think Python has alot going for it, it is very easy to learn for one thing and the indentation makes for readable code, which is important in templates where alot of people are supposed to edit together..</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

 Served from: blog.wikimedia.org @ 2013-05-18 07:23:43 by W3 Total Cache -->