IPython, for "interactive Python," has been gathering steam as a mechanism for interactive computing and data analysis and visualization. It features the IPython Notebook, which provides a Web-based computational environment that combines code execution, text, mathematics, plots, and rich media.

The open source IPython project was invented by Fernando Perez while at the University of Colorado in 2001, and a formal version 1.0 was released last year. Perez, who is a now a research scientist in the Brain Imaging Center at the University of California, Berkeley, sat down with InfoWorld Editor at Large Paul Krill at the recent Strata conference in Silicon Valley to talk about IPython, including its genesis, applications, and a road.map for its future.

InfoWorld: What exactly is IPython and what's the main use of it?

Perez: IPython began its life when I was a grad student in physics and I wanted an improved interactive shell over the default interactive Python shell. The Python language provides a shell, but it's limited only to executing the language. I wanted an environment better suited for data analysis as a scientist -- something that would let me interact more easily with my files and with data visualization libraries.

I developed IPython as a superset of the default Python shell and over the years colleagues joined me. It became increasingly popular and widely used in the scientific Python community. And as the development team grew into a strong open source team, we were able to expand that idea of an interactive shell into a more complex system that allows us still to interact with code, execute code, and see the results, not only to do it in a terminal but also through a Web browser.

We've abstracted that idea of interacting in a terminal into a Web browser-based system, which is what we call the IPython Notebook that provides the same experience but allows you to combine not only code but also text, images, results, and effectively build computational documents. One way to think about it is like a word processor, where you're not only typing text, you can also type code, which is executed right inside of the document and whose results are kept right in there so you can build a combination of human language narrative with computation with results and with visualization. This is done through the Web browser.