PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Python 3 est fait pour les nouveaux venus 19

mardi 12 mai 2015 à 11:41

“Je n’ai pas vraiment de raison de migrer vers Python 3″ est la cause numéro 1 de la lente migration de Python 2 vers 3. 16% utilisent Python 3 comme VM principale, contre 81% pour 2.7 (on notera la part ridicule des autres versions, que vous pouvez donc ignorer dans le support de vos libs). Le report de la dépréciation de Python 2 de 2015 à 2020 a donc tout son sens : la communauté a pris son temps car le jeu n’en valait pas la chandelle.

Mais on y arrive. La plupart des libs importantes sont portées, les hostings supportent beaucoup mieux Python 3, même le portage de twisted a repris, grace à Crossbar d’ailleurs :) Perso je commence toujours mes nouveaux projets en Python 3.

On peut le dire maintenant, tout le monde a eu un peu peur. D’ailleurs Guido n’est pas prêt de recommencer. Après PHP 6 et Perl 6 qu’on attend toujours, des ralages dans tous les sens, des version 3.0, 3.1 et 3.2 vraiment à chier, après le retrait de % pour les bytes et l’appel pour une 2.8, on s’est tous demandé si ça allait pas foirer.

Maintenant, je suis certain que non. On a passé cette étape, ça a pris du temps, ça a fait mal au cul, mais pendant que Node se divise en 3 versions alors qu’il existe depuis à peine 6 ans, Python fête ses 20 ans avec une seule transition difficile, qui s’est révélée gagnante.

Mais gagnante pour qui ?

C’est vrai qu’il y a de bonnes features qui ne sont qu’en version 3 : asyncio, pathlib, statistics, ipaddress, enums, lzma, raise from, yield from, singledispatch, multiprocessing.Pool.map, @, await/async, les type hints, le support avancé des closures et l’unpacking étendu. Mais d’abord, certaines arrivent pour la 3.5, ensuite, les autres n’ont visiblement pas motivé les vieux de la vieille à faire le pas pendant 5 ans.

Pourquoi ? Parce que Python 3 n’a pas été créé pour eux. Il a été créé pour les nouveaux arrivants dans le langage.

Ayant un peu d’expérience avec le fait d’enseigner Python, je peux vous dire que faire passer Python 2 et Python 3, c’est le jour et la nuit :

Nous, utilisateurs chevronnés de la 2.7, ne nous rendons pas compte de la somme de connaissance que nous avons accumulé au fil des années pour contourner ces problèmes. Les nouveaux, même autodidactes, vont aller beaucoup plus vite.

Python 3 fait très bien son boulot : garder Python sa place de meilleur langage pour l’apprentissage. Ca tombe bien, parce qu’un fois appris, il sert aussi à plein de choses professionnellement, et pas juste du dev Web (ruby), du sysadmin (perl) ou des maths (R).

Et du coup la migration a pris du temps.

Depuis la 3.4, tout s’accélère. L’investissement est en train de payer.

Perso, quand je dois écrire du Python 2 maintenant, ça me fait râler :)