<?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: What Every Programmer Needs to Know About Category Theory</title>
	<atom:link href="http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/feed" rel="self" type="application/rss+xml" />
	<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory</link>
	<description>Languages of the real and artificial.</description>
	<pubDate>Tue, 06 Jan 2009 13:32:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: funny jokes joe</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-404</link>
		<dc:creator>funny jokes joe</dc:creator>
		<pubDate>Tue, 22 Jul 2008 08:59:28 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-404</guid>
		<description>I am using Fire Fox 3.0 Final, and besides the title I can't see a thing either ^^</description>
		<content:encoded><![CDATA[<p>I am using Fire Fox 3.0 Final, and besides the title I can&#8217;t see a thing either <sup></sup></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: funny jokes lover</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-403</link>
		<dc:creator>funny jokes lover</dc:creator>
		<pubDate>Mon, 21 Jul 2008 11:02:14 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-403</guid>
		<description>I am using Fire Fox 3.0 and i can't see a thing either ^^</description>
		<content:encoded><![CDATA[<p>I am using Fire Fox 3.0 and i can&#8217;t see a thing either <sup></sup></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Prismacolor Verithin Diameter Lead</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-402</link>
		<dc:creator>Prismacolor Verithin Diameter Lead</dc:creator>
		<pubDate>Sun, 06 Jul 2008 09:38:09 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-402</guid>
		<description>HAHA</description>
		<content:encoded><![CDATA[<p><span class="caps">HAHA</span></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Blaszczyk</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-401</link>
		<dc:creator>Mark Blaszczyk</dc:creator>
		<pubDate>Sun, 04 May 2008 07:46:33 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-401</guid>
		<description>Seems as tho there is no text under this article? i'll try again later..</description>
		<content:encoded><![CDATA[<p>Seems as tho there is no text under this article? i&#8217;ll try again later..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dub</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-400</link>
		<dc:creator>Dub</dc:creator>
		<pubDate>Mon, 04 Feb 2008 23:20:54 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-400</guid>
		<description>What .NET API is using Monads? (My googling is swamped by the Powershell use of the term).</description>
		<content:encoded><![CDATA[<p>What .NET <span class="caps">API</span> is using Monads? (My googling is swamped by the Powershell use of the term).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pseudonym</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-399</link>
		<dc:creator>Pseudonym</dc:creator>
		<pubDate>Mon, 28 Jan 2008 15:07:35 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-399</guid>
		<description>Oliver: Category theory is to mathematics what design patterns are to software engineering (which is not, of course, what "every programmer" does).

In software engineering, if a pattern shows up in several applications, we give it a name so we can talk about it independently of any single application.  Same with category theory.  Initial objects, products, equalisers and so on are names of patterns which turn up in a lot of algebras.

One thing that I see a lot is that programmers come out of university with a lot of knowledge about how to implement a function/procedure/whatever, but almost none about how to implement the interface.  Making things worse is the problem that an interface is harder to change than an implementation.  It's more important that you get it right early.

One theme that I'm seeing is that the best interfaces, the best APIs, are the most "mathematical".  Even simple things, like binary search trees, are simpler to implement and use if you think about them algebraically.  Even some .NET APIs are using monads in anger these days.

Yes, you could come up with that without knowing any category theory.  However, category theory is another tool in the programmer's toolbox that can be used to talk about, understand and ultimately solve a problem.</description>
		<content:encoded><![CDATA[<p>Oliver: Category theory is to mathematics what design patterns are to software engineering (which is not, of course, what &#8220;every programmer&#8221; does).</p>
<p>In software engineering, if a pattern shows up in several applications, we give it a name so we can talk about it independently of any single application.  Same with category theory.  Initial objects, products, equalisers and so on are names of patterns which turn up in a lot of algebras.</p>
<p>One thing that I see a lot is that programmers come out of university with a lot of knowledge about how to implement a function/procedure/whatever, but almost none about how to implement the interface.  Making things worse is the problem that an interface is harder to change than an implementation.  It&#8217;s more important that you get it right early.</p>
<p>One theme that I&#8217;m seeing is that the best interfaces, the best APIs, are the most &#8220;mathematical&#8221;.  Even simple things, like binary search trees, are simpler to implement and use if you think about them algebraically.  Even some .NET APIs are using monads in anger these days.</p>
<p>Yes, you could come up with that without knowing any category theory.  However, category theory is another tool in the programmer&#8217;s toolbox that can be used to talk about, understand and ultimately solve a problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oliver</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-398</link>
		<dc:creator>Oliver</dc:creator>
		<pubDate>Sat, 19 Jan 2008 01:47:18 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-398</guid>
		<description>@nec, @Arjang: yes, nothing; sorry, it was intended as a joke, not a trick.

@Pseudonym: Congratulations on catching the subtleties in the title ("every programmer" versus "some programmers"; "needs" versus "should").  Nonetheless, I'm curious as to whether knowing category theory helps anyone program.  The parts of category theory that relate to programming (functors, isomorphisms, monads and co-), I realized I was able to understand by using specific programming constructs as examples, and that knowing their categorial expressions didn't lead me to think about them any more deeply or to find analogies or solutions (the way that, say, realizing that you've implemented a state machine, or that your problem can be expressed in linear algebra, do).

And I haven't been able to apply the other parts of category theory to programming at all, although I've found them incredibly useful in doing, and teaching, math, and in thinking about other activities such as project management and other aspects of life.  The Yoneda Lemma, for example, says that you aren't lost if you can find a landmark that you can get home from.  (Think about it :-)</description>
		<content:encoded><![CDATA[<p>@nec, @Arjang: yes, nothing; sorry, it was intended as a joke, not a trick.</p>
<p>@Pseudonym: Congratulations on catching the subtleties in the title (&#8220;every programmer&#8221; versus &#8220;some programmers&#8221;; &#8220;needs&#8221; versus &#8220;should&#8221;).  Nonetheless, I&#8217;m curious as to whether knowing category theory helps anyone program.  The parts of category theory that relate to programming (functors, isomorphisms, monads and co-), I realized I was able to understand by using specific programming constructs as examples, and that knowing their categorial expressions didn&#8217;t lead me to think about them any more deeply or to find analogies or solutions (the way that, say, realizing that you&#8217;ve implemented a state machine, or that your problem can be expressed in linear algebra, do).</p>
<p>And I haven&#8217;t been able to apply the other parts of category theory to programming at all, although I&#8217;ve found them incredibly useful in doing, and teaching, math, and in thinking about other activities such as project management and other aspects of life.  The Yoneda Lemma, for example, says that you aren&#8217;t lost if you can find a landmark that you can get home from.  (Think about it <img src='http://osteele.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: S.</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-397</link>
		<dc:creator>S.</dc:creator>
		<pubDate>Fri, 18 Jan 2008 11:40:08 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-397</guid>
		<description>Nothing? :)</description>
		<content:encoded><![CDATA[<p>Nothing? <img src='http://osteele.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arjang</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-396</link>
		<dc:creator>Arjang</dc:creator>
		<pubDate>Fri, 18 Jan 2008 09:56:45 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-396</guid>
		<description>Is this a joke? I cant see any content. I am using IE 6.</description>
		<content:encoded><![CDATA[<p>Is this a joke? I cant see any content. I am using <span class="caps">IE 6</span>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: nec</title>
		<link>http://osteele.com/archives/2008/01/what-every-programmer-needs-to-know-about-category-theory/comment-page-1#comment-395</link>
		<dc:creator>nec</dc:creator>
		<pubDate>Fri, 18 Jan 2008 06:26:47 +0000</pubDate>
		<guid isPermaLink="false">http://osteele.com/2008/01/17/what-every-programmer-needs-to-know-about-category-theory#comment-395</guid>
		<description>umm, was that supposed to be an ironic joke?</description>
		<content:encoded><![CDATA[<p>umm, was that supposed to be an ironic joke?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
