<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 11, 2015 at 1:29 AM, Eliot Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">&gt; For my part, the reason I think we ought to implement it *in*<br>
&gt; Smalltalk is ...  this is the String class of the new age.  I want<br>
&gt; Smalltalk to be handle Strings as native objects.<br>
<br>
</span>There&#39;s little if any difference in convenience of use between an Array of characters and a bits array with the string at:/at:put: primitives since both require at:/at:put: to access, but the latter is (efficiently) type checked (by the VM), whereas there&#39;s nothing to prevent storing other than characters in the Areay unless one introduces the overhead of skier explicit type checks  in Smalltalk, and the Areay starts life as a sequence of nils (invalid until every element is set to a character) whereas the bits representation begins fully initialized with 0 asCharacter.  So there&#39;s nothing more &quot;natively objecty&quot; about the Array.  Smalltalk objects hide their representation from clients and externally they behave the same, except for space and time.<br></blockquote><div><br></div><div>I think Euan was referring to the Gemstone strategy of storing the string content as bits, then calling into ICU (a C++ library for Unicode processing) to manipulate them. So he&#39;s saying sure, store the string data as bits, but write Smalltalk code to sort them, render on screen etc.</div><div><br></div><div>Colin</div><div><br></div><div> </div></div></div></div>