Proyecto Jupyter ( / dʒ ü p ɪ t ər / ( escuchar ) ) es un proyecto y la comunidad cuyo objetivo es "desarrollar software de código abierto , estándares abiertos , y servicios para la computación interactiva a través de los lenguajes de programación docenas". [2] Fue escindido de IPython en 2014 por Fernando Pérez . El nombre del proyecto Jupyter es una referencia a los tres lenguajes de programación principales compatibles con Jupyter, que son Ju lia , Pyt hon y Ry también un homenaje a los cuadernos de notas de Galileo que registran el descubrimiento de las lunas de Júpiter . Project Jupyter ha desarrollado y respaldado los productos informáticos interactivos Jupyter Notebook , JupyterHub y JupyterLab .
Abreviatura | Jupyter |
---|---|
Formación | Febrero de 2015 |
Tipo | organización sin ánimo de lucro |
Propósito | Apoyar la ciencia de datos interactiva y la informática científica en todos los lenguajes de programación. [1] |
Región atendida | Mundial |
Idioma oficial | inglés |
Sitio web | jupyter |
Historia
En 2014, Fernando Pérez anunció un proyecto derivado de IPython llamado Project Jupyter. [3] IPython sigue existiendo como un shell de Python y un kernel para Jupyter, mientras que el cuaderno y otras partes independientes del lenguaje de IPython se movieron bajo el nombre de Jupyter. [4] [5] Jupyter es independiente del lenguaje y admite entornos de ejecución (también conocidos como kernels) en varias docenas de lenguajes, entre los que se encuentran Julia, R, Haskell , Ruby y, por supuesto, Python (a través del kernel de IPython). [6]
En 2015, GitHub y Jupyter Project anunciaron la representación nativa del formato de archivo de los cuadernos de Jupyter (archivos .ipynb) en la plataforma GitHub. [7] [8]
Filosofía
La filosofía operativa de Project Jupyter es respaldar la ciencia de datos interactivos y la computación científica en todos los lenguajes de programación mediante el desarrollo de software de código abierto . Según el sitio web del Proyecto Jupyter, "Jupyter siempre será un software 100% de código abierto, de uso gratuito para todos y publicado bajo los términos liberales de la licencia BSD modificada". [1]
Productos
Cuaderno Jupyter
Jupyter Notebook (anteriormente IPython Notebooks) es un entorno computacional interactivo basado en web para crear documentos de cuaderno Jupyter. El término "cuaderno" puede hacer referencia coloquialmente a muchas entidades diferentes, principalmente la aplicación web Jupyter, el servidor web Jupyter Python o el formato de documento Jupyter , según el contexto. Un documento de Jupyter Notebook es un documento JSON , que sigue un esquema versionado, que contiene una lista ordenada de celdas de entrada / salida que pueden contener código, texto (usando Markdown ), matemáticas, gráficos y medios enriquecidos , que generalmente terminan con la extensión ".ipynb". .
Un Jupyter Notebook se puede convertir a varios formatos de salida estándar abiertos ( HTML , diapositivas de presentación , LaTeX , PDF , ReStructuredText , Markdown , Python) a través de "Descargar como" en la interfaz web, a través de la biblioteca nbconvert [9] o "jupyter nbconvert "interfaz de línea de comandos en un shell. Para simplificar la visualización de documentos de cuaderno de Jupyter en la web, la biblioteca nbconvert [10] se proporciona como un servicio a través de NbViewer [11] que puede llevar una URL a cualquier documento de cuaderno disponible públicamente, convertirlo a HTML sobre la marcha y mostrarlo en el usuario.
Jupyter Notebook proporciona un REPL basado en navegador construido sobre una serie de bibliotecas populares de código abierto :
- IPython
- ØMQ (ZeroMQ)
- Tornado (servidor web)
- jQuery
- Bootstrap (marco de interfaz de usuario)
- MathJax
Jupyter Notebook puede conectarse a muchos núcleos para permitir la programación en diferentes lenguajes. De forma predeterminada, Jupyter Notebook se envía con el kernel de IPython. En la versión 2.3 [12] [13] (octubre de 2014), había 49 núcleos compatibles con Jupyter para muchos lenguajes de programación, incluidos Python, R, Julia y Haskell. [14]
La interfaz del portátil se agregó a IPython en la versión 0.12 [15] (diciembre de 2011), renombrada a Jupyter notebook en 2015 (IPython 4.0 - Jupyter 1.0). 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. [16] Según The Atlantic , el interés de Jupyter superó la popularidad de la interfaz de portátil de Mathematica a principios de 2018. [16]
Núcleos de Jupyter
Un Jupyter núcleo es un programa responsable de manejar diversos tipos de solicitudes ( de ejecución de código , las terminaciones de código , inspección), y proporcionar una respuesta. Los núcleos se comunican con los demás componentes de Jupyter utilizando ZeroMQ y, por lo tanto, pueden estar en la misma máquina o en máquinas remotas . A diferencia de muchas otras interfaces similares a Notebook, en Jupyter, los núcleos no son conscientes de que están adjuntos a un documento específico y pueden conectarse a muchos clientes a la vez. Por lo general, los núcleos permiten la ejecución de un solo idioma, pero hay un par de excepciones. [ cita requerida ]
JupyterHub
JupyterHub [17] es un servidor multiusuario para Jupyter Notebooks. Está diseñado para admitir a muchos usuarios mediante la generación, la administración y el proxy de muchos servidores Jupyter Notebook singulares. [ cita requerida ] Si bien JupyterHub requiere la administración de servidores, los servicios de terceros como Jupyo [18] brindan una alternativa a JupyterHub al hospedar y administrar cuadernos Jupyter multiusuario en la nube.
JupyterLab
JupyterLab es una interfaz de usuario más nueva para Project Jupyter. Ofrece los componentes básicos del clásico Jupyter Notebook (portátil, terminal, editor de texto, explorador de archivos, salidas enriquecidas, etc.) en una interfaz de usuario flexible. La primera versión estable se anunció el 20 de febrero de 2018. [19]
Jupyter {Libro}
Jupyter Book es un proyecto de código abierto para crear libros y documentos a partir de material computacional. [20] Permite al usuario construir el contenido en una mezcla de Markdown , una versión extendida de Markdown llamada MyST, [21] Maths & Equations usando MathJax , Jupyter Notebooks, reStructuredText , el resultado de ejecutar Jupyter Notebooks en tiempo de compilación. Se pueden producir varios formatos de salida (actualmente archivos únicos, páginas web HTML de varias páginas y archivos PDF ).
nbgrader
nbgrader es una herramienta para crear y calificar (marcar) tareas en los cuadernos de Jupyter. [22] Permite al instructor crear asignaciones que incluyen ejercicios de codificación en Python o cualquier otro kernel compatible y respuestas de texto. Las tareas enviadas se pueden marcar automáticamente, puntuar manualmente o una combinación de ambos.
Adopción de la industria
Jupyter Notebook se ha convertido en una interfaz de usuario popular para la computación en la nube , y los principales proveedores de la nube han adoptado Jupyter Notebook o herramientas derivadas como interfaz de interfaz para los usuarios de la nube. Los ejemplos incluyen SageMaker Notebooks de Amazon , [23] Colaboratory de Google [24] y Azure Notebook de Microsoft . [25]
Colaboratorio de Google
Google Colaboratory (también conocido como Colab ) es un entorno de cuaderno Jupyter gratuito que se ejecuta en la nube y almacena sus cuadernos en Google Drive . Colab fue originalmente un proyecto interno de Google; Se hizo un intento [26] de abrir todo el código como fuente abierta y trabajar más directamente en sentido ascendente, lo que llevó al desarrollo de la extensión de Google Chrome "Open in Colab" , [27] pero esto finalmente terminó, y el desarrollo de Colab continuó internamente. A octubre de 2019,[actualizar]la interfaz de usuario de Colaboratory solo permite la creación de cuadernos con kernels de Python 2 y Python 3; sin embargo, también funcionará un portátil existente cuya especificación de kernel sea IR o Swift, ya que tanto R como Swift están instalados en el contenedor. El lenguaje Julia también puede funcionar en Colab (por ejemplo, con Python y GPU; las unidades de procesamiento de tensor de Google también funcionan con Julia en Colab [28] ). [29] [30]
Cobertura mediática
- El 11 de febrero de 2016, la colaboración LIGO anunció la primera observación de ondas gravitacionales . La colaboración publicó los datos científicos en bruto junto con Jupyter Notebooks que contienen código Python para procesar los datos y reproducir las cifras del documento de descubrimiento. [31]
- El 5 de abril de 2018, The Atlantic publicó un artículo titulado The Scientific Paper Is Obsolete , que discutía el papel del Jupyter Notebook y el cuaderno de Mathematica en el futuro de la publicación científica. [16] Este artículo generó respuestas de destacados científicos y académicos, incluido el economista Paul Romer . [32]
Becas y premios
- En 2012, Fernando Pérez recibió el Premio de la Fundación de Software Libre para el Avance del Software Libre por su trabajo en IPython , el precursor del Proyecto Jupyter.
- En 2013, el equipo de IPython recibió una subvención de 1,15 millones de dólares de la Fundación Alfred P. Sloan [33] [34] que financió los primeros trabajos que llevaron a la creación del Proyecto Jupyter. [35]
- En 2015, el Proyecto Jupyter recibió una subvención conjunta de $ 6 millones de The Leona M. and Harry B. Helmsley Charitable Trust , The Gordon and Betty Moore Foundation y The Alfred P. Sloan Foundation , que financió el trabajo que llevó a ampliar las capacidades de la herramientas básicas de Jupyter, así como la creación de JupyterLab. [36]
- El 2 de mayo de 2018, 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 ambas ". [37]
Ver también
- Octava GNU
- IPython
- RStudio
- SageMath
- Scilab
- Spyder
- Wolfram Mathematica
- Binder Project y BinderHub
- Lista de paquetes de software gratuitos y de código abierto
- Interfaz de portátil
Referencias
- ^ a b "Proyecto Jupyter - Acerca de nosotros" . 2018-04-20 . Consultado el 3 de mayo de 2018 .
- ^ "Proyecto Jupyter" . www.jupyter.org . Consultado el 13 de noviembre de 2020 .
- ^ "Proyecto Jupyter // Speaker Deck" .
- ^ "El portátil, la consola Qt y otras piezas son ahora parte de Jupyter" . 29 de mayo de 2021.
- ^ "The Big Split ™" . 28 de agosto de 2017.
- ^ "Proyecto Jupyter | Inicio" .
- ^ sshirokov (7 de mayo de 2015). "GitHub + Jupyter Notebooks = <3" . El blog de GitHub . Consultado el 10 de abril de 2018 .
- ^ "Renderizado de cuadernos en GitHub - Blog de Jupyter" . Blog de Jupyter . 2015-05-07 . Consultado el 10 de abril de 2018 .
- ^ "nbconvert: Convertir portátiles a otros formatos - documentación de nbconvert 6.0.8.dev0" . nbconvert.readthedocs.io . Consultado el 13 de noviembre de 2020 .
- ^ jupyter / nbconvert , Project Jupyter, 2021-04-12 , consultado el 2021-04-13
- ^ "nbviewer" . nbviewer.jupyter.org . Consultado el 13 de noviembre de 2020 .
- ^ "Novedades de IPython> Problemas cerrados en el ciclo de desarrollo 2.x" .
- ^ "Novedades de IPython> Serie 2.0" .
- ^ "Núcleos de Jupyter> Lista de (algunos) núcleos compatibles con IPython" .
- ^ "Nota de lanzamiento del anuncio del cuaderno - 0.12" .
- ^ a b c Somers, James. "El artículo científico es obsoleto" . El Atlántico . Consultado el 10 de abril de 2018 .
- ^ "Proyecto Jupyter" .
- ^ "Jupyo | Cuadernos Jupyter para Python, R, Julia en la nube" . jupyo.com . Archivado desde el original el 3 de enero de 2019 . Consultado el 2 de enero de 2019 .
- ^ "JupyterLab está listo para los usuarios - Blog de Jupyter" . Blog de Jupyter . 2018-02-20 . Consultado el 4 de mayo de 2018 .
- ^ "Libros con Jupyter" . jupyterbook.org . Consultado el 13 de noviembre de 2020 .
- ^ "La guía de sintaxis de MyST" . myst-parser.readthedocs.io . Consultado el 13 de noviembre de 2020 .
- ^ "nbgrader - documentación de nbgrader 0.6.1" . nbgrader.readthedocs.io . Consultado el 13 de noviembre de 2020 .
- ^ "Amazon SageMaker en AWS" . Amazon Web Services, Inc . Consultado el 9 de mayo de 2018 .
- ^ "Bienvenidos a Colaboratory" . research.google.com . Consultado el 9 de mayo de 2018 .
- ^ "Microsoft Azure Notebooks - Jupyter Notebooks en línea" . notebooks.azure.com . Consultado el 9 de mayo de 2018 .
- ^ "Los nerds se regocijan: Google acaba de lanzar su herramienta interna para colaborar en IA" . Cuarzo . Consultado el 6 de septiembre de 2018 .
- ^ "Abrir en el repositorio de Colab GitHub" . GitHub . Consultado el 6 de septiembre de 2018 .
- ^ Julia en TPU , JuliaTPU, 2019-12-03 , consultado 2019-12-03
- ^ "Google Colaboratory" . colab.research.google.com . Consultado el 6 de diciembre de 2019 .
- ^ "gpu - Julia en Google Colab" . Desbordamiento de pila . Consultado el 6 de diciembre de 2019 .
- ^ "LIGO Open Science Center" . losc.ligo.org . Consultado el 4 de mayo de 2018 .
- ^ "Jupyter, Mathematica y el futuro del trabajo de investigación - Paul Romer" . paulromer.net . Consultado el 15 de abril de 2018 .
- ^ "Beca de la Fundación Sloan - IPython" . ipython.org . Consultado el 3 de mayo de 2018 .
- ^ "Un marco de código abierto para la informática científica interactiva, colaborativa y reproducible y herramientas de educación de código abierto para la informática interactiva, colaborativa y reproducible" . ipython.org . Consultado el 3 de mayo de 2018 .
- ^ Pérez, Fernando (28 de diciembre de 2015). "Informe final de IPython 2015 - Fundación Sloan" (PDF) . ipython.org . Consultado el 3 de mayo de 2018 .
- ^ "UC Berkeley y Cal Poly para expandir y mejorar el software de código abierto para la informática científica y la ciencia de datos | Helmsley Charitable Trust" . helmsleytrust.org . Consultado el 3 de mayo de 2018 .
- ^ "Premio al sistema de software" . Premios ACM . Asociación de Maquinaria Informática . Consultado el 28 de abril de 2016 .
enlaces externos
- Página web oficial
- Núcleos de Jupyter