IPython es un shell interactivo que añade funcionalidades extra al modo interactivo incluido con Python, como resaltado de líneas y errores mediante colores, una sintaxis adicional para el shell, autocompletado mediante tabulador de variables, módulos y atributos.
Creo que la definición deja bastante claro que es una mejora importante de la interfaz de Python shell, cuyo objetivo es facilitar la vida al analista de datos. Sí, digo analista en lugar de programador (que también) porque esta shell interactiva es una herramienta muy popular entre la comunidad científica para mantener, compartir y replicar trabajos. El autor de dicha herramienta es Fernando Pérez @fperez_org.
Cómo he expuesto con anterioridad, IPython está incluido en la distribución Anaconda, y también he escrito un post para su actualización mediante conda.
Pero, además de la consola, es posible acceder a IPython por dos vías más: web y desktop.
IPython notebook
Desde 2011, IPython ha sufrido una evolución muy importante con la aparición de IPython Notebook, que es un pequeño servidor web que permite programar en el navegador. Esta forma de programar con IPython es ideal para el análisis interactivo, fácilmente reproducidble, fácilmente publicitable tanto en entornos de investifación como formativos. Todo es basa en ficheros .ipynb, que no es sino una cadena en formato JSON.
La popularidad de los Notebooks de IPython no es exclusiva de Python, sino que además se han diseñado para permitir (e incluso mezclar) otros lenguajes Julia, Haskell, F#, Ruby, Go, and Scala. Toda una declaración de intenciones!
Si en lugar de tener acceso a la consola de IPython prefieres hacerlo vía navegador, solo tienes que poner en una consola de MS-DOS lo siguiente:
ipython notebook
El resultado es este:
Ahora, ponemos crear un notebook, y utilizar tanto las palabras mágicas (magic words) como programar con Python. Podemos navegar por nuestras carpetas o incluso correr algún notebook que tengamos en la nube.
NOTA: Parece ser que con algunos antivirus, IPython no muestra los resultados. Si ese es tu caso, deberías lanzar Ipython con la siguiente instrucción: ipython notebook –ip=localhost
IPython desktop
Si eres más de trabajar en software de escritorio, IPython también tiene un entorno basado en Qt que proporciona un entorno de programación donde puedes incluir imágenes, videos editar multilínea, síntaxis resaltada, gráficos de matplotlib, …. Básicamente tenemos que escribir
ipython qtconsole
Y obtenemos:
El entorno incluye menús con acceso a las funciones mágicas, kernel, … y más!
IPython, más que una shell
Como podeis comprobar, IPython no se limita sólo a la consola, y presenta varias formas de trabajar de la misma manera, para que tú elijas la que más te guste!
Ahora, es tu turno de sacarle rendimiento!