|IPython 3.0 Released|
|Written by Alex Armstrong|
|Thursday, 05 March 2015|
IPython 3.0 has been released with improved support for languages other than Python. Looking forward to the next release the project will be split with its language agnostic components moving to Project Jupyter.
IPython is an open source shell for interactive and parallel computing that are widely used in scientific computing. Its key tool is a browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media.
While its name suggests that it is for Python developers, this is misleading as it also has kernels for Julia and Haskell and its main IPython kernel kernel supports multi-language integration, letting you, for example, mix Python code with Cython, R, Octave. It also provides for scripting in Bash, Perl or Ruby.
In IPython 3 the notebook UI has been significantly redesigned. You can now choose a kernel for a notebook within the user interface, rather than starting up a separate notebook server for each kernel you want to use. The syntax highlighting adapts to match the language you’re working in.
There has been a lot of improvement to the experimental interactive widgets introduced in the previous version in April 2014, see IPython 2.0 Released, including a new widget persistence API.
The message protocol and document format have both been updated, the notebook webapp now enables editing of any text file, and there's now a web-based terminal (on Unix platforms).
The announcement of the release on the IPython site points out:
This is a really big release. Over 150 contributors, and almost 6000 commits in a bit under a year.
so there are lots more enhancements listed in the "What's New" post. One improvement not noted there is that IPython 3.0 adds official PyQt5 support for IPython event loop integration (that is, time slicing so the text console with local kernel remains responsive) and PyQt5 support for Qt console.
The announcement also reports a major change for the future:
3.x will be the last monolithic release of IPython, as the next release cycle will see the growing project split into its Python-specific and language-agnostic components. Language-agnostic projects (notebook, qtconsole, etc.) will move under the umbrella of the new Project Jupyter name, while Python-specific projects (interactive Python shell, Python kernel, IPython.parallel) will remain under IPython, and be split into a few smaller packages.
Big changes are ahead.
Users will soon become aware of the Jupyter logo which is already on the Notebook.
If you want to know where the name Jupyter comes from, here's an explanation from Fernando Perez, creator of IPython, presented as a Lightning Talk at SciPy 2014. His presentation runs from 4:15 to around 8:30.
Jupyter is not an acronym of Julia, Python and R - but is inspired by these three open languages. It has also been chosen to reflect the long history that astronomy has had in the IPython community and to pay homage to Galileo whose notebooks were the first open science papers - a tradition that Jupyter Project intends to follow.
Perez also explains that the Jupyter team is composed of people from the existing IPython developer team and the IPython community, with contributions from the Julia team, from teams at Google and others in the computational science community. The work ahead includes splitting up the IPython repo into independent component parts, something he says will not happen overnight. One main aim is to build a community across languages of protocols for computation with an architecture that supports them, together with open formats for communication and publication and tools for collaboration and education.
All aspects that seem to signify a true open source initiative. To join in you can go to github.com/jupyter.
To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin, or sign up for our weekly newsletter.
or email your comment to: email@example.com
|Last Updated ( Thursday, 05 March 2015 )|