<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Dec 27, 2010, at 11:03 AM, Jecel Assumpcao Jr. wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">



<div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; ">
<span style="display:none"> </span>



    <div id="ygrp-text"><p>All of my least favorite Self features have the same cause - strings or<br>
numbers where objects would work better. Certainly annotations are a<br>
more "proper" way of doing what was a "pun" in Self 1 and 2 using parent<br>
priorities, but I would be happier if these annotations were full Self<br>
objects instead of strings that have to be parsed in wierd way to<br>
extract the information we need from them.<br></p></div></div></div></div></blockquote><div><br></div><div>The string part was an easy implementation way to save space. Sure storing objects would have been nicer.</div><div>In fact they were changed back and forth to objects in a way that was transparent.</div><div>Annotations were meant to be functional, so you could replace them but not change them in place.</div><div>That saves a lot of space. Remember that every slot in every point object conceptually had its own annotation.</div><div><br></div><div><br></div><br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><p>
<br>
Another place with this problem is the parameters of fail blocks. In<br>
fact, this made Ole Agesen's application extraction scheme a lot less<br>
useful since primitive handling code always had to include fancy string<br>
methods. Replacing this parsing with a small set of exception objects<br>
would be a huge improvement, in my opinion.<br></p></div></div></div></div></blockquote><div>Not sure what you mean here about Ole's extractor.</div><div>IMNSO, exceptions were a botch invented in languages without blocks.</div><div>I never liked the fact that control could invisibly branch off.</div><div>For instance, in a long method with exceptions, containing A; B; C;, you cannot count on </div><div>B being executed if A is executed. At least with fail blocks you can see the branch in the return symbol in the block.</div><div>I know that others like exceptions. To me they are like iterators, both were workarounds for languages without blocks</div><div>that became enshrined in our culture. I prefer blocks. But that's just me.</div><div><br></div><div><br></div><br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><p>
<br>
The layout stuff in Morphic used to (I haven't looked since 1995) encode<br>
stuff like left/middle/right as 1, 2 or 3. This required lots of tests<br>
that would go away if simple alignment objects were used instead.<br></p></div></div></div></div></blockquote><div><br></div><div><br></div><br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><p>
<br>
About the annotations, in my tinySelf 0 I just had a special constant<br>
slot with the value for the object annotation, but never did come up<br>
with a good scheme for the slot annotations.<br></p></div></div></div></div></blockquote><div>That would allow object annotations to be accessed without reflection, a change from what I considered to</div><div>be the appropriate base-level semantics. It is simpler, though. It violates my preferred model of object encapsulation.</div><div><br></div><div><br></div><br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><p>
<br>
-- Jecel<br>
<br>
</p>

    </div>
     

    

</div>



<!-- end group email -->

</blockquote></div><br></body></html>