<p dir="ltr">Can'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, "Jay McCarthy" <<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>> 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 <<a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a>> wrote:<br>
> On Thu, Jun 6, 2013 at 1:42 PM, Jay McCarthy <<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>> wrote:<br>
>><br>
>>> I am *very* strongly in favor of this -- I'd rather have<br>
>>> single-collection packages than multi-collection packages, if forced<br>
>>> to choose. I'm very glad that you and Laurent have done the work here.<br>
>><br>
>> The main problem with this is that it brings in internal linking where<br>
>> code directly refers to other packages (implementations) and not<br>
>> modules (interfaces) as the default. This means we will see code like<br>
>> (require jays-awesome-data-structure) rather than (require<br>
>> data/awesome). I think this is bad because it makes it harder to deal<br>
>> with forking, maintainers abandoning their code, splitting packages<br>
>> into packages that just depend on 'jays-awesome-data-structure, rather<br>
>> than implementing it internally, etc. Obviously you can still deal<br>
>> with those things, but if the path of evolution we imagine starts off<br>
>> with single-package-with-package/collection-name-shared, then most<br>
>> packaged collections will have a package as their name.<br>
><br>
> First, I don't see why single-collection packages make things harder<br>
> to deal with re-implementing a package. Imagine that I make<br>
> `disassemble` a single-collection package, and someone depends on it,<br>
> and then I abandon my code. You can easily create a new package that<br>
> ships that collection. I think that places the burden correctly --<br>
> it's easy to create packages initially, and handling abandoned<br>
> packages takes a little more work. In JavaScript, where there's a<br>
> flat namespace, this works -- the Zepto library just provides the same<br>
> names as jQuery, even though they're different implementations and not<br>
> generic names.<br>
<br>
The problem is that if you use the name "samths-disassemble" then even<br>
in twenty years, my implementation uses the collection<br>
"samths-disassemble" and not "disassemble".<br>
<br>
Jay<br>
<br>
<br>
--<br>
Jay McCarthy <<a href="mailto:jay@cs.byu.edu">jay@cs.byu.edu</a>><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>
"The glory of God is Intelligence" - D&C 93<br>
</blockquote></div>