<?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: It&#8217;s a real programming language</title>
	<atom:link href="http://compsci.ca/blog/its-a-real-programming-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://compsci.ca/blog/its-a-real-programming-language/</link>
	<description>Programming, Education, Computer Science</description>
	<lastBuildDate>Sun, 21 Feb 2010 14:53:51 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Matthew</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-106273</link>
		<dc:creator>Matthew</dc:creator>
		<pubDate>Sun, 22 Jun 2008 19:30:21 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-106273</guid>
		<description>Personally, I consider anything that passes instructions to the computer a programming language. Once you bring semantics into the argument things get a little convoluted.</description>
		<content:encoded><![CDATA[<p>Personally, I consider anything that passes instructions to the computer a programming language. Once you bring semantics into the argument things get a little convoluted.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wolf</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-105134</link>
		<dc:creator>Wolf</dc:creator>
		<pubDate>Mon, 09 Jun 2008 22:08:24 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-105134</guid>
		<description>When I start looking at what a real language is I find the example of malbolge (http://en.wikipedia.org/wiki/Malbolge) somewhat interesting.

It&#039;s a programming language designed for utter incomprehensibility. The best way to some up how crazy it is? after it was introduced it was *two years* before anyone got a working hello world program. They didn&#039;t actually write it. It was generated using a beam search.

Eventually, Malbolge was &quot;solved&quot; (some details are on the wikipedia page mentioned above)

What Malbolge gave me was a bit of an extremely wide view of a programming language. despite how absolutely messed up Malbolge is/was, it is a system of rules for turning input into output. &quot;My&quot; definition of a programming language turned into &quot;a fixed system of rules that given input, produces output, regardless of our understanding of the intermediate steps&quot;. 

It&#039;s a pretty loose definition. 
it means that I dont consider HTML, XML, or Latex to be &quot;programming languages&quot; 
it does however mean that I would consider a system of pipes and valves to be a programming language, or, to stretch the point a bit, &quot;gravity&quot; as it takes an input (initial positions) and produces output (final positions) according to it&#039;s own system of rules. 

at least that&#039;s my stock answer to what is a &quot;programming language&quot; 

of course, I define &quot;useful programming language&quot; quite differently. (and purposely leave a few off of that list just to irritate the language zealots)</description>
		<content:encoded><![CDATA[<p>When I start looking at what a real language is I find the example of malbolge (<a href="http://en.wikipedia.org/wiki/Malbolge" rel="nofollow">http://en.wikipedia.org/wiki/Malbolge</a>) somewhat interesting.</p>
<p>It&#8217;s a programming language designed for utter incomprehensibility. The best way to some up how crazy it is? after it was introduced it was *two years* before anyone got a working hello world program. They didn&#8217;t actually write it. It was generated using a beam search.</p>
<p>Eventually, Malbolge was &#8220;solved&#8221; (some details are on the wikipedia page mentioned above)</p>
<p>What Malbolge gave me was a bit of an extremely wide view of a programming language. despite how absolutely messed up Malbolge is/was, it is a system of rules for turning input into output. &#8220;My&#8221; definition of a programming language turned into &#8220;a fixed system of rules that given input, produces output, regardless of our understanding of the intermediate steps&#8221;. </p>
<p>It&#8217;s a pretty loose definition.<br />
it means that I dont consider HTML, XML, or Latex to be &#8220;programming languages&#8221;<br />
it does however mean that I would consider a system of pipes and valves to be a programming language, or, to stretch the point a bit, &#8220;gravity&#8221; as it takes an input (initial positions) and produces output (final positions) according to it&#8217;s own system of rules. </p>
<p>at least that&#8217;s my stock answer to what is a &#8220;programming language&#8221; </p>
<p>of course, I define &#8220;useful programming language&#8221; quite differently. (and purposely leave a few off of that list just to irritate the language zealots)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jordan</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-104900</link>
		<dc:creator>Jordan</dc:creator>
		<pubDate>Thu, 29 May 2008 18:09:02 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-104900</guid>
		<description>My feeling would be that it&#039;s not a programming language if it&#039;s not designed to let a programmer solve a problem. By that definition, everything from Asm, B, C(  ), Java, Fortran and so on to HTML, JS, and XML are &quot;programming languages&quot;, even if some are declarative data-storage while others are procedural (functional? logical?).

I think we can probably all agree that Befunge isn&#039;t a real programming language.</description>
		<content:encoded><![CDATA[<p>My feeling would be that it&#8217;s not a programming language if it&#8217;s not designed to let a programmer solve a problem. By that definition, everything from Asm, B, C(  ), Java, Fortran and so on to HTML, JS, and XML are &#8220;programming languages&#8221;, even if some are declarative data-storage while others are procedural (functional? logical?).</p>
<p>I think we can probably all agree that Befunge isn&#8217;t a real programming language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-103910</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Sun, 27 Apr 2008 03:13:47 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-103910</guid>
		<description>@Han -- I think this calls for a new post to be written. It&#039;s in my todo list.

Also thx for spotting that bug. I&#039;ve been pretty frustrated with this theme, and Wordpress in general lately. My summer project will be to write my own blogging engine.

@Antonio -- because at some point COBOL and Fortran were dominating the industry. I can almost guarantee that &lt;strong&gt;PHP will become obsolete&lt;/strong&gt; in our lifetime.</description>
		<content:encoded><![CDATA[<p>@Han &#8212; I think this calls for a new post to be written. It&#8217;s in my todo list.</p>
<p>Also thx for spotting that bug. I&#8217;ve been pretty frustrated with this theme, and Wordpress in general lately. My summer project will be to write my own blogging engine.</p>
<p>@Antonio &#8212; because at some point COBOL and Fortran were dominating the industry. I can almost guarantee that <strong>PHP will become obsolete</strong> in our lifetime.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Antonio</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-103877</link>
		<dc:creator>Antonio</dc:creator>
		<pubDate>Fri, 25 Apr 2008 14:34:48 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-103877</guid>
		<description>This may seem like a ridiculous question, but why the need for so many programming languages in the first place. I am learning php and if that became obsolete I would be pretty preturbed! LOL</description>
		<content:encoded><![CDATA[<p>This may seem like a ridiculous question, but why the need for so many programming languages in the first place. I am learning php and if that became obsolete I would be pretty preturbed! LOL</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Han</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-103821</link>
		<dc:creator>Han</dc:creator>
		<pubDate>Wed, 23 Apr 2008 06:15:42 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-103821</guid>
		<description>FYI (off topic): Your website&#039;s commenting system has a bug in the JavaScript (well I mean, it could be CSS, but anyways it&#039;s not a server-side problem). You know where it says &quot;Welcome back  (Change)&quot; just above the comment box if you&#039;ve commented before? Well in Opera 9.27 (Mac OS X 10.4.11, but that shouldn&#039;t make a difference), if you click on Change there&#039;s a nice smooth animation of the comment box sliding away and the user info textboxes fading in (Scriptaculous, huh? Nice), and then the comment box snaps back to it&#039;s original position and the textboxes are displayed overlaid above the comment box and text inside. Quite unsightly.

BTW, if it turns out it isn&#039;t your fault, it&#039;s Scriptaculous&#039;s problem, do consider &lt;a href=&quot;http://www.jquery.com&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>FYI (off topic): Your website&#8217;s commenting system has a bug in the JavaScript (well I mean, it could be CSS, but anyways it&#8217;s not a server-side problem). You know where it says &#8220;Welcome back  (Change)&#8221; just above the comment box if you&#8217;ve commented before? Well in Opera 9.27 (Mac OS X 10.4.11, but that shouldn&#8217;t make a difference), if you click on Change there&#8217;s a nice smooth animation of the comment box sliding away and the user info textboxes fading in (Scriptaculous, huh? Nice), and then the comment box snaps back to it&#8217;s original position and the textboxes are displayed overlaid above the comment box and text inside. Quite unsightly.</p>
<p>BTW, if it turns out it isn&#8217;t your fault, it&#8217;s Scriptaculous&#8217;s problem, do consider <a href="http://www.jquery.com" rel="nofollow">jQuery</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Han</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-103820</link>
		<dc:creator>Han</dc:creator>
		<pubDate>Wed, 23 Apr 2008 06:03:46 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-103820</guid>
		<description>I understand what you&#039;re saying, and you&#039;re right, of course, but I didn&#039;t understand how that relates to my perspective on HTML as a declarative language. To the best of my understanding declarative programming does not involve logic &lt;em&gt;flow&lt;/em&gt; like in an algorithm, but is instead about logical &lt;em&gt;relationships&lt;/em&gt; like in a mathematical (or scientific, for that matter) theory.

OK, HTML documents in general are a tad difficult to compare with mathematical theories, although I can definitely think of quite a few exceptions right off the top of my head. But they both use a very specific, very precise, syntactically watertight, computer-comprehensible language to describe what they are, without giving any at all specific or precise algorithm for implementation.

As for what problem theories describe, well apart from how to give students headaches, which they are quite adept at, theories describe the problem of how relationships between various axioms (in math) or fundamental laws of nature (in science) give rise to a certain mathematical results (math) or observable phenomenon (science). It&#039;s typically up to the computer or very confused student to figure out how to represent it so that it makes sense to itself, where &quot;making sense&quot; means being able to analyze and draw conclusions from the theory (the computer of course would require very sophisticated imperative programming in order to do so, and the student doesn&#039;t stand a chance anyway).

&quot;&lt;i&gt;well actually&lt;/i&gt;&quot; Round 3: Han&#039;s turn

&lt;em&gt;Well actually&lt;/em&gt;, Roomba&#039;s mechanical parts can be seen as just a set of physical I/O API&#039;s for whatever imperative programming is built-in to the circuitry.</description>
		<content:encoded><![CDATA[<p>I understand what you&#8217;re saying, and you&#8217;re right, of course, but I didn&#8217;t understand how that relates to my perspective on HTML as a declarative language. To the best of my understanding declarative programming does not involve logic <em>flow</em> like in an algorithm, but is instead about logical <em>relationships</em> like in a mathematical (or scientific, for that matter) theory.</p>
<p>OK, HTML documents in general are a tad difficult to compare with mathematical theories, although I can definitely think of quite a few exceptions right off the top of my head. But they both use a very specific, very precise, syntactically watertight, computer-comprehensible language to describe what they are, without giving any at all specific or precise algorithm for implementation.</p>
<p>As for what problem theories describe, well apart from how to give students headaches, which they are quite adept at, theories describe the problem of how relationships between various axioms (in math) or fundamental laws of nature (in science) give rise to a certain mathematical results (math) or observable phenomenon (science). It&#8217;s typically up to the computer or very confused student to figure out how to represent it so that it makes sense to itself, where &#8220;making sense&#8221; means being able to analyze and draw conclusions from the theory (the computer of course would require very sophisticated imperative programming in order to do so, and the student doesn&#8217;t stand a chance anyway).</p>
<p>&#8220;<i>well actually</i>&#8221; Round 3: Han&#8217;s turn</p>
<p><em>Well actually</em>, Roomba&#8217;s mechanical parts can be seen as just a set of physical I/O API&#8217;s for whatever imperative programming is built-in to the circuitry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-103818</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Tue, 22 Apr 2008 23:53:27 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-103818</guid>
		<description>You are correct, though my point was to stretch the limitations for the purposes of this discussion.

Roomba&#039;s hardware is obviously instructed by an imperative language. If it&#039;s anything like &lt;a href=&quot;http://compsci.ca/blog/irobot-create-programmable-robot-kit/&quot; title=&quot;irobot create - programmable robot kit&quot; rel=&quot;nofollow&quot;&gt;iRobot Create Kit&lt;/a&gt;, then the original is also likely to have been made in C or C-plus-plus. Though I was referring to the robot itself, as a unit, not counting as a programming language of its own. It solves a problem (the programming language inside solves the problem of moving the hardware), but I feel that is an entirely different domain.</description>
		<content:encoded><![CDATA[<p>You are correct, though my point was to stretch the limitations for the purposes of this discussion.</p>
<p>Roomba&#8217;s hardware is obviously instructed by an imperative language. If it&#8217;s anything like <a href="http://compsci.ca/blog/irobot-create-programmable-robot-kit/" title="irobot create - programmable robot kit" rel="nofollow">iRobot Create Kit</a>, then the original is also likely to have been made in C or C-plus-plus. Though I was referring to the robot itself, as a unit, not counting as a programming language of its own. It solves a problem (the programming language inside solves the problem of moving the hardware), but I feel that is an entirely different domain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Han</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-103816</link>
		<dc:creator>Han</dc:creator>
		<pubDate>Tue, 22 Apr 2008 22:25:59 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-103816</guid>
		<description>Um, as a declarative language, I don&#039;t think Turing-completeness even applies to HTML. That&#039;s for &lt;em&gt;imperative languages&lt;/em&gt;, to the best of my knowledge.

Also, although I don&#039;t actually know, I would be very surprised if Roomba wasn&#039;t programmed in an imperative programming language, probably C   though it could easily be Self or something.</description>
		<content:encoded><![CDATA[<p>Um, as a declarative language, I don&#8217;t think Turing-completeness even applies to HTML. That&#8217;s for <em>imperative languages</em>, to the best of my knowledge.</p>
<p>Also, although I don&#8217;t actually know, I would be very surprised if Roomba wasn&#8217;t programmed in an imperative programming language, probably C   though it could easily be Self or something.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony</title>
		<link>http://compsci.ca/blog/its-a-real-programming-language/comment-page-1/#comment-103797</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Tue, 22 Apr 2008 03:41:21 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/its-a-real-programming-language/#comment-103797</guid>
		<description>That&#039;s one way to look at it. Also, I suppose that HTML documents, and more specifically hyperlink tags, could be used to describe a finite state machine; which is turn opens the possibility of a logic flow. Though I think that&#039;s quite a bit of a stretch. If we gonna play the &lt;em&gt;&quot;well actually...&quot;&lt;/em&gt; game, then a Turing machine can be constructed out of (a lot of) rail tracks and a train.

It seems that we now need to establish just what kind of problems are valid (that is, a Roomba is not a programming language, even though it solves the problem of floors being occupied by dust).</description>
		<content:encoded><![CDATA[<p>That&#8217;s one way to look at it. Also, I suppose that HTML documents, and more specifically hyperlink tags, could be used to describe a finite state machine; which is turn opens the possibility of a logic flow. Though I think that&#8217;s quite a bit of a stretch. If we gonna play the <em>&#8220;well actually&#8230;&#8221;</em> game, then a Turing machine can be constructed out of (a lot of) rail tracks and a train.</p>
<p>It seems that we now need to establish just what kind of problems are valid (that is, a Roomba is not a programming language, even though it solves the problem of floors being occupied by dust).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
