<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">> I believe the main difference is that IPython considers the kernel to be<br>

> "in charge", while IEP considers the kernel to be a "slave".<br>
<br>
</div>Can you elaborate on this distinction?<br></blockquote><div><br></div><div>It's been a while since I looked at some code or docs of IPython, so please correct me if I'm wrong. IPython, being historically only an interpreter, is very kernel-centric; most of the smartness is in the kernel, and the "clients" 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's better to do these in the kernel, so our kernel is getting "smarter" :)  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'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'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'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've never done anything using Google Apps Engine, so I'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>