<?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: A problem of language</title>
	<atom:link href="http://www.drmaciver.com/2009/05/a-problem-of-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.drmaciver.com/2009/05/a-problem-of-language/</link>
	<description></description>
	<lastBuildDate>Mon, 06 Feb 2012 22:56:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: david</title>
		<link>http://www.drmaciver.com/2009/05/a-problem-of-language/#comment-1199</link>
		<dc:creator>david</dc:creator>
		<pubDate>Sun, 16 May 2010 20:34:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=526#comment-1199</guid>
		<description>Hi Conal,

I suspect you may be right that it&#039;s very hard to come to an agreement as to a common meaning for this term. It&#039;s much like the clasic &quot;strongly typed&quot; vs. &quot;weakly typed&quot; distinction which was so well taken apart in &lt;a href=&quot;http://www.pphsg.org/cdsmith/types.html&quot; rel=&quot;nofollow&quot;&gt;what to know before debating type systems&lt;/a&gt;. Perhaps I should put &quot;This is a functional programming language&quot; as a statement into The Right Tool and see what people come up with :-) 

I think the question of whether functions are necessary for functional programming is probably at the heart of why there&#039;s so much disagreement on the subject: &quot;functional programming&quot; covers several different and nearly orthogonal concepts. For example, the notions of value oriented programming and programming with higher order functions are, while mutually supporting, not intrinsically connected (value oriented programming without higher order functions is a massive pain but certainly doable. higher order functions without value oriented programming are still pretty useful). 

I&#039;m never entirely sure how important these issues really are. A rose by any other name, etc. But Orwell&#039;s point about language is well taken, and the amount of woolly thinking that gets exposed in these arguments does tend to suggest that this is something we need to worry about.

Maybe we should mandate that all discussions about programming languages occur in lojban. If nothing else that would cut down the volume. :-)</description>
		<content:encoded><![CDATA[<p>Hi Conal,</p>
<p>I suspect you may be right that it&#8217;s very hard to come to an agreement as to a common meaning for this term. It&#8217;s much like the clasic &#8220;strongly typed&#8221; vs. &#8220;weakly typed&#8221; distinction which was so well taken apart in <a href="http://www.pphsg.org/cdsmith/types.html" rel="nofollow">what to know before debating type systems</a>. Perhaps I should put &#8220;This is a functional programming language&#8221; as a statement into The Right Tool and see what people come up with :-) </p>
<p>I think the question of whether functions are necessary for functional programming is probably at the heart of why there&#8217;s so much disagreement on the subject: &#8220;functional programming&#8221; covers several different and nearly orthogonal concepts. For example, the notions of value oriented programming and programming with higher order functions are, while mutually supporting, not intrinsically connected (value oriented programming without higher order functions is a massive pain but certainly doable. higher order functions without value oriented programming are still pretty useful). </p>
<p>I&#8217;m never entirely sure how important these issues really are. A rose by any other name, etc. But Orwell&#8217;s point about language is well taken, and the amount of woolly thinking that gets exposed in these arguments does tend to suggest that this is something we need to worry about.</p>
<p>Maybe we should mandate that all discussions about programming languages occur in lojban. If nothing else that would cut down the volume. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott</title>
		<link>http://www.drmaciver.com/2009/05/a-problem-of-language/#comment-1198</link>
		<dc:creator>Conal Elliott</dc:creator>
		<pubDate>Sun, 16 May 2010 19:48:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=526#comment-1198</guid>
		<description>Hi David.  I &lt;i&gt;love&lt;/i&gt; this post.  Thanks very much for bringing light to some commonly practiced forms of lousy argumentation.  And I like your refinement of using necessary conditions, in &lt;a href=&quot;http://www.drmaciver.com/2009/06/axioms-definitions-and-agreement/&quot; rel=&quot;nofollow&quot;&gt;&lt;i&gt;Axioms, definitions and agreement&lt;/i&gt;&lt;/a&gt;.

More effort in clarifying what people mean by terms like &quot;functional&quot; may spare all of us the common sort of argument in which vague language tricks people into thinking they&#039;re disagreeing (or agreeing) when really they&#039;re talking about different things.

I wonder whether there is &lt;i&gt;any&lt;/i&gt; basis (axiom) that people can agree on in these discussions of &quot;Is X is a functional language?&quot;  Personally, I&#039;m doubtful.  I don&#039;t subscribe to your particular claim of a necessary condition for functional programming, &quot;A functional language must have a notion of function&quot;.  For me &quot;functional&quot; is an unfortunate misnomer.  I take functional to mean that expressing/denoting immutable values.  (Some of those values may be functions.)  So I prefer the term &quot;value-oriented&quot; as a clearer replacement for &quot;functional&quot;.  And a corresponding &quot;pure&quot; notion means one can &lt;i&gt;only&lt;/i&gt; express/denote immutable values.

However, rather than &quot;value-oriented&quot;, I greatly prefer Peter Landin&#039;s recommended replacement &quot;denotative&quot;, which I understand in a much more precise way than &quot;functional&quot;.  See the Landin quotes and ref and some comments at &lt;a href=&quot;http://conal.net/blog/posts/is-haskell-a-purely-functional-language/&quot; rel=&quot;nofollow&quot;&gt;&lt;i&gt;Is Haskell a purely functional language?&lt;/i&gt;&lt;/a&gt;.  Landin&#039;s notion of denotative sheds light for me on not only &quot;impure&quot; languages like C, Scala, and ML, but equally on Haskell&#039;s (technically) &quot;functional&quot; IO.  I teasingly poked at the latter in &lt;a href=&quot;http://conal.net/blog/posts/the-c-language-is-purely-functional/&quot; rel=&quot;nofollow&quot;&gt;&lt;i&gt;The C language is purely functional&lt;/i&gt;&lt;/a&gt;.

Here&#039;s a quote you might appreciate:

&lt;blockquote&gt;The slovenliness of our language makes it easier for us to have foolish thoughts. The point is that the process is reversible.

&lt;/blockquote&gt;

From George Orwell&#039;s &lt;a href=&quot;http://www.george-orwell.org/Politics_and_the_English_Language/0.html&quot; rel=&quot;nofollow&quot;&gt;&lt;i&gt;Politics and the English Language&lt;/i&gt;&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Hi David.  I <i>love</i> this post.  Thanks very much for bringing light to some commonly practiced forms of lousy argumentation.  And I like your refinement of using necessary conditions, in <a href="http://www.drmaciver.com/2009/06/axioms-definitions-and-agreement/" rel="nofollow"><i>Axioms, definitions and agreement</i></a>.</p>
<p>More effort in clarifying what people mean by terms like &#8220;functional&#8221; may spare all of us the common sort of argument in which vague language tricks people into thinking they&#8217;re disagreeing (or agreeing) when really they&#8217;re talking about different things.</p>
<p>I wonder whether there is <i>any</i> basis (axiom) that people can agree on in these discussions of &#8220;Is X is a functional language?&#8221;  Personally, I&#8217;m doubtful.  I don&#8217;t subscribe to your particular claim of a necessary condition for functional programming, &#8220;A functional language must have a notion of function&#8221;.  For me &#8220;functional&#8221; is an unfortunate misnomer.  I take functional to mean that expressing/denoting immutable values.  (Some of those values may be functions.)  So I prefer the term &#8220;value-oriented&#8221; as a clearer replacement for &#8220;functional&#8221;.  And a corresponding &#8220;pure&#8221; notion means one can <i>only</i> express/denote immutable values.</p>
<p>However, rather than &#8220;value-oriented&#8221;, I greatly prefer Peter Landin&#8217;s recommended replacement &#8220;denotative&#8221;, which I understand in a much more precise way than &#8220;functional&#8221;.  See the Landin quotes and ref and some comments at <a href="http://conal.net/blog/posts/is-haskell-a-purely-functional-language/" rel="nofollow"><i>Is Haskell a purely functional language?</i></a>.  Landin&#8217;s notion of denotative sheds light for me on not only &#8220;impure&#8221; languages like C, Scala, and ML, but equally on Haskell&#8217;s (technically) &#8220;functional&#8221; IO.  I teasingly poked at the latter in <a href="http://conal.net/blog/posts/the-c-language-is-purely-functional/" rel="nofollow"><i>The C language is purely functional</i></a>.</p>
<p>Here&#8217;s a quote you might appreciate:</p>
<blockquote><p>The slovenliness of our language makes it easier for us to have foolish thoughts. The point is that the process is reversible.</p>
</blockquote>
<p>From George Orwell&#8217;s <a href="http://www.george-orwell.org/Politics_and_the_English_Language/0.html" rel="nofollow"><i>Politics and the English Language</i></a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David R. MacIver &#187; Blog Archive &#187; Axioms, definitions and agreement</title>
		<link>http://www.drmaciver.com/2009/05/a-problem-of-language/#comment-935</link>
		<dc:creator>David R. MacIver &#187; Blog Archive &#187; Axioms, definitions and agreement</dc:creator>
		<pubDate>Sun, 28 Jun 2009 12:50:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=526#comment-935</guid>
		<description>[...] while ago I posted A Problem of Language, a response to an article claiming that Scala was not a functional language. This isn&#8217;t an [...]</description>
		<content:encoded><![CDATA[<p>[...] while ago I posted A Problem of Language, a response to an article claiming that Scala was not a functional language. This isn&#8217;t an [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: links for 2009-05-18 &#171; pabloidz</title>
		<link>http://www.drmaciver.com/2009/05/a-problem-of-language/#comment-840</link>
		<dc:creator>links for 2009-05-18 &#171; pabloidz</dc:creator>
		<pubDate>Mon, 18 May 2009 12:02:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=526#comment-840</guid>
		<description>[...] A problem of language David R. MacIver (tags: programming scala languages) [...]</description>
		<content:encoded><![CDATA[<p>[...] A problem of language David R. MacIver (tags: programming scala languages) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: david</title>
		<link>http://www.drmaciver.com/2009/05/a-problem-of-language/#comment-838</link>
		<dc:creator>david</dc:creator>
		<pubDate>Sun, 17 May 2009 13:57:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=526#comment-838</guid>
		<description>Actually, I *will* add a follow up comment as to why I&#039;m not willing to take up your challenge.

The point I am arguing is that Robert&#039;s statement &quot;Scala is not a functional programming language&quot; is not well defined, because &quot;functional programming language&quot; is not well defined. I am not arguing that Scala *is* a functional programming language. I&#039;m not even sure the term has a useful interpretation. The statement &quot;C is not an object oriented language&quot; is similarly ill defined, and as such is probably hard to have a useful discussion about. 

Robert&#039;s implicit point, which is not at all what he wrote, is that functional programming in Scala is more painful than it needs to be. I don&#039;t entirely disagree with that. However had that been what he actually written, I wouldn&#039;t have bothered getting involved. Similarly, if someone wants to argue that object orientation in C is fun and easy, they&#039;re welcome to. But I&#039;m going to look at them funny and then go play elsewhere. :-)</description>
		<content:encoded><![CDATA[<p>Actually, I *will* add a follow up comment as to why I&#8217;m not willing to take up your challenge.</p>
<p>The point I am arguing is that Robert&#8217;s statement &#8220;Scala is not a functional programming language&#8221; is not well defined, because &#8220;functional programming language&#8221; is not well defined. I am not arguing that Scala *is* a functional programming language. I&#8217;m not even sure the term has a useful interpretation. The statement &#8220;C is not an object oriented language&#8221; is similarly ill defined, and as such is probably hard to have a useful discussion about. </p>
<p>Robert&#8217;s implicit point, which is not at all what he wrote, is that functional programming in Scala is more painful than it needs to be. I don&#8217;t entirely disagree with that. However had that been what he actually written, I wouldn&#8217;t have bothered getting involved. Similarly, if someone wants to argue that object orientation in C is fun and easy, they&#8217;re welcome to. But I&#8217;m going to look at them funny and then go play elsewhere. :-)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

