Proyecto Jupyter

De Wikipedia, la enciclopedia libre
Proyecto Jupyter
Tipo organización sin ánimo de lucro
Objetivos Apoyar la ciencia de datos interactiva y la informática científica en todos los lenguajes de programación.[1]
Fundación 2014
Fundador Fernando Pérez
Productos Jupyter Notebook
JupyterLab
Miembro de Joint Roadmap for Open Science Tools
Sitio web jupyter.org

El Proyecto Jupyter es una organización sin ánimo de lucro creada para "desarrollar software de código abierto, estándares abiertos y servicios para computación interactiva en docenas de lenguajes de programación". Creado a partir de IPython en 2014 por Fernando Pérez, el proyecto Jupyter soporta entornos de ejecución en varias docenas de lenguajes de programación. El nombre del proyecto Jupyter es una referencia a los tres lenguajes de programación principales soportados por Jupyter, que son Julia, Python y R, y también un homenaje a los cuadernos de Galileo que registran el descubrimiento de los satélites de Júpiter. El proyecto Jupyter ha desarrollado y respaldado los productos de computación interactiva Jupyter Notebook, JupyterHub y JupyterLab, la versión de próxima generación de Jupyter Notebook.

Historia[editar]

En 2014, Fernando Pérez anunció un proyecto derivado de IPython llamado Proyecto Jupyter.[2]​ IPython continuó existiendo como un shell de Python y un kernel para Jupyter, mientras que Notebook y otros lenguajes agnósticos de IPython se movieron bajo el nombre de Jupyter.[3][4]​ Jupyter es un lenguaje agnóstico y soporta entornos de ejecución (también conocidos como núcleos) 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).[5]

En 2015, GitHub y el proyecto Jupyter anunciaron el formato de los notebooks de Jupyter (archivos .ipynb) en la plataforma GitHub.[6][7]

Filosofía[editar]

La filosofía operativa del Proyecto Jupyter es apoyar la ciencia de datos interactiva 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 lanzado bajo los términos liberales de la licencia BSD modificada".

Productos[editar]

Jupyter Notebook[editar]

Jupyter Notebook (anteriormente IPython Notebooks) es un entorno informático interactivo basado en la web para crear documentos de Jupyter notebook. El término "notebook" 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 y que contiene una lista ordenada de celdas de entrada/salida que pueden contener código, texto (usando Markdown), matemáticas, gráficos y texto enriquecidos, generalmente terminado con la extensión ".ipynb".

Un Jupyter Notebook se puede convertir a varios formatos de salida estándar abierto (HTML, diapositiva 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 o el comando "jupyter nbconvert" en un shell.

Para simplificar la visualización de los documentos Jupyter Notebook en la web se proporciona la biblioteca nbconvert como un servicio a través de NbViewer que puede llevar una URL a cualquier Notebook disponible al público, convertirlo a HTML sobre la marcha y mostrarlo al usuario.

Jupyter Notebook interface

Jupyter Notebook proporciona una navegador basado en REPL construido sobre una serie de bibliotecas de software de código abierto conocidas:

Jupyter Notebook puede conectarse a muchos núcleos para permitir la programación en muchos idiomas. Por defecto, Jupyter Notebook se conecta con el núcleo IPython. A partir de la versión 2.3.[8][9]​ (octubre del 2014), hay, actualmente, 49 núcleos compatibles con Jupyter para muchos lenguajes de programación, incluidos Python, R, Julia y Haskell.[10]

La interfaz de Notebook se añadió a IPython en la versión 0.12[11]​ (diciembre de 2011), renombrado 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.[12]​ Según The Atlantic, Jupyter superó la popularidad de la interfaz Notebook de Mathematica a principios de 2018.[12]

Jupyter kernels[editar]

Un kernel de Jupyter es un programa responsable de manejar varios tipos de solicitud (ejecución de código, finalización de código, inspección) y proporcionar una respuesta. Los kernel se comunican con los otros componentes de Jupyter usando ZeroMQ a través de la red y, por lo tanto, pueden estar en la misma máquina o en máquinas remotas. A diferencia de muchas otras interfaces tipo Notebook, en Jupyter, los kernel 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 kernel permiten la ejecución de un solo lenguaje de programación, pero hay un par de excepciones.

Por defecto, Jupyter viene con IPython como kernel predeterminado e implementación de referencia a través del contenedor ipykernel. Se encuentran disponibles kernel para muchos lenguajes de programación que tienen diferentes características y calidad.

JupyterHub[editar]

JupyterHub[13]​ es un servidor multiusuario para Jupyter Notebooks. Está diseñado para admitir a muchos usuarios generando, administrando y representando muchos servidores Jupyter Notebook singulares. usuario de portátiles Jupyter en la nube. Es un servidor multiusuario para Jupyter Notebooks. Ha sido diseñado para atender a muchos usuarios generando, administrando y representando muchos servidores Jupyter Notebook singulares.. Si bien JupyterHub requiere la administración de servidores, los servicios de terceros como Jupyo[14]​ proporcionan una alternativa a JupyterHub al alojar y administrar Jupyter notebooks multiusuario en la nube.

JupyterLab[editar]

JupyterLab es la interfaz de usuario de próxima generación para Project Jupyter. Ofrece todos los componentes básicos del clásico Jupyter Notebook (notebook, terminal, editor de texto, explorador de archivos, texto enriquecido, etc.) en una interfaz de usuario flexible y potente. El primer lanzamiento estable se anunció el 20 de febrero de 2018.[15]

Entornos comerciales basados en Jupyter[editar]

A día de hoy existen diversos proyectos comerciales que han ido incrementando las capacidades de Jupyter para dotarla de mayores características. Algunos de las plataformas más populares son: Anaconda Enterprise, Google Colaboratory, DeepNote y Mineo.

Uso en la industria[editar]

El 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 el Jupyter Notebook o las herramientas derivadas como una interfaz front-end para los usuarios de la nube. Los ejemplos incluyen los SageMaker notebook de Amazon y Azure Notebook de Microsoft.[16]

Cobertura mediática[editar]

  • El 11 de febrero de 2016, la colaboración LIGO anunció la primera observación de ondas gravitacionales. La colaboración lanzó los datos científicos sin procesar junto con los Jupyter Notebook que contienen el código Python para procesar los datos y reproducir las figuras del documento del descubrimiento.[17]
  • El 5 de abril de 2018, The Atlantic publicó un artículo titulado The Scientific Paper Is Obsolete, que analizaba el papel del Jupyter Notebook y el de Mathematica en el futuro de la publicación científica.[12]​ Este artículo generó respuestas de destacados científicos y académicos, incluido el economista Paul Romer.[18]

Premios[editar]

Véase también[editar]

Referencias[editar]

  1. «Project Jupyter - About Us». 20 de abril de 2018. Consultado el 3 de mayo de 2018. 
  2. «Project Jupyter // Speaker Deck». 
  3. «The Notebook, Qt console and a number of other pieces are now parts of Jupyter». 
  4. «The Big Split™». 
  5. «Project Jupyter | Home». 
  6. sshirokov (7 de mayo de 2015). «GitHub + Jupyter Notebooks = <3». The GitHub Blog (en inglés estadounidense). Consultado el 10 de abril de 2018. 
  7. «Rendering Notebooks on GitHub – Jupyter Blog». Jupyter Blog. 7 de mayo de 2015. Consultado el 10 de abril de 2018. 
  8. «What's new in IPython > Issues closed in the 2.x development cycle». 
  9. «What's new in IPython > 2.0 Series». 
  10. «Jupyter kernels > List of (some) IPython compatible kernels». 
  11. «Notebook's announcement- 0.12 release note». 
  12. a b c Somers, James. «The Scientific Paper Is Obsolete». The Atlantic (en inglés estadounidense). Consultado el 10 de abril de 2018. 
  13. https://jupyter.org/hub
  14. «Jupyo | Jupyter notebooks for Python, R, Julia in the cloud». jupyo.com. Archivado desde el original el 3 de enero de 2019. Consultado el 3 de enero de 2020. 
  15. «JupyterLab is Ready for Users – Jupyter Blog». Jupyter Blog. 20 de febrero de 2018. Consultado el 4 de mayo de 2018. 
  16. «Microsoft Azure Notebooks - Online Jupyter Notebooks». notebooks.azure.com. Consultado el 9 de mayo de 2018. 
  17. «LIGO Open Science Center». losc.ligo.org (en inglés). Consultado el 4 de mayo de 2018. 
  18. «Jupyter, Mathematica, and the Future of the Research Paper – Paul Romer». paulromer.net (en inglés estadounidense). Consultado el 15 de abril de 2018. 
  19. «Sloan Foundation Grant — IPython». ipython.org. Consultado el 3 de mayo de 2018. 
  20. «An Open Source Framework for Interactive, Collaborative and Reproducible Scientific Computing and EducationOpen Source Tools for Interactive, Collaborative and Reproducible Computing». ipython.org. Consultado el 3 de mayo de 2018. 
  21. Perez, Fernando (28 de diciembre de 2015). «IPython 2015 Final Report - Sloan Foundation». ipython.org. Consultado el 3 de mayo de 2018. 
  22. «UC Berkeley and Cal Poly to Expand and Enhance Open-Source Software for Scientific Computing and Data Science | Helmsley Charitable Trust». helmsleytrust.org (en inglés). Archivado desde el original el 3 de enero de 2020. Consultado el 3 de mayo de 2018. 
  23. «Software System Award». ACM Awards. Association for Computing Machinery. Archivado desde el original el 5 de mayo de 2016. Consultado el 28 de abril de 2016.  }}

Enlaces externos[editar]