python 2 vs 3

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

Emmanuel Jakobowicz actualités Laissez un commentaire

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

Laisser un commentaire

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