<?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>Kevin Deenanauth &#187; Meta Programming</title>
	<atom:link href="https://kevin.deenanauth.com/category/meta-programming/feed/" rel="self" type="application/rss+xml" />
	<link>https://kevin.deenanauth.com</link>
	<description>from global import *</description>
	<lastBuildDate>Wed, 19 Mar 2014 07:02:54 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<meta name="generator" content="WordPress 3.8.15" />
	<item>
		<title>Dev.meta &#8211; Composition</title>
		<link>https://kevin.deenanauth.com/2014/02/dev-meta-composition/</link>
		<comments>https://kevin.deenanauth.com/2014/02/dev-meta-composition/#comments</comments>
		<pubDate>Mon, 17 Feb 2014 19:29:44 +0000</pubDate>
		<dc:creator><![CDATA[kdeenanauth]]></dc:creator>
				<category><![CDATA[Meta Programming]]></category>

		<guid isPermaLink="false">http://kevin.deenanauth.com/?p=30</guid>
		<description><![CDATA[I found an interesting piece via Reddit about composition for something I only just learned recently. What resounded with me most is: I think the real composability and reusability in object-oriented code doesn’t come from object-oriented design at all: it comes from abstraction and encapsulation. If a library manages to hide a potentially complex implementation [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I found an <a href="http://zeroturnaround.com/rebellabs/why-the-debate-on-object-oriented-vs-functional-programming-is-all-about-composition/" target="_blank">interesting piece</a> via Reddit about composition for something I only just learned recently. What resounded with me most is:</p>
<blockquote><p>I think the real composability and reusability in object-oriented code doesn’t come from object-oriented design at all: it comes from abstraction and encapsulation. If a library manages to hide a potentially complex implementation behind a simple interface, and you only have to know the simple interface to use it, then that doesn&#8217;t come from some inherent property of object-orientation, but a basic module system that limits which symbols are exported to other modules, whether the modules are classes, namespaces, packages or something else.</p></blockquote>
<p>He goes on to talk about applying these same concepts to functions.</p>
<blockquote><p>It’s so simple to understand compared to the numerous and perhaps even indescribable <em>ad hoc </em>compositions possible in OOP. If you have two functions with matching input and output types, they always compose!</p></blockquote>
<p>Folks using a prototypal language like Javascript are probably very familiar with how powerful (and confusing) this can be.</p>
<h2></h2>
]]></content:encoded>
			<wfw:commentRss>https://kevin.deenanauth.com/2014/02/dev-meta-composition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
