[IPython-User] SAGE notebook vs iPython notebook

Fernando Perez fperez.net@gmail....
Sun Jan 8 14:53:39 CST 2012

Replying on-list, as it seems you accidentally sent it just to me.

On Sun, Jan 8, 2012 at 12:37 PM, Brian Granger <ellisonbg@gmail.com> wrote:
> Wonderful post, please do turn this into a blog post.

Thanks, will do then.

> On Sat, Jan 7, 2012 at 8:26 PM, Fernando Perez <fperez.net@gmail.com> wrote:
>> Hi,

> The importance of zeromq/pyzmq can't be overstated.  Twisted and other
> pure Python based networking libraries wouldn't cut it because of the
> GIL.  ZeroMQ/PyZMQ handle all networking calls and message queuing in
> a native thread that doesn't hold the GIL.  This means that are entire
> message/network infrastructure keeps on ticking even if users run
> GIL-holding extension code.  It has many other benefits as well, but
> this was one issue that we could never get around with Twisted.

Yes, I actually would like to write up a separate post about
zmq/pyzmq, as you guys have done a ridiculously good job with that
which opens an entirely new class of problems to Python that were not
really feasible before.

> The other secret sauce in the Notebook is the Tornado web server and
> WebSockets, which are other very recent creations.  Both are truly
> amazing for this type of thing.

Yes.  In many ways, for us the waiting/slow pace of development paid
off big time in two ways:

- we had multiple false starts that helped us much to better
understand the hard parts of the problem and where the dead ends would

- we were still thinking about this all the time: even when we
couldn't spare the time to *work* on it, we had no end of discussions
on these things over the years (esp. you, Min and I, but also with
others at meetings and conferences).

- the Sage notebook was a great trailblazer showing both what could be
done, and also how there were certain decisions that we wanted to make

- the technology of some critical third-party tools caught up big
time: zmq, tornado, websockets, mathjax, and modern, fast and capable
Javascript engines in browsers.  Without these tools we couldn't
possibly have implemented what we have now, where we really feel we
got the fundamental architectural design down solid (even if there's
still plenty of room for polish).

I'll try to at least paste all this into a blog post now, if nothing
else to have the space for a broader discussion outside the list.



More information about the IPython-User mailing list