Python est un langage de programmation important qui vit avec deux moutures en parallèle depuis de nombreux années, les versions 2.x (actuellement en 2.7) et 3.x (actuellement en 3.7.3). Guido Van Rossum, le créateur du langage et en poste chez Dropbox, a invité les utilisateurs à se préparer au passage à Python 3.x car Python 2 va tout bonnement disparaître des radars dès le 1er janvier 2020.
Python 2 est longtemps resté en vie car il permettait aux anciens programmes ou projets de se maintenir lorsque Python 3 a vu le jour. Toutefois, cette bonne idée de départ est rapidement devenue complexe à gérer car chaque projet devait se poser la question de la compatibilité des modules à importer avec telle ou telle version, etc. Pour ma part, je me suis toujours efforcé de programmer en Python 3 dont la rigueur est un tantinet plus importante (Python a tellement peu de syntaxe qu'on peut vite écrire comme un sagouin si nous ne sommes pas rigoureux), mais de nombreux projets sont encore en Python 2 et risquent donc de planter dès l'année à venir.
C'est quoi Python ?
Pour ceux qui ne connaissent pas trop Python, il s'agit d'un langage précompilé, à l'image de PHP, dont la simplicité syntaxique est souvent mise en avant par les aficionados du langage. Il s'agit d'un langage relativement aisé à prendre en main au premier abord, mais il regorge de subtilités et de raccourcis intéressants. Python offre de grandes qualités lorsqu'il s'agit de calculer ou d'effectuer des tâches un peu lourdes, au même titre que Java. C'est pour cette raison que Python est très fort dans le crawl (Google l'utilise en partie) ou dans l'intelligence artificielle (notamment avec les bibliothèques Scikit-Learn ou encore Tensor Flow de Google). Notons qu'il s'agit avant tout d'un langage informatique, et non d'un langage purement web comme PHP, mais il est possible de créer des serveurs assez facilement ou même des sites web (surtout avec le CMS Django très réputé).
Python permet de créer des programmes puissants en tout genre, d'utiliser des API (comme celle de Twitter par exemple), de réaliser des jeux vidéos simples, des logiciels avec UI, des serveurs et sites web, des calculateurs scientifiques ou pour l'intelligence artificielle, ou encore de commander des Raspberry Pi pour de nombreuses applications (système de vidéosurveillance, gestion des arrivées d'eau, etc.). C'est un langage extrêmement complet mais qui demande un peu d'expérience et de rigueur pour être apprécié à sa juste valeur.
Officiellement, Python va disparaître le 1er janvier 2020, mais il s'agit ici de la décision de Python lui-même, pas des projets existants. En effet, de nombreux projets vont retirer le support de l'ancienne version avant cette échéance. Si vous n'utilisez pas Python 2.7, la version de transition mise en place avant la clôture des 2.x, alors vous risquez de voir de nombreux projets tomber en rade. Que ce soit des librairies comme Numpy, Scikit-Learn, CPython ou encore Dateutil pour ne citer qu'elles, toutes vont avoir une incompatibilité précipitée avec Python 2.0 à 2.6, voire avec Python 2.7.
Il va donc falloir penser à rapidement se mettre à jour et réapprendre Python 3. Pour l'anecdote, rien que la fonction print() qui permet d'afficher du texte a changé de comportement. En Python 2, nous pouvions écrire print "Hello world" pour afficher le texte, alors qu'il est obligatoire d'indiquer les parenthèses de la fonction en Python 3, comme ceci : print("Hello world"). Ce changement peut sembler mineur mais sur le nombre de print() que l'on réalise, c'est énorme à modifier. Il en va de même par exemple pour TkInter, utilisé régulièrement pour créer des interfaces de logiciels, dont certaines méthodes ont changé de nom ou de syntaxe. Python 3 fournit de nombreuses fonctionnalités en plus mais ce petit temps d'adaptation peut être problématique pour certains programmes. Il est possible que dès 2020, certains modules historiques disparaissent pour toujours si leurs créateurs ne procèdent pas à la mise à jour...