L’une des plus grandes sources de confusion et de désinformation pour les personnes qui veulent apprendre Python est de savoir quelle version elles doivent apprendre.
Dois-je apprendre Python 2.x ou Python 3.x?
En effet, c’est l’une des questions que l’on nous pose le plus souvent à Dataquest, où nous enseignons Python dans le cadre de notre cursus en sciences des données.
Ce billet donne un peu de contexte derrière la question, explique la pespective et vous dit quelle version vous devriez apprendre.
Débutons par un bref rappel historique.
Python 3.0 est sorti en 2008 (pas une coquille – il y a 9 ans !)
Le 3 décembre 2008, Python a sorti la version 3.0 . Ce qui était spécial à ce sujet, c’est qu’il s’agissait d’une version rétrocompatible (si vous voulez en savoir plus sur la raison, je vous recommande cet excellent billet de Brett Cannon)
En conséquence, pour quiconque utilisait Python 2.x à ce moment-là, la migration de son projet vers 3.x nécessitait de grands changements. Cela ne concernait pas seulement les projets et les applications individuels, mais aussi toutes les bibliothèques qui font partie de l’écosystème Python.
Le changement a été considéré comme extrêmement controversé, et de nombreux projets ont résisté à la douleur du passage, en particulier dans la communauté Python scientifique. Il a fallu deux ans pour que la principale bibliothèque numérique NumPy publie sa première version 3.x, après quoi d’autres projets ont commencé à publier des versions compatibles avec la 3.x dans les années qui ont suivi.
En 2012, de nombreuses bibliothèques prenaient en charge la 3.x, mais la plupart étaient encore écrites en 2.x. Au fil du temps, des outils ont été publiés pour faciliter le portage du code d’un bout à l’autre, mais il y avait toujours une grande résistance au déménagement.
Une excellente lecture sur le sujet est le post de Jake VanderPlas de 2013 : Les scientifiques passeront-ils un jour à Python 3 ?
Dans les quelques années qui ont suivi, plusieurs outils ont été publiés pour faciliter la transition des anciennes bases de code de Python 2 à Python 3.
À l’origine, Python avait prévu la date de » fin de vie » pour Python 2.x pour 2015, mais en 2014, ils ont annoncé qu’ils prolongeraient cette date de 5 ans, jusqu’en 2020, en partie pour soulager les inquiétudes des utilisateurs qui ne peuvent pas encore migrer vers Python 3.
En avant rapide vers aujourd’hui
Aujourd’hui, il y a très peu de bibliothèques qui ne supportent pas Python 3. Python 3 Readiness montre que 344 des 360 principaux paquets pour Python supportent 3.x.
En outre, de nombreux paquets annoncent la fin du support pour 2.x. Python 3 Statement est un projet dans lequel de nombreuses bibliothèques (scientifiques) principales s’engagent à ne plus prendre en charge la version 2.x en 2020 ou plus tôt.
Récemment, le célèbre cadre web Django a annoncé que sa nouvelle version 2.0 ne supporterait pas Python 2.x.
Alors pourquoi la question se pose-t-elle encore ?
Il y a beaucoup de ressources en ligne anciennes et gratuites pour apprendre Python qui sont basées sur Python 2, y compris la plupart des cours MOOC à des endroits comme Coursera, Udemy et edX.
Ajouté à cela, le très populaire ‘Learn Python the Hard Way’ de Zed Shaw a été écrit en Python 2.x et n’a pas été mis à jour. Jusqu’à récemment, je pensais que c’était simplement parce que Zed était trop paresseux pour mettre à jour son cours, mais récemment il a publié un article controversé : The Case against Python 3.
Vous aimerez peut-être aussi lire l’excellente réfutation d’Eevee : A Rebuttal For Python 3, ainsi que les pensées de nombreux développeurs de logiciels dans le fil de discussion Hacker News pour l’article de Zed).
En bref – le nombre de personnes qui sont d’accord avec la diatribe de Zed est extrêmement minoritaire.
Alors, lequel devrais-je apprendre ?
Pourquoi vous devriez apprendre Python 3
D’un point de vue, j’ai eu la chance d’entrer dans le monde de Python beaucoup plus récemment, au début de 2016. J’ai commencé à apprendre Python dans le cadre du programme d’études en science des données à Dataquest. Dataquest n’enseigne que 3.x, et pendant un bon moment, je ne connaissais pas toute cette controverse 2 vs 3.
J’ai utilisé Python 3.x exclusivement et j’ai rarement rencontré des problèmes de compatibilité.
Très occasionnellement (peut-être une fois tous les 3-4 mois), je constaterai que j’essaie d’exécuter quelque chose qui nécessite le support de Python 2, et le virtualenv de Python me permet de créer instantanément un environnement 2.x sur ma machine pour exécuter ce morceau de logiciel hérité.
Python 3.x est l’avenir, et avec le support de Python 2.x qui diminue, vous devriez consacrer votre temps à l’apprentissage de la version qui vous aidera dans le futur.
Pourquoi vous devriez apprendre Python 2
Vous ne devriez pas. Très bientôt, il n’y aura plus de sécurité future ou de corrections de bogues pour Python 2.x, et votre temps est mieux dépensé à apprendre 3.x.
Dans le cas peu probable où vous finissez par travailler avec une base de code Python 2 héritée, des outils comme python-future vous permettront de l’utiliser facilement en ayant seulement appris Python 3.
J’espère que cela vous a aidé à comprendre ce sujet controversé et à prendre votre décision d’apprendre Python 3.
Dataquest est la meilleure plateforme en ligne pour apprendre à devenir un Data Scientist en utilisant Python (3.x, bien sûr !).
Nous avons des diplômés qui travaillent chez SpaceX, Amazon et plus encore. Si cela vous intéresse, vous pouvez vous inscrire et suivre notre premier cours gratuitement sur Dataquest.io
Ce billet est basé sur cette réponse Quora
Data Scientist chez Dataquest.io. Aime les données et le football Aussie Rules. Australien vivant au Texas.
.