• # Possible explication de l'envolée de la popularité de Python

    Posté par (site web personnel) . En réponse à la dépêche Python pour la rentrée 2019 — partie 1 ― Popularité. Évalué à 10.

    J'ai entendu qu'il y a une corrélation entre l'envolée de la popularité de Python et l'envolée de la popularité du {machine learning, data science, numpy, scipy, pandas, scikit-learn, etc.} : le milieu scientifique assez éloigné du développement logiciel classique.

    J'ai entendu que doucement Python "remplace" plusieurs outils existants. Je ne saurai les citer, mais au pif je dirai : Matlab au moins (le seul que j'ai touché). À ce que j'ai compris, Python est supérieur aux outils existants parce qu'il est gratuit (hé oui), qu'il facilite l'intégration d'outils hétérogènes de métiers différents, et qu'il vient avec une grosse suite d'outils qui facilitent la vie (stdlib entre autres, genre lire un CSV dans un ZIP est trivial). Les notebooks Jupyter vont encore plus loin dans le remplacement de Matlab.

    Quand je dis "milieu scientifique", c'est assez large. Récemment, j'ai appris que Python commence à remplacer les outils utilisés historiquement dans le domaine de l'astronomie (genre https://www.astropy.org/ ?).

    En même temps, chaque fois qu'un outil s'améliore dans un métier, il peut être réutilisé dans un autre métier, parce que Python est maléable et permet de bien intéger des outils divers et variés (c'est sa force historique).

    Perso je reste bluffé que le coeur de numpy/scipy reste du super vieux code (10 ans ? 20 ans ? je ne sais pas) écrit en Fortran. Info à vérifier, pas sûr des dates. Mais on m'a dit "le code marche et a été prouvé (stabilité numérique), pourquoi changer ?". Il existe des projets pour réécrire des briques de base (calcul matriciel) en C, mais l'existant en Fortran reste très populaire : OpenBLAS si ma mémoire est bonne. GitHub me dit qu'OpenBLAS est constitué de 50% de Fortran, 27% d'assembleur, 20% de C (+ qq. autres langages) : https://github.com/xianyi/OpenBLAS Ou bien peut être que je confonds avec ATLAS, une autre implémentation de l'API BLAS aussi écrite en Fortran.