<?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"
	>
<channel>
	<title>Comments on: the importance of making packages</title>
	<atom:link href="http://inkdroid.org/journal/2006/09/19/the-importance-of-making-packages/feed/" rel="self" type="application/rss+xml" />
	<link>http://inkdroid.org/journal/2006/09/19/the-importance-of-making-packages/</link>
	<description>$pithy_personal_mission_statement</description>
	<pubDate>Thu, 04 Dec 2008 01:30:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: Dan Scott</title>
		<link>http://inkdroid.org/journal/2006/09/19/the-importance-of-making-packages/#comment-4763</link>
		<dc:creator>Dan Scott</dc:creator>
		<pubDate>Tue, 19 Sep 2006 15:34:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.inkdroid.org/journal/2006/09/19/the-importance-of-making-packages/#comment-4763</guid>
		<description>+1

My recent experience mirrors the Rails/Basecamp history. 

While working on the File_MARC proposal for PHP's PEAR package repository, I initially created a basic linked list as part of the File_MARC package. I recognized that it could be its own package, but to be honest I was reluctant to go through the rigorous PEAR package proposal process for both File_MARC and a linked list package at the same time. Especially when File_MARC depends on the linked list package, so a hold-up in approval for the linked list package would delay File_MARC's birth as well.

After a few weeks, I realized that I might as well split the linked list off into its own package as it was likely that a) the linked list package would be of much more general interest than File_MARC, and therefore more likely to have its rough edges (ahem, "bugs") worn down by wider usage -- thereby benefiting File_MARC and 2) by making it a separate package, it would force me to develop, test, and document the linked list functionality much more thoroughly than if it remained a part of the File_MARC "mud".  I'm convinced the results will be worth the extra effort.

Once I factored out the linked list into its own package, I realized that I could go a step further and refactor the doubly-linked list into a singly-linked list as a base class and reimplement the doubly-linked list as a simple extension to the singly-linked list. Benefit to the users, who can just choose a singly-linked list if their application doesn't need the overhead of being able to traverse the list in reverse, and benefit to the development team (me) because of the code reuse.

So yes, nice little reusable packages are good.</description>
		<content:encoded><![CDATA[<p>+1</p>
<p>My recent experience mirrors the Rails/Basecamp history. </p>
<p>While working on the File_MARC proposal for PHP&#8217;s PEAR package repository, I initially created a basic linked list as part of the File_MARC package. I recognized that it could be its own package, but to be honest I was reluctant to go through the rigorous PEAR package proposal process for both File_MARC and a linked list package at the same time. Especially when File_MARC depends on the linked list package, so a hold-up in approval for the linked list package would delay File_MARC&#8217;s birth as well.</p>
<p>After a few weeks, I realized that I might as well split the linked list off into its own package as it was likely that a) the linked list package would be of much more general interest than File_MARC, and therefore more likely to have its rough edges (ahem, &#8220;bugs&#8221;) worn down by wider usage &#8212; thereby benefiting File_MARC and 2) by making it a separate package, it would force me to develop, test, and document the linked list functionality much more thoroughly than if it remained a part of the File_MARC &#8220;mud&#8221;.  I&#8217;m convinced the results will be worth the extra effort.</p>
<p>Once I factored out the linked list into its own package, I realized that I could go a step further and refactor the doubly-linked list into a singly-linked list as a base class and reimplement the doubly-linked list as a simple extension to the singly-linked list. Benefit to the users, who can just choose a singly-linked list if their application doesn&#8217;t need the overhead of being able to traverse the list in reverse, and benefit to the development team (me) because of the code reuse.</p>
<p>So yes, nice little reusable packages are good.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
