Python est un langage de programmation créé en 1991 par un certain Guido Van Rossum. Depuis sa création, il a subi de nombreuses améliorations, et c'est il y a peu, le 3 décembre 2008, que la toute dernière mouture est apparue : Python 3.0.
Présentation générale du langage
Python est un langage qui se veut simple et puissant. Sa popularité augmente de plus en plus, comme le montre
cet article, qui lui attribue la sixième place des langages les plus populaires.
Il supporte les paradigmes impératifs, orientés objet et fonctionnels, bien que ce dernier n'en est pas encore à un stade avancé. Le langage propose également diverses librairies externes, ce qui le rend pratique pour de nombreux usages, je pense notamment à PyQt pour la création de GUI, PySFML pour les jeux, PIL pour la création d'images, etc. On peut également s'en servir dans la création de sites web dynamiques, notamment à l'aide du framework Django, dont la version 1.0 est sortie récemment.
"What's new in Python 3.0"
Les nouveautés du langage
Python 3.0 marque une certaine rupture avec la série des versions 2.*. Une des conséquences de cette rupture est le cassage de la rétrocompatibilité. Vos anciens programmes écrits sous python 2.5 ou 2.6 ne fonctionneront donc plus sous Python 3 sans modification (lisez la
news de wgmpgp à ce sujet).
On peut énumérer plusieurs modifications importantes telles que :
- print et exec deviennent des fonctions. A ce titre, on ne pourra plus écrire :
Code : Python1
2
3 | commande = "nombre = 3"
exec commande
print nombre
|
Ce code deviendra :
Code : Python1
2
3 | commande = "nombre = 3"
exec(commande)
print(nombre)
|
Ce qui aura pour effet :
Code : Console | Python 3.0 (r30:67507, Dec 3 2008, 20:14:27) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> commande = "nombre = 3"
>>> exec(commande)
>>> print(nombre)
3
>>> _ |
- Les types entier et chaîne de caractères ont subi des modifications. Le type entier est renommé de "int" en "long", le type "str" représente maintenant une chaîne codée en utf-8, l'opérateur / définit maintenant la vraie division (pour effectuer une division d'entiers, utilisez //)
- La fonction raw_input
a été supprimée. C'est maintenant input
qui remplit son rôle, à savoir récupérer sous forme de chaîne de caractères une entrée de l'utilisateur
- Des fonctions qui retournaient des listes retournent maintenant des générateurs, ce qui est plus adapté : je parle notamment des méthodes key()
, iterkeys()
, items()
, iteritems()
, values()
et itervalues()
des dictionnaires, des fonctions zip()
, map()
et filter()
, et de range()
qui se comporte maintenant comme l'ancienne xrange()
qui a été retirée.
- Les opérateurs de comparaison <, <=, >= et > renvoient une exception TypeError
au lieu de la valeur booléenne False
quand la comparaison n'a pas de sens, par exemple None < None
.
- True
, False
et None
sont maintenant des mots réservés, ce qui signifie qu'on ne peut plus modifier leur valeur.
Bien entendu, cette liste ne peut pas être exhaustive. Pour plus d'informations, je vous encourage à aller lire
ce texte, qui répertorie tous les changements effectués.
Maintenir son code
De nombreux efforts ont été mis en oeuvre de la part des développeurs de Python pour faciliter le changement de version. En effet, avec la mise en place de Python 2.6, version de transition vers Python 3.0, a notamment été fourni l'utilitaire 2to3, qui permet de mettre à jour vos codes sources.
Quant aux librairies externes, il va probablement falloir attendre un certain temps. PyQT 4 n'est actuellement disponible que jusqu'à Python 2.6, Django également. Il semble qu'il en soit de même pour PySFML.
Les deux versions de Python vont probablement cohabiter ensemble pendant au moins un ou deux ans, le temps qu'une majorité de développeurs passent à Python 3.
Si vous êtes vous-mêmes dans ce cas et que vos projets sont adaptables aux deux versions, je ne peux que vous encourager à les distribuer sous les deux formes afin que chacun y trouve son compte.
Apprendre Python
Oui, je m'adresse à toi, jeune padawan qui est tombé sur cette news et qui te dit « Bon tout ça c'est bien, mais en pratique, comment je fais moi pour profiter de toutes ces nouveautés ? »
Si vous souhaitez apprendre le Python, je vous conseille de commencer par Python 2.6 afin de pouvoir profiter de toutes les ressources disponibles. En revanche, il existe très peu de tutoriels sur Python 3 et quasi aucune libraire externe. De nombreux cours sont disponibles sur la toile, par exemple
celui de Gérard Swinnen, très complet sur tout ce qui touche les bases du langage, ou le très connu
Dive into Python (en français
ici).
Si vous maîtrisez déjà le langage de programmation Python, voyez si les outils que vous utilisez vous permettent de faire le passage. Si vous vous sentez au niveau nécessaire, vous pouvez proposer aux développeurs de ces outils de les aider à gérer la transition.
Dans tous les cas, il faut bien se rendre à l'évidence : Python 3 a vocation à représenter l'avenir de Python, et il faudra bien sauter le pas un jour ou un autre.
Liens
52 Participations
Connectez-vous !
Connectez-vous !
Revenir à la liste des news