<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Conal Elliott &#187; interactive programming</title>
	<atom:link href="http://conal.net/blog/tag/interactive-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://conal.net/blog</link>
	<description>Inspirations &#38; experiments, mainly about denotational programming in Haskell</description>
	<lastBuildDate>Fri, 30 Jul 2010 02:56:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tangible Functional Programming: a modern marriage of usability and composability</title>
		<link>http://conal.net/blog/posts/tangible-functional-programming-a-modern-marriage-of-usability-and-composability/</link>
		<comments>http://conal.net/blog/posts/tangible-functional-programming-a-modern-marriage-of-usability-and-composability/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 04:54:00 +0000</pubDate>
		<dc:creator>conal</dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[Eros]]></category>
		<category><![CDATA[interactive programming]]></category>
		<category><![CDATA[paper]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[TV]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/tangible-functional-programming-a-modern-marriage-of-usability-and-composability/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Earlier this month I gave a tech talk at Google, entitled &#8220;Tangible Functional Programming: a modern marriage of usability and composability&#8221;.  Thanks to Google folks, <a href="http://www.youtube.com/watch?v=faJ8N0giqzw">the talk is now up on YouTube</a>.  I showed a way make functional programming &#8220;tangible&#8221; and visual, rather than abstract and syntactic and, in doing so, to fulfill the original Unix vision of simple, composable apps.</p>

<p>The key is to keep an app&#8217;s interface and functionality combined and separable.  Combined yields usability, and separable yields composability.  This principle applies not only to GUI-style interfaces, but to textual IO as well, and it applies to both direct composition and syntactic composition.  See <a href="http://haskell.org/haskellwiki/TV">the TV page</a> for examples of the latter.  The common practice of mixing IO with functionality inhibits composability whether in C or in Haskell.</p>

<p><strong>Edit 2008-09-09</strong>: The technical/theoretical basis for this tech talk is in the paper <a href="http://conal.net/papers/Eros/">Tangible Functional Programming</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/tangible-functional-programming-a-modern-marriage-of-usability-and-composability/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>&quot;Tangible Functional Programming&quot; &#8212; icfp version</title>
		<link>http://conal.net/blog/posts/tangible-functional-programming-icfp-version/</link>
		<comments>http://conal.net/blog/posts/tangible-functional-programming-icfp-version/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 05:19:00 +0000</pubDate>
		<dc:creator>conal</dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[arrow]]></category>
		<category><![CDATA[DeepArrow]]></category>
		<category><![CDATA[Eros]]></category>
		<category><![CDATA[gestural composition]]></category>
		<category><![CDATA[icfp]]></category>
		<category><![CDATA[interactive programming]]></category>
		<category><![CDATA[interactive visualization]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Phooey]]></category>
		<category><![CDATA[TV]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/tangible-functional-programming-icfp-version/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>I just submitted the camera-ready version of <a href="http://conal.net/papers/Eros">&#8220;Tangible Functional Programming&#8221;</a>, for <a href="http://www.informatik.uni-bonn.de/%7Eralf/icfp07.html">ICFP &#8216;07</a>.  I&#8217;m happy with this version. It&#8217;s improved drastically since my first submission to ICFP &#8216;06, thanks to many helpful comments. I&#8217;ve also been recreating the implementation on top of <a href="http://www.haskell.org/haskellwiki/DeepArrow">DeepArrow</a>, <a href="http://www.haskell.org/haskellwiki/Phooey">Phooey</a>, and <a href="http://www.haskell.org/haskellwiki/TV">TV</a>, in preparation for a software release. It&#8217;s getting simpler, but it&#8217;s not as simple as I want.</p>
]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/tangible-functional-programming-icfp-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
