<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">&gt; I believe the main difference is that IPython considers the kernel to be<br>

&gt; &quot;in charge&quot;, while IEP considers the kernel to be a &quot;slave&quot;.<br>
<br>
</div>Can you elaborate on this distinction?<br></blockquote><div><br></div><div>It&#39;s been a while since I looked at some code or docs of IPython, so please correct me if I&#39;m wrong. IPython, being historically only an interpreter, is very kernel-centric; most of the smartness is in the kernel, and the &quot;clients&quot; are relatively thin. IEP comes from the other direction; most of the smartness is in the IDE, and the kernel is made to be as small and light as possible. </div>
<div><br></div><div>One example is that the IEP kernel does not know about autocompletion. The kernel has an RPC component that on demand provides the IDE with a list of names in a certain namespace, and the IDE uses that to provide autocompletion to the user.</div>
<div><br></div><div>Although IEP initially also did the magic commands on the IDE side, we know think it&#39;s better to do these in the kernel, so our kernel is getting &quot;smarter&quot; :)  But for the rest we try to keep the kernel stupid, and have it provide the IDE with all the information to do the smart stuff. Anyway, that&#39;s the idea.</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Also, as a pure-python library, I&#39;m also curious how easy it would be to<br>
port parts of yoton to Google App Engine (for instance, to run a kernel<br>
on GAE).  You wouldn&#39;t have a BSD socket, but you could substitute in a<br>
wrapper around the GAE Channel class, I think (or at least hope).<br></blockquote><div><br></div><div>I&#39;ve never done anything using Google Apps Engine, so I&#39;m not sure how difficult it would be to deploy yoton on it. As for the connection, Yoton implements an abstract class <a href="http://yoton.readthedocs.org/en/latest/connection.html#connection">Connection</a> that represents the thing that connects two contexts. Currently the TcpConnection (which wraps a BSD socket) is the only subclass. In principal it should be possible to wrap any kind of connection in it.</div>
<div><br></div><div>Regards,</div><div>  Almar</div><div><br></div></div>