A key idea behind IPython is decoupling code execution from user interfaces. IPython relies on a documented protocol, which can be implemented by different frontends and different kernels. By implementing it, frontends and kernels gain the ability to communicate regardless of which language they're written in. The IPython project maintains three different frontends, while there are multiple third party frontends and kernels already in use.
We will show some important features that such a protocol permits, by demonstrating some of our alternative frontends, as well as kernels that people have written in languages such as Julia and R. Our presentation will also feature interactive widgets, a new feature in IPython 2.0, and preview the upcoming features that will allow a single notebook server to start different types of kernel.
This will demonstrate that the IPython Notebook is the perfect polyglot tool for scientific computation workflows.