<p dir="ltr">Can&#39;t this be alleviated by the guidance on naming that the docs already provide?</p>
<p dir="ltr">Sam</p>
<div class="gmail_quote">On Jun 6, 2013 2:30 PM, &quot;Jay McCarthy&quot; &lt;<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Thu, Jun 6, 2013 at 12:03 PM, Sam Tobin-Hochstadt &lt;<a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a>&gt; wrote:<br>
&gt; On Thu, Jun 6, 2013 at 1:42 PM, Jay McCarthy &lt;<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; I am *very* strongly in favor of this -- I&#39;d rather have<br>
&gt;&gt;&gt; single-collection packages than multi-collection packages, if forced<br>
&gt;&gt;&gt; to choose. I&#39;m very glad that you and Laurent have done the work here.<br>
&gt;&gt;<br>
&gt;&gt; The main problem with this is that it brings in internal linking where<br>
&gt;&gt; code directly refers to other packages (implementations) and not<br>
&gt;&gt; modules (interfaces) as the default. This means we will see code like<br>
&gt;&gt; (require jays-awesome-data-structure) rather than (require<br>
&gt;&gt; data/awesome). I think this is bad because it makes it harder to deal<br>
&gt;&gt; with forking, maintainers abandoning their code, splitting packages<br>
&gt;&gt; into packages that just depend on &#39;jays-awesome-data-structure, rather<br>
&gt;&gt; than implementing it internally, etc. Obviously you can still deal<br>
&gt;&gt; with those things, but if the path of evolution we imagine starts off<br>
&gt;&gt; with single-package-with-package/collection-name-shared, then most<br>
&gt;&gt; packaged collections will have a package as their name.<br>
&gt;<br>
&gt; First, I don&#39;t see why single-collection packages make things harder<br>
&gt; to deal with re-implementing a package.  Imagine that I make<br>
&gt; `disassemble` a single-collection package, and someone depends on it,<br>
&gt; and then I abandon my code.  You can easily create a new package that<br>
&gt; ships that collection.  I think that places the burden correctly --<br>
&gt; it&#39;s easy to create packages initially, and handling abandoned<br>
&gt; packages takes a little more work.  In JavaScript, where there&#39;s a<br>
&gt; flat namespace, this works -- the Zepto library just provides the same<br>
&gt; names as jQuery, even though they&#39;re different implementations and not<br>
&gt; generic names.<br>
<br>
The problem is that if you use the name &quot;samths-disassemble&quot; then even<br>
in twenty years, my implementation uses the collection<br>
&quot;samths-disassemble&quot; and not &quot;disassemble&quot;.<br>
<br>
Jay<br>
<br>
<br>
--<br>
Jay McCarthy &lt;<a href="mailto:jay@cs.byu.edu">jay@cs.byu.edu</a>&gt;<br>
Assistant Professor / Brigham Young University<br>
<a href="http://faculty.cs.byu.edu/~jay" target="_blank">http://faculty.cs.byu.edu/~jay</a><br>
<br>
&quot;The glory of God is Intelligence&quot; - D&amp;C 93<br>
</blockquote></div>