IPython est mort, vive IPython 4.0

Posté par . Édité par palm123, emilien.schultz, Benoît Sibaud, Nÿco, ZeroHeure, zurvan, Snark et jcr83. Modéré par Yvan Munoz. Licence CC by-sa
45
19
août
2015
Python

Pour ceux qui ne connaissent pas IPython et son historique, je vous propose de consulter les dépêches précédentes, car si à l'origine il s'agissait uniquement d'une console évoluée pour Python, l'envergure des possibilités a bien changé entre-temps. Cette nouvelle version revient doucement aux sources en diminuant considérablement les fonctionnalités présentes.

Il y a quelques mois, une description de ce que pouvait faire IPython aurait pris plusieurs heures d'explication sur le notebook, protocole de communication, qtconsole, etc. depuis cette nouvelle version IPython n'est plus qu'une console évoluée pour Python. On remarquera que c'est plus proche de la philosophie Unix : "Ne faire qu'une seule chose, et la faire bien".

Vu qu'il y a peu de nouvelles fonctionnalités dans cette nouvelle version, je ne vais pas m'attarder trop dessus. Et plutôt décrire les changements opérés.

Merci a emilien.schultz, Nÿco, palm123, zurvan, jcr83 et Snark pour avoir participé à la rédaction.

Sommaire

Il est 19h00 sous le soleil de Californie, les étudiants sont partis de la Bibliothèque principale de Berkeley. Une partie de l'équipe de développement d'IPython est encore dans l'espace de travail commun pour peaufiner la première publication de Jupyter. Fernando Pérez, créateur d'IPython appuie sur la touche entrée du clavier de MinRK… Les lignes défilent… Quelques secondes plus tard, la fin d'une époque. Pour la première fois en 14 ans, IPython n'est plus un paquet unique, mais un ensemble de bibliothèques clairement identifiées.

Changement de fonctionnalités

Nouvelles fonctionnalités

Aucune. Facile à retenir. En fait, pour être honnête, ce n'est pas totalement vrai, nous avons bien ajouté quelques améliorations mineures, mais rien qui vaille la peine d'être décrit ici.

Fonctionnalités retirées

Alors là, c'est l'hécatombe. Au revoir le Notebook, plus de Qtconsole, plus de conversion de notebook avec nbconvert, plus de calcul parallel, ni de widget. Le code source ne fait plus "que" 65k lignes de Python, 180k tous langages confondus, contre 146k et 340k pour la branche en maintenance 3.x.

La Grande Séparation

Bien que beaucoup de fonctionnalités aient été retirées, vous pouvez toujours y avoir accès en installant les paquets correspondants. Pour ceux qui s'intéresseraient à la manière dont les différentes fonctionnalités ont été retirées de l'arbre principal, je vous conseille d'aller lire l'article sur "La Grande Séparation" (The big Split™). Ceci nous a permis de découper le code en à peu près une dizaine de paquets différents regroupant chacun une fonctionnalité bien précise. En tant qu'utilisateur, vous ne devriez faire face qu'à un nombre limité de choix.

Si vous n'utilisez IPython qu'en ligne de commande, rien de changé pour vous, vous installez ipython.
Si par contre vous étiez fan du notebook, maintenant vous voulez installer le méta-paquet Jupyter (pip install jupyter) qui devrait installer toutes les dépendances. Si vous désirez une installation sur mesure vous pouvez aller piocher les composants nécessaires parmi notebook, qtconsole, nbconvert, console, ipyparallel, etc. Les nouveaux composants gardent leur licence BSD et l'historique des modifications grâce à git filter-branch.

En pratique pour les développeurs et utilisateurs qui voudraient trifouiller le code, il y a potentiellement plusieurs dépôts git à cloner. D'un autre coté si vous n'êtes intéressé que par une sous-partie des composants, le code est bien plus petit.

Vous pouvez allez lire le court post de blog sur la nouvelle version 4.0 de Jupyter (on commence à 4.0 pour rester dans la continuité d'IPython).

L'écosystème

Comme souvent, le nombre de paquets et d'outils qui fonctionnent autour de Jupyter croît.

On notera en particulier que Atom (l'éditeur de texte de GitHub) s'est enrichi du greffon hydrogen. L'auteur travaille actuellement avec nous pour améliorer la complétion dans le notebook. L'intégration de l'édition de notebook directement dans Atom est aussi en progression.

Il y a quelques mois de cela, on a aussi eu le plaisir d'avoir le rendu des notebooks sur GitHub, vous pouvez en lire plus sur le blog de Jupyter. Ainsi que l'intégration du protocole pour exécuter du code sur la plateforme de publication d'Oreilly, qui transforme les balises "pre" d'une page en code exécutable à l'aide d'un outil open-source nommé thebe (point de culture générale : il s'agit d'une des lunes de Jupiter).

Une autre information est à noter, qui pourrait sembler déplacée sur un site généralement critique envers une certaine entreprise de Redmond à l'origine d'un système d'exploitation connu, les interactions entre Jupyter et les équipes de Microsoft sont relativement bonnes. Vous pouvez d'ailleurs utiliser les notebooks sur Microsoft Azure.

Big Blue (ou IBM pour les bébés moules de LinuxFr.org), a aussi une intégration poussée des notebooks, dans ses différentes platformes. On remerciera en particulier les chercheurs en sécurité d'IBM pour la divulgation responsable de failles de sécurités avérées sur la liste de diffusion dédiée à la sécurité.

Kyle travaille toujours à Rackspace et passe une grande partie de son temps, avec l'autorisation de son employeur, sur de trop nombreux projets liés à Jupyter.

La suite

Maintenant plus que jamais est le moment de contribuer ! Chaque sous-projet est maintenant à taille humaine (et a été conçu pour l'être), et les publications ne sont plus synchronisées entre elles pour permettre plus de souplesse et des rythmes différents. Avec votre aide, il est envisageable d'avoir une nouvelle version du notebook au fil des mois, plutôt que des intervalles d'un an ! Par ailleurs, la taille de chaque projet diminuant, il va être plus facile d'obtenir les droits de commits, et de faire des choix d'implémentation sans se frotter à 10 autres développeurs qui ont un avis sans pour autant avoir jamais touché une ligne de ce sous-projet.

Avec le récent financement, les personnes travaillant sur Jupyter/IPython vont pouvoir garder leurs postes, mais des nouvelles positions s'ouvrent. On collabore aussi avec le projet OpenDreamKit qui devrais aussi recruter en Europe, afin d'intégrer IPython plus en profondeur avec SageMath. Je vous laisse allez chercher les offres de poste, ce n'est pas tous les jours qu'on peu trouver des offres d'emplois pour travailler à plein temps sur de l'Open Source. On notera aussi que deux développeurs de Berkeley (re)viennent travailler en Europe (Royaume-Uni, et Norvège) pour augmenter la présence européenne.

Au cours des trois prochaines années le financement du projet inclut des personnes dédiées pour écrire la documentation, ainsi que des fonds pour un designer et un développeur web. On va donc peut-être enfin avoir une documentation digne de ce nom et pas trop moche.

Le financement du projet prévoit aussi de faire une conférence sur quelques jours, pour regrouper la majorité des développeurs qui travaillent sur des projets en relation avec l'architecture de Jupyter. En attendant, cherchez les développeurs au conférence, j'ai entendu dire que maintenant ils avaient des autocollants Jupyter et des t-shirts à distribuer.

Sinon le développement a déjà repris de plus belle, avec addition de fonctionnalités au notebook en cours (Rechercher, remplacer, sélection multiple, collaboration temps réel), et intégration des sous-projets comme traitlets avec matplotlib.

Merci à vous, on attend vos contributions et commentaires avec impatience !

  • # Essayons-ça !

    Posté par (page perso) . Évalué à 6.

    Pour ceux qui voudraient essayer en ligne, avec Python, R, Haskell, Julia, Bash ou Ruby, c'est par là : https://try.jupyter.org/

    J'aime bien les notebooks de Jupyter pour expérimenter, ou bien apprendre un langage à la volée pour des exemples.

  • # Frustré par iPython

    Posté par (page perso) . Évalué à 7.

    Et oui, à chaque fois que je lis la doc ou une dépêche à son sujet, je vois qu'il y a des milliards de trucs fantastiques fournis par iPython, mais je n'en ai jamais le besoin et je n'utilise que la console « classique » iPython (qui est nickel pour moi, au passage).

    • [^] # Re: Frustré par iPython

      Posté par . Évalué à 9.

      Bon ben au moins maintenant IPython ne sera plus "que" IPython.
      On pense intégrer prompttoolkit pour ceux qui n'utilisent que la console.

      • [^] # Re: Frustré par iPython

        Posté par . Évalué à 3.

        On pense intégrer prompttoolkit pour ceux qui n'utilisent que la console.

        Ouaouh, impressionnant ce prompt. +1 pour l'intégration :-)

        • [^] # Re: Frustré par iPython

          Posté par (page perso) . Évalué à 3.

          Instant cocorico, néanmoins, c'est écrit par un Belge, Jonathan Slenders, qui a fait des chouettes outils autour, que soit un clone de Vim, ou même une intégration avec AsyncSSH, pour faire un prompt directement en SSH, afin de faire une console opérateur pour un daemon.

          • [^] # Re: Frustré par iPython

            Posté par . Évalué à 1.

            Son Python mange des frites alors ?

            • [^] # Re: Frustré par iPython

              Posté par (page perso) . Évalué à 2.

              J'en étais sûr que tu allais me la ressortir ;-)

              Et en effet, il vient souvent manger des frites avec nous lors des meetups Python Belge :-)

            • [^] # Re: Frustré par iPython

              Posté par . Évalué à 3. Dernière modification le 28/08/15 à 09:12.

              Son Python mange des frites alors ?

              C'est ton humour qui s'effrite ;-)

              Je ne suis pas un politicien ! J'ai un avenir à créer, pas un passé à défendre !

      • [^] # Re: Frustré par iPython

        Posté par (page perso) . Évalué à 2.

        Merci pour l'info, je ne connaissais pas.

        En tout cas, super boulot, merci !

  • # cohabitation sur github

    Posté par (page perso) . Évalué à 3.

    J'aime bien l’intégration du rendu des notebooks sur GitHub. C'est vraiment un truc très pratique.

    La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick

  • # ipython ou jupyter ?

    Posté par (page perso) . Évalué à 0. Dernière modification le 17/09/15 à 06:52.

    Bonjour
    Doit on l'appeler ipython ou jupyter?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.