python 2 vs 3

Python 2 ou python 3 – la fin d’un dilemme

Emmanuel Jakobowicz Mis à jour le : 18 janvier 2019 actualités 2 Comments

MISE A JOUR : Le mouvement s'accélère !

L'annonce de la fin de Python 2.7 pour le 31 décembre 2019 a fait naître un espoir chez tous les core développeurs de l'univers Python ! Arrêter de maintenir deux versions de leurs packages (quand il n'y en a que 2...).

Les annonces s'enchainent :  entre autres, Scikit-Learn dont la dernière version compatible sera la 0.20. Voici un site qui tente de créer un mouvement dans ce sens et qui rassemble déjà du beau monde :

https://python3statement.org/

Le contexte

Pour remettre un peu en place le cadre, en 2008, les développeurs de python au sein de la python software foundation décide de passer de la version 2 à la version 3 de python. Mais ils décident aussi qu’un grand ménage est nécessaire dans le langage afin de clarifier le code. Le problème c’est que ce grand ménage rend python 3 non rétro-compatible avec python 2. Les millions de lignes en python 2 doivent être réécrites afin de pouvoir être utilisées en python 3. Après plus de 10 ans de coexistence, python 2 est en train de disparaître. En effet, de plus en plus de bibliothèques annoncent aujourd'hui que les nouvelles fonctionnalités ne seront pas développées en python 2 ce qui va forcément accélérer le processus de passage à python 3. De plus, la python software foundation a annoncé la fin de la maintenance de python 2.7 pour 2020 (https://www.python.org/dev/peps/pep-0373/).

De plus, des bibliothèques telles que numpy ont annoncées récemment l'arrêt de la maintenance de leurs versions compatibles python 2.7 à compter de 2019. En voici l'annonce lors de la release de la version 1.1.14 de numpy (https://docs.scipy.org/doc/numpy/release.html#id124): 

A major decision affecting future development concerns the schedule for dropping Python 2.7 support in the runup to 2020. The decision has been made to support 2.7 for all releases made in 2018, with the last release being designated a long term release with support for bug fixes extending through 2019. In 2019 support for 2.7 will be dropped in all new releases.NumPy 1.14.0 Release Notes
Image

Fini les hésitations !

Pendant de longues années, la première question que mes clients utilisateurs de python me posaient était de savoir quelle version de python ils devaient utiliser. Il est vrai que jusqu'en 2015/2016, la réponse restait majoritairement python 2. Aujourd'hui, voici la réponse que je donnerais :

Si vous travaillez sur un nouveau projet en python, alors c’est python 3 sans hésiter. Python 2 peut s’imposer si vous récupérez un legacy très lourd et que par la force des choses vous devez continuer à coder en python. Mais même dans ce type de cas, la question du passage à python 3 reste pertinente.

Pourquoi python 3 est mieux ?

Tout ce que je vous ai dit plus haut doit suffire à vous convaincre mais le plus important finalement, c'est que python 3 est plus lisible et plus agréable que python 2, il est mieux construit et évite des incohérences liées à python 2.

Par exemple :

  • print est devenu une fonction
  • la gestion du texte est simplifiée
  • un certain nombre d'itérateurs ne renvoient plus des listes (ce qui n'était pas très logique)
  • il y a eu du nettoyage dans les opérateurs de comparaisons (de façon à ce que python soit plus stricte dans ses comparaisons)
  • il n'y a plus qu'un type d'entiers
  • des bibliothèques de base de python ont été renommées ou réorganisées afin de rendre les nommages plus cohérents

Donc vous n'avez plus aucune raison de préférer python 2. Il ne vous reste plus qu'une chose à faire : maîtriser encore mieux python 3.

Si vous cherchez une description détaillée des différences, vous la trouverez ici (what's new in python 3.0) : https://docs.python.org/3/whatsnew/3.0.html

Cet article creuse un peu plus (en anglais) ce que nous abordons ici :
https://wiki.python.org/moin/Python2orPython3

DÉCOUVREZ NOS FORMATIONS PYTHON

Partager cet article

Comments 2

  1. je préfère python 2 , je préfère écrire print ‘Hello’ que print (‘Hello’)
    Que print soit devenue une fonction n’est pas un avantage
    La version 2 était plus facile ..
    alors je continue avec la version 2 en ce qui concerne python

    1. Post
      Author

      Bonjour,
      Je peux comprendre votre point de vue. Cependant, l’évolution actuelle va pousser l’ensemble des utilisateurs de python à utiliser la version 3. Avec l’arrêt de la maintenance de Python 2.7 à la fin de l’année 2019, il deviendra difficile de justifier le fait de continuer à utiliser la version 2.
      Bien cordialement,
      Emmanuel

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.