Proyecto Jupyter ( / ˈ dʒ uː p ɪ t ər / ) es un proyecto para desarrollarsoftware de código abierto,estándares abiertosy servicios parainformática interactivaen múltipleslenguajes de programación.
Fue escindido 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 admitidos por 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 , tal como está documentado en los cuadernos atribuidos a Galileo.
Jupyter cuenta con el patrocinio financiero de 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 kernel para Jupyter, mientras que el cuaderno y otras partes de IPython independientes del lenguaje 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 kernel IPython).
En 2015, alrededor de 200.000 portátiles Jupyter estaban disponibles en GitHub . En 2018, había alrededor de 2,5 millones disponibles. [6] En enero de 2021, estaban 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 frontal para los usuarios de la nube. Los ejemplos incluyen Amazon SageMaker Notebooks, [9] Colab de Google , [10] [11] y Azure Notebook de Microsoft . [12]
Visual Studio Code admite el desarrollo local de cuadernos Jupyter. En 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 VS Code Marketplace. [13]
El comité directivo del Proyecto Jupyter recibió el premio ACM Software System Award 2017 , un premio anual que honra a personas o una organización "por desarrollar un sistema de software que ha tenido una influencia duradera, reflejada en contribuciones a conceptos, en aceptación comercial, o ambas". [14]
The Atlantic publicó un artículo titulado "El artículo científico es obsoleto" en 2018, en el que se analiza el papel de Jupyter Notebook y Mathematica en el futuro de las publicaciones científicas. [15] El economista Paul Romer , en respuesta, publicó una entrada de blog en la que reflexionaba sobre sus experiencias utilizando Mathematica y Jupyter para la investigación, concluyendo en parte que Jupyter "hace un mejor trabajo al ofrecer lo que Theodore Gray tenía en mente cuando diseñó el Cuaderno de matemáticas." [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, ya sea 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 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 medios enriquecidos .
Jupyter Notebook es similar a la interfaz de notebook 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 de Jupyter superó la popularidad de la interfaz del portátil Mathematica a principios de 2018. [15]
JupyterLab es una interfaz de usuario más nueva para Project Jupyter, que ofrece una interfaz de usuario flexible y más funciones que la interfaz de usuario clásica de notebook. El primer lanzamiento 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. La Fundación Sloan financió un trabajo que condujo a la ampliación de las capacidades de las herramientas principales 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, rectificar errores, resumir contenido, consultar sobre 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 generando, administrando y representando muchos 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 Jupyter Notebooks son: Metadatos, formato de Notebook y lista de celdas. Metadatos es un diccionario de datos de definiciones para configurar y mostrar el cuaderno. Notebook Format es un número de versión del software. La lista de celdas son diferentes tipos de celdas para Markdown (mostrar), código (para ejecutar) y salida del tipo de celdas de 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 diferenciación y combinación de cuadernos.