<div dir="ltr">Hi Jecel,<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 12, 2014 at 11:52 AM, Jecel Assumpcao Jr. <span dir="ltr">&lt;<a href="mailto:jecel@merlintec.com" target="_blank">jecel@merlintec.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dennis Schetinin asked:<br>
<div class="im">&gt; Is Self a Smalltalk? :)<br>
<br>
</div>Yes. To quote Mario Wolczko, &quot;Self is like Smalltalk, only more so.&quot;<br>
<br>
It seems that I have the only copy of his &quot;Self includes: Smalltalk&quot;<br>
paper online:<br>
<br>
<a href="http://www.merlintec.com/download/mario.pdf" target="_blank">http://www.merlintec.com/download/mario.pdf</a><br>
<br>
The pages are in the reverse order, which makes it nice to print on<br>
simple printers but a bit complicated to read on a screen.<br>
<br>
It is very important to notice that this is *not* like a Lisp or Prolog<br>
implemented on top of Squeak. A casual reading of this paper might give<br>
this impression, but it really is something different. Self is treated<br>
as a kernel Smalltalk which is then expanded into full GNU Smalltalk<br>
compatibility. There aren&#39;t two layers, but a single language.<br>
<br>
This is in contrast to PEP, which implemented Java by compiling it to<br>
Self bytecodes. That is like NewSpeak using the Squeak VM:<br>
<br>
&gt; <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.23.6906&amp;rep=rep1&amp;type=pdf" target="_blank">http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.23.6906&amp;rep=rep1&amp;type=pdf</a></blockquote>
<div><br></div><div>I have to quibble here.  Newspeak isn&#39;t entirely compiled to Squeak bytecodes.  Lexically bound and dynamic super sends require special run-time support.  In the first implementation that took the form of escaping from bytecodes into a perform:-like invocation that was very slow.  In the second implementation we added two bytecodes that find the effective receiver, one for a lexically-bound send, and one for a dynamic super send.  But this is a security hole.  In the third implementation we have a new bytecode set, which sits alongside Squeak&#39;s, and this contains absent receiver sends for lexically-bound and dynamic super sends.  [and note, Newspeak, not NewSpeak]</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Since this paper (&quot;Towards a Universal Implementation Substrate for<br>
Object-Oriented Languages&quot; by Mario Wolczko, Ole Agesen and David Ungar)<br>
talks about both projects it is easy to get the impression that they<br>
were the same kind of thing and that saying &quot;Self is a Smalltalk&quot; would<br>
be as silly as saying &quot;Self is a Java&quot;. The details are important.<br></blockquote><div><br></div><div>Yes, the details are important, but Self is an evolution of Smalltalk, just as Newspeak is.  Java is /not/ an evolution of Smalltalk.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">-- Jecel<br></font></span></blockquote></div><div><br></div>-- <br>
best,<div>Eliot</div>
</div></div>