Proyecto Jupyter ( / ˈ dʒ uː p ɪ t ər / ) es un proyecto para desarrollarsoftware de código abierto,estándares abiertosy servicios parala computación interactivaen múltipleslenguajes de programación.
Fue creado a partir de IPython en 2014 por Fernando Pérez y Brian Granger. El nombre del proyecto Jupyter es una referencia a los tres lenguajes de programación principales que soporta Jupyter, que son Julia , Python y R. Su nombre y logotipo son un homenaje al descubrimiento de las lunas de Júpiter por parte de Galileo , como se documenta en los cuadernos atribuidos a Galileo.
Jupyter está patrocinado financieramente por NumFOCUS. [1]
La primera versión de Notebooks para IPython fue lanzada en 2011 por un equipo que incluía a Fernando Pérez, Brian Granger y Min Ragan-Kelley. [2] En 2014, Pérez anunció un proyecto derivado de IPython llamado Proyecto Jupyter. [3] IPython continúa existiendo como un shell de Python y un núcleo para Jupyter, mientras que el notebook y otras partes independientes del lenguaje de IPython se movieron bajo el nombre de Jupyter. [4] [5] Jupyter admite entornos de ejecución (llamados "kernels") en varias docenas de lenguajes, incluidos Julia, R, Haskell , Ruby y Python (a través del núcleo de IPython).
En 2015, había disponibles en GitHub unos 200.000 cuadernos de Jupyter . En 2018, había disponibles unos 2,5 millones. [6] En enero de 2021, había disponibles casi 10 millones, incluidos cuadernos sobre la primera observación de ondas gravitacionales [7] y sobre el descubrimiento en 2019 de un agujero negro supermasivo . [8]
Los principales proveedores de computación en la nube han adoptado Jupyter Notebook o herramientas derivadas como interfaz de usuario para los usuarios de la nube. Algunos ejemplos son Amazon SageMaker Notebooks, [9] Google Colab, [10] [11] y Microsoft Azure Notebook. [12]
Visual Studio Code admite el desarrollo local de cuadernos Jupyter. A julio de 2022, la extensión Jupyter para VS Code se ha descargado más de 40 millones de veces, lo que la convierte en la segunda extensión más popular en el Marketplace de VS Code. [13]
El comité directivo del Proyecto Jupyter recibió el Premio ACM Software System Award 2017 , un premio anual que honra a personas u organizaciones "por desarrollar un sistema de software que ha tenido una influencia duradera, reflejada en contribuciones a conceptos, en aceptación comercial o en ambos". [14]
En 2018, The Atlantic publicó un artículo titulado "El artículo científico está obsoleto", en el que se analiza el papel de Jupyter Notebook y el cuaderno de Mathematica en el futuro de las publicaciones científicas. [15] El economista Paul Romer , en respuesta, publicó una entrada de blog en la que reflexionó sobre sus experiencias con el uso de Mathematica y Jupyter para la investigación, y concluyó en parte que Jupyter "hace un mejor trabajo al ofrecer lo que Theodore Gray tenía en mente cuando diseñó el cuaderno de Mathematica". [16]
En 2021, Nature nombró a Jupyter como uno de los diez proyectos informáticos que transformaron la ciencia. [8]
Jupyter Notebook puede referirse coloquialmente a dos conceptos diferentes: la aplicación orientada al usuario para editar código y texto, o el formato de archivo subyacente que es interoperable en muchas implementaciones.
Jupyter Notebook (anteriormente IPython Notebook) es un entorno computacional interactivo basado en la web para crear documentos de cuaderno . Jupyter Notebook se crea utilizando varias bibliotecas de código abierto , incluidas IPython , ZeroMQ , Tornado , jQuery , Bootstrap y MathJax . Una aplicación Jupyter Notebook es un REPL basado en navegador que contiene una lista ordenada de celdas de entrada/salida que pueden contener código, texto (usando Github Flavored Markdown ), matemáticas, gráficos y multimedia .
Jupyter Notebook es similar a la interfaz de cuaderno de otros programas como Maple , Mathematica y SageMath , un estilo de interfaz computacional que se originó con Mathematica en la década de 1980. El interés por Jupyter superó la popularidad de la interfaz de cuaderno de Mathematica a principios de 2018. [15]
JupyterLab es una nueva interfaz de usuario para el Proyecto Jupyter, que ofrece una interfaz de usuario flexible y más funciones que la interfaz de usuario clásica de la notebook. La primera versión estable se anunció el 20 de febrero de 2018. [17] [18] En 2015, una subvención conjunta de 6 millones de dólares de The Leona M. and Harry B. Helmsley Charitable Trust , The Gordon and Betty Moore Foundation y The Alfred P. Sloan Foundation financió el trabajo que condujo a la ampliación de las capacidades de las herramientas centrales de Jupyter, así como a la creación de JupyterLab. [19]
GitHub anunció en noviembre de 2022 que JupyterLab estaría disponible en su plataforma de codificación en línea llamada Codespace. [20]
En agosto de 2023 se lanzó Jupyter AI, una extensión de Jupyter. Esta extensión incorpora inteligencia artificial generativa en los cuadernos de Jupyter, lo que permite a los usuarios explicar y generar código, corregir errores, resumir contenido, consultar sus archivos locales y generar cuadernos completos basados en indicaciones de lenguaje natural. [21]
JupyterHub es un servidor multiusuario para Jupyter Notebooks. Está diseñado para admitir a muchos usuarios mediante la generación, la gestión y el proxy de varios servidores Jupyter Notebook singulares. [22]
Un documento de Jupyter Notebook es un archivo JSON , que sigue un esquema versionado y que normalmente termina con la extensión ".ipynb". Las partes principales de los Jupyter Notebooks son: Metadatos, formato del Notebook y lista de celdas. Los metadatos son un diccionario de datos de definiciones para configurar y mostrar el notebook. El formato del Notebook es un número de versión del software. La lista de celdas son diferentes tipos de celdas para Markdown (visualización), código (para ejecutar) y salida de las celdas de tipo código. [23]
Si bien JSON es el formato más común, es posible prescindir de algunas funciones (como almacenar imágenes y metadatos) y guardar cuadernos como documentos de rebajas utilizando extensiones como Jupytext. [24] Jupytext se utiliza a menudo junto con el control de versiones para simplificar la comparación y la fusión de cuadernos.