<div dir="ltr"><div dir="ltr">Hi,</div><div dir="ltr"><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The most recent VMs ship with the plugins.<br></blockquote><div><br></div><div>I didn't know, that's good news!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> > I decided against the practice of making #new return an instance of<br>
> > another class than the receiver, as it was with the previous<br>
> > implementation, because that makes it a lot harder for others to<br>
> > understand the code.<br>
> <br>
> Hm.  I sort of agree, although I guess Factory is a recognized pattern.  To me, the issue is that writing<br>
> <br>
>       "SHA256 new"<br>
> <br>
> , is a perfectly intuitive and obvious way to use it, but sticking out like a sore thumb as a subversively-wrong-way to-use-it.  It'd be better if it threw an error, and even better than that if it just worked. </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> <br>
> I know you care about the quantity of methods in the image (as do I), how about quality?  Can SHA256 #new be improved by doing essentially what HashFunction #newSHA256 does, and simply sending some alternative to new (i.e.,<br>
<br>
It's not clear what do you mean by caring about the quantity of methods.<br></blockquote><div><br></div><div>What you referred to as "bloat" in the discussion about loading all crypto primitives or not.  After Robert had mentioned the size in K bytes, you'd mentioned you cared about the number of methods in classes, not so much their size in bytes.  To which I agree, although I think you take it a lot further than me (i.e., Time microsecondClockValue).</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> basicNew initialize) to avoid the recursion?<br>
<br>
That would do exactly what I do not want to do: #new would return an <br>
object whose class is not SHA256.<br></blockquote><div><br></div><div>Okay, now I understand.  This gets back to one of our core differences in philosophy -- your greater concern over <i>types</i> vs. mine over <i>API's</i>.  You're okay with it for Strings (ByteString vs. WideString) and Numbers (LargePositive.., LargeNegative..., etc.), and probably a few others.  But not SHA256.  IMO, letting different implementations with the same API be interchangeable is what leverages Smalltalk's late-binding power.</div><div><br></div><div> - Chris<br></div></div></div>