Accueil🇫🇷Chercher

Notebook (programmation)

En programmation informatique, un notebook, aussi fréquemment appelé calepin électronique, voire simplement calepin[note 1] - [note 2] - [note 3] est une interface de programmation interactive (en) permettant de combiner des sections en langage naturel et des sections en langage informatique. Les notebooks sont notamment utilisés en science des données pour explorer et analyser des données. Les notebooks peuvent ensuite être enregistrés sous forme de document. C'est un exemple de programmation lettrée.

Notebook du logiciel informatique IPython.

L'usage des notebooks en science permet de faciliter le partage et la reproductibilité des résultats[1].

Histoire

Historiquement, une des premières mises en œuvre d'un livre électronique dont les exemples de calculs et les graphiques sont recalculables à la volée, interactivement dit-on désormais, via les sources des programmes présents de façon sous-jacente, accessibles et modifiables, remonte à quand le sismologue Jon Claerbout (en), conscient de cet enjeu de reproductibilité des calculs numériques complexes[2], écrit et sort la première version de son ouvrage Fundamentals of Geophysical Data Processing[3], livre devenu un grand classique en géophysique et en traitement du signal.

Début des années 1990, le développement d'une architecture de type client-serveur, aussi inspirée du système de fenêtrage X-window apparue entre-temps sous Unix, pour organiser le logiciel Mathematica en un frontal de présentation des résultats et un noyau qui réalise les calculs, permet à la société Wolfram Research de proposer une approche du travail en calcul scientifique intégrée, du développement même de la formulation mathématique à la rédaction finale et présentation des résultats notamment sous forme graphique : la concrétisation sous forme de document à l'écran et de fichier de sauvegarde est les notebooks Mathematica. Ces fichiers sont ensuite consultables via une version du seul frontal comme lecteur, mis à disposition par « Wolfram Research ». L'idée et la concrétisation de ce développement, furent de Theodore Gray (en)[4].

En 2001, Fernando PĂ©rez a repris le concept de notebook pour dĂ©velopper IPython. Ă€ la diffĂ©rence de Mathematica, qui est un logiciel propriĂ©taire, IPython permet de programmer de manière interactive en Python, un langage de programmation libre[4].

En 2014, le projet IPython notebook est devenu Jupyter et permet de programmer dans pratiquement n'importe quel langage de programmation[4].

Implémentations

Quelques implémentations connues, outre celle de Mathematica, sont :

  • Le logiciel iPython permet de dĂ©velopper des notebooks. Ce logiciel, initialement uniquement destinĂ© au langage Python, a Ă©tĂ© Ă©tendu aux langages Julia et R avec le dĂ©veloppement du logiciel Jupyter (nom issu de la contraction de "Julia", "Python" et "R"). Très rapidement, la frontalisation par Jupyter a intĂ©grĂ© d'autres langages de programmation, et de fait potentiellement tout langage gĂ©rant une boucle "REPL" (en).
    Un notebook Jupyter combine des sections en langage naturel mises en forme avec la syntaxe "Markdown" et des sections en code Python, Julia, R ou autres langages. Ces documents peuvent être sauvegardés au format JSON avec l'extension ".ipynb". Ils peuvent être convertis en page web ou en "présentation HTML5" grâce à des utilitaires comme "nbconvert" ;
  • L'environnement de dĂ©veloppement intĂ©grĂ© RStudio permet aussi d'utiliser des notebooks. Les notebooks RStudio sont enregistrĂ©s au format "Rmarkdown"[5] ;
  • Apache Zeppelin propose Ă©galement une interface de type notebook afin d'analyser et mettre en forme simplement, de manière visuelle et interactive, de gros volumes de donnĂ©es avant de les traiter par d'autres logiciels ;
  • Mathcad, logiciel propriĂ©taire, est essentiellement un système de calcul formel dotĂ© d'une interface de type "calepin Ă©lectronique".

Notes et références

Notes

  1. Par exemple dans ce PDF de cours : Philippe Besse, « Python pour Calcul Scientifique », sur WikiStat, par Philippe Besse, INRA Toulouse (consulté le ).
  2. Ou bien sur ce site institutionnel :« Jupyter: une plate-forme interactive pour le datascience », sur FRISAM, (consulté le ).
  3. Il a aussi été proposé de traduire ce terme par « carnet de programmation ».

Références

  1. (en) Helen Shen, « Interactive notebooks: Sharing the code », Nature, no 515,‎ (DOI 10.1038/515151a)
  2. Jon F.Claerbout et Martin Karrenbach, « Electronic documents give reproducible research a new meaning », SEG Technical Program Expanded Abstracts,‎ , p. 601–604 (DOI 10.1190/1.1822162)
  3. (en) Jon Claerbout, Fundamentals of Geophysical Data Processing : with applications to petroleum prospecting, Blackwell Scientific Publications, , 266 p. (ISBN 0-86542-305-9, lire en ligne)
  4. James Somers, « The Scientific Paper Is Obsolete : Here’s what’s next », The Atlantic,‎ (lire en ligne)
  5. « 3.2 Notebook / R Markdown : The Definitive Guide » [livre], sur rstudio.com (consulté le ).

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.