IPython provides a rich architecture for interactive computing with:
A powerful interactive shell.
A kernel for Jupyter.
Support for interactive data visualization and use of GUI toolkits.
Flexible, embeddable interpreters to load into your own projects.
Easy to use, high performance tools for parallel computing.
IPython is a growing project, with increasingly language-agnostic components.
IPython 3.x was the last monolithic release of IPython, containing the
notebook server, qtconsole, etc. As of IPython 4.0, the language-agnostic
parts of the project: the notebook format, message protocol, qtconsole,
notebook web application, etc. have moved to new projects under the name
Jupyter. IPython itself is focused on interactive Python, part of which is
providing a Python kernel for Jupyter.