From 9c9a4ffba60df31a761f1465d2ea590fd8d70d50 2014-10-16 23:57:11 From: Thomas Kluyver Date: 2014-10-16 23:57:11 Subject: [PATCH] Implement a couple of suggestions from @jhamrick --- diff --git a/docs/source/development/how_ipython_works.rst b/docs/source/development/how_ipython_works.rst index c2856f3..8617891 100644 --- a/docs/source/development/how_ipython_works.rst +++ b/docs/source/development/how_ipython_works.rst @@ -1,4 +1,4 @@ -How IPython Works +How IPython works ================= Terminal IPython @@ -23,7 +23,7 @@ All the other interfaces—the Notebook, the Qt console, ``ipython console`` in the terminal, and third party interfaces—use the IPython Kernel. This is a separate process which is responsible for running user code, and things like computing possible completions. Frontends communicate with it using JSON -messages sent over ZeroMQ sockets; the protocol they use is described in +messages sent over `ZeroMQ `_ sockets; the protocol they use is described in :doc:`messaging`. The core execution machinery for the kernel is shared with terminal IPython: @@ -47,6 +47,13 @@ the target language: .. image:: figs/other_kernels.png +Wrapper kernels are easier to write quickly for languages that have good Python +wrappers, like `Oct2Py `_ for Octave, or +languages where it's impractical to implement the communications machinery, like +`bash_kernel `_. Native kernels are +likely to be better maintained by the community using them, like +`IJulia `_ or `IHaskell `_. + .. seealso:: :doc:`kernels`