IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'arrivée de Python 2.7 marque la fin des version 2.x
Du langage dynamique : allez-vous migrer vers Python 3.1 ou 3.2 ?

Le , par Gordon Fowler

40PARTAGES

1  0 
Mise à jour du 04.07.2010 par Katleen
Python 2.7 est disponible en version définitive, la dernière mouture 2.x prépare la transition vers la série 3.x


La version définitive de Python 2.7 est sortie hier.

Elle sera la dernière de la série des 2.x ; et a donc été conçue pour durer sur le long terme, en attendant l'arrivée des moutures 3.x. Plusieurs fonctionnalité des séries 3.x ont d'ailleurs été incluses dans ce produit.

La bibliothèque standard a été améliorée, notamment avec l'ajout d'un meilleur module unittest, l'arrivée d'un module argparse pour les options des lignes de commande de parsing, etc.

Comme indiqué sur le site officiel, Python 2.7 comprend :

An ordered dictionary type
New unittest features including test skipping and new assert methods
A much faster io module
Automatic numbering of fields in the str.format() method
Float repr improvements backported from 3.x
Tile support for Tkinter
A backport of the memoryview object from 3.x
Set literals
Set and dictionary comprehensions
Dictionary views
New syntax for nested with statements
The sysconfig module
Source : Lien de téléchargement

Mise à jour du 14/06/10

Python 2.7 en Release Candidate
Annonce une sortie officielle pour juillet, une beta de Python 3.2 attendue pour septembre

Python 2.7 sera bien la dernière version de la branche 2.x du langage de programmation web.

Son passage en Release Candidate précède un mois de juillet qui sera riche en actualité. Cette RC indique en effet que la version finalisée est sur le point de sortir. Une version finalisée qui devrait arriver après une deuxième RC.

Steve Holden, le président de la Python Software Foundation, vient de le confirmer. Il a également indiqué que le support de Python 2.7 durerait plusieurs années, a priori cinq au lieu des deux ans habituels.

Pour mémoire, la branche 3.x du langage - qui existe déjà (lire par ailleurs notre sujet sur les fonctionnalités de Python 3.1) - n'est pas rétro-compatible avec la branche 2.x. Le choix n'a pas manqué de susciter un débat dans la communauté et a abouti à la décision d'un moratoire sur la grammaire du langage.

Autre annonce de Holden confirmé aujourd'hui sur le site officiel, une beta de la version 3.2 est prévue pour septembre. Quant à l'arrivée officielle de cette version, elle vient d'être fixée au mois de décembre.

D'après Holden, la nouveauté la plus importante de Python 3.2 est une ré-écriture du 'Global Interpreter Lock', une évolution qui permettra une meilleure gestion du multi-coeur.

D'autres modifications auront lieu dans Python 3.2 avant septembre et l'arrivée de cette beta.

Le moratoire pourra alors commencer.

La RC de Python 2.7 est disponible sur cette page pour Linux, Mac et Windows.

Source : L'annonce et les nouveautés de Python 2.7 sur le site officiel du langage.

Et vous ?

Python 2.7, 3.1 et 3.2, rétro-compatibilité partielle : un développeur peut-il encore s'y retrouver ?
Le passage à la branche 3.x est-elle d'après vous une bonne nouvelle en terme de fonctionnalités et de puissance pour Python ?

MAJ de Gordon Fowler

Mise à jour du 14.04.2010 par Katleen
Python 2.7 est disponible en bêta, que pensez-vous de ses améliorations ?

La bêta de Python 2.7 vient d'être mise en ligne par ses développeurs. Cette dernière version de Python 2.x apporte beaucoup de nouveautés, contrairement aux versions ultérieures qui ne seront plus que des correctifs (bugs-fix-only-mode).

Parmis les nouvelles fonctionnalités apportées par cette version 2.7, on note particulièrement :

- des dictionnaires ordonnés

- un module d'entrées/sorties (io) beaucoup plus rapide

- des vues des dictionnaires

- un modules sysconfig

A vous de découvrir la suite !

Vous pouvez télécharger Python 2.7 ici.

Que pensez-vous de cette nouvelle mouture ?

Mise à jour du 15/01/10

L'arrivée de Python 2.7 marque la fin des version 2.x
Du langage dynamique : envisagez-vous de migrer vers Python 3.1 ou 3.2 ?

La deuxième alpha de Python 2.7 vient de sortir.

Elle sera suivie de deux autres alphas et de deux RC (Release Candidate) qui précéderont, elles, la sortie de la version définitive prévue en Juin. C'est ce que vient de déclarer le président de la Python Software Foundation.

La version 2.7 sera la dernière de la branche 2.x du langage dynamique.

La Fondation se concentrera alors exclusivement sur la branche 3.x, volontairement incompatible avec la 2.x (trouvez-vous normal que Python 3.x soit incompatible avec Python 2.x)

Jusqu'ici, il y avait eu une très bonne compatibilité entre les versions de Python*», déclare le président de la Fondation, «mais Guido van Rossum a toujours été conscient qu'il y avait des problèmes dans son langage, alors il a décidé de s'accorder un break au niveau de la retro-compatibilité».

Et de noter que la branche 2.x a continuer à évoluer pour que les développeurs Python n'aient pas à migrer trop brusquement. Même si le but affiché est bel et bien une migration.

S'il fallait s'en convaincre, les Release Notes de la version 2.7 jouent carte sur table : «cette version contient beaucoup de fonctionnalités initialement conçues dans Python 3.1».

Pour sa part Python 3.2 connaitra sa première version alpha début Juin. Suivront alors une beta et une RC pour une sortie officielle en Décembre 2011. Comme la grammaire du langage entre dans une phase de moratoire, Python 3.2 ne devrait apporter aucune nouveauté sur ce plan.

La dernière version actuelle de Python 2.7 et sa Release Note complète sont disponibles sur cette page

Et vous ?

Allez-vous migrer ? Et pour quelle(s) raison(s) ?
Si vous avez déjà entamé ce processus, avez-vous trouvé la migration facile ou difficile ?

MAJ de Gordon Fowler

Python 2.6.4 est arrivé
En Release Candidate, et corrige un bug critique de Python 2.6.3

Alors que Guido van Rossum, son créateur, appelle à un moratoire "de la grammaire et de la sémantique" de Python 3.0 et 3.1, la version 2.6.4 vient elle tout juste de sortir :

Python 2.6.4 is a critical bug fix for Python 2.6.3, which had regressions in the logging package and in setuptools compatibility.

Cette version est donc avant tout une correction d'un bug critique trouvé dans Python 2.6.3, aucune nouvelle fonctionnalité n'ayant été rajoutée.

Python est un langage de programmation orienté objet, facile d'utilisation et puissant, utilisé aussi bien pour des scripts simples que pour des programmes ambitieux ou d'intégration dans d'autres applications.

Il est disponible sur la plupart des plateformes.

Python 2.6.4 est en téléchargement en RC (Release Candidate).

Contrairement à ce qui est indiqué sur la page de présentation du projet, sa documentation n'est pour l'instant pas mise en ligne.

Cela ne saurait tarder.

Lire aussi :

Sortie de Python 3.1 release, qu'en pensez-vous ?

Les rubriques Python et Linux Pro (actu, tutos, forums) de Développez

Et vous ? :

Attendiez-vous avec impatience Python 2.6.4 et ses "correctifs" ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de leoz01
Nouveau membre du Club https://www.developpez.com
Le 16/06/2010 à 23:35
Python 2.7 sera bien la dernière version de la branche 2.x du langage de programmation web.
web? O_o
2  0 
Avatar de Gordon Fowler
Expert éminent sénior https://www.developpez.com
Le 15/01/2010 à 11:56
L'arrivée de Python 2.7 marque la fin des version 2.x
Du langage dynamique : envisagez-vous de migrer vers Python 3.1 ou 3.2 ?

Cf. premier post du topic
1  0 
Avatar de Julie++
Membre à l'essai https://www.developpez.com
Le 15/01/2010 à 13:36
C'est à cause des biliothèques que j'utilise Python 2.5 ou 2.6. Mais je voudrais utiliser la dernière version de Python !
1  0 
Avatar de Thierry Chappuis
Expert confirmé https://www.developpez.com
Le 15/01/2010 à 14:03
J'utilise déjà Python 3.1 pour certain développements personnels. Sur le plan professionnel, tant que Numpy et Scipy ne seront pas disponibles pour la branche 3.x, aucune migration n'est envisagée.

Thierry
1  0 
Avatar de rambc
Membre chevronné https://www.developpez.com
Le 15/01/2010 à 17:36
Je me suis lancé dans un projet perso "important" et j'ai directement pris Python 3 sachant malgré tout que cela m'empêchera pendant un moment d'utiliser d'autres bibliothèques telles que PIL, sympy ou numpy.

Dive into Python 3 m'a bien aidé, un vrai bonheur ce livre...
1  0 
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 15/01/2010 à 20:58
Bonsoir

Personnellement, je trouve que nous sommes dans une position intelligente ou nous pouvons traiter chaque application au cas part cas qui correspond à mes attentes pour traiter l'introduction d'une évolution majeure.

Si vous développez de nouveaux projets ou effectuez une TMA importante avec des applications dont les bibliothèques sont disponibles en 3.1.
Vous devrez passer un jour ou l'autre en V3.
Y aller ou pas maintenant ou plus tard? Est ce que çà alourdit le projet? Aura-t-on une meilleure opportunité de le faire plus tard.

Vous avez une application qui fonctionne bien en 2.x et pas d'évolution fonctionnelles prévues. Pourquoi changer? En tout cas, si vous avez mieux à faire çà peut encore attendre.

Entre les deux vous avez des cas comme:
- patrimoine 2.x mais de nouvelles fonctionnalité 3.x qui nous simplifient la vie pour telles évolutions que nous devons livrer cet été,
- un découpage en composants qui permet d'en faire évoluer certain en 3.x plus vite que d'autres,

- W
1  0 
Avatar de emmanuel_dumas
Membre habitué https://www.developpez.com
Le 20/01/2010 à 8:09
Bonjour

Dans mon cas, j'ai commencé à utiliser sérieusement Python a l'arrivée de Python 3.0. Donc j'ai tout misé sur Python 3.0. De plus je n'ai pas vraiment besoin de librairies annexes.
Je suis bien content de ne pas avoir une grosse base d'existant avec des dépendances vers des librairies externes à gérer.

Cependant de ce changement Python 2.X vers 3.X, je retiens ces leçons :
- toujours rester prudent envers les éléments externes à un projet. Se créer une dépendance avec une bibliothèque externe peut à l'avenir couter très cher quand cet élément externe tarde à suivre les évolutions
- Même quand un changement apporte des corrections de bug (le print qui devient une fonction comme une autre, pourquoi cela n'a pas été le cas depuis le début ?), beaucoup de gens sont très réticent à rompre la compatibilité ascendante. Si je rajoute quelques expériences personnels ou des personnes défendaient une comptatibilité ascendante sur du code qui de toute façon ne marchait pas, je considère cette argument de moins en moins pertinent.
- Si je code en Python, ce n'est pas pour avoir du code rapide, mais du code de qualité (peu de bug, lecture facile, appropriation par d'autre personne facilement, maintenabilité facile etc.) rapidement. Donc tous les arguments "Python 3.X est un peu plus lent que le 2.X" ne m'ont pas du tout touchés.

Cordialement
Emmanuel DUMAS
1  0 
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 20/01/2010 à 20:29
Bonsoir,
Citation Envoyé par emmanuel_dumas Voir le message

- toujours rester prudent envers les éléments externes à un projet. Se créer une dépendance avec une bibliothèque externe peut à l'avenir couter très cher quand cet élément externe tarde à suivre les évolutions
Ces précautions sont relatives à tout assemblage de composants - et n'est pas spécifique au langage utilisé. L'implication est "limiter l'utilisation de composants":
- ne ajouter un composant pour éviter d'écrire quelques lignes de code,
- choisir des composants "stables" - quand on peut,
- ...
Problème spécifique à mon utilisation de Python: je m'en sers comme "glue" i.e. langage d'intégration des fonctionnalités de composants écrits dans d'autres langages. Exemples: QT, CouchDB, libxml2,...

Par contre Python à un bon support des VM et un support des "composants" (WSGI par exemple) qui me permet de faire cohabiter et évoluer indépendamment des codes 2.6, 3.x

- Même quand un changement apporte des corrections de bug (le print qui devient une fonction comme une autre, pourquoi cela n'a pas été le cas depuis le début ?), beaucoup de gens sont très réticent à rompre la compatibilité ascendante. Si je rajoute quelques expériences personnels ou des personnes défendaient une comptatibilité ascendante sur du code qui de toute façon ne marchait pas, je considère cette argument de moins en moins pertinent.
Rompre la compatibilité ascendante signifie que les coûts de qualification de la même application sous la nouvelle version seront importants.

Si vous avez un code jeune, qui doit encaisser beaucoup d'évolution fonctionnelles, vous pourrez faire passer le coût de qualification de la nouvelle version dans l'épaisseur du trait.

Pour les codes vieux, le "legacy" qui fonctionne dans un coin depuis des années sans soucis... le coût de qualification n'apportant aucune évolution fonctionnelle, va être difficile à vendre.

De plus, c'est en général des codes auquel plus grand monde n'y comprend rien: vous essayez de qualifier, vous tombez dans un bug, et un temps indéfini pour le corriger...
Il est souvent plus simple de tout jeter et de recommencer "from scratch"...

Ceci dit, de temps en temps, nous sommes obligés de rompre cette foutue compatibilité ascendante. Et dans ce cas, à part essayer d'éviter de perdre sa base installée en offrant des chemins praticables pour attendre le bon moment ou faciliter la migration...

-W
1  0 
Avatar de Shadok
Membre régulier https://www.developpez.com
Le 21/01/2010 à 16:52
Bonjour,

Je suis actuellement en 2.x.

Mon projet en étant à ses débuts et pas encore en version opérationnelle stable, je pense que je passerai un jour à Python 3. Pour le moment j’en reste à Python 2.x et pour encore pas mal de temps. En effet, 80% de ce projet est constitué d’une interface graphique écrite en wxPython et Robin Dunn a été clair : le passage de wxPython à Python 3 n’est pas pour l’avenir proche - le portage n’est pas encore commencé.

Je ne sais pas ce qu’il en est pour pyGTK ou pyQt, mais je pense que d’une façon générale, les projets comportant une partie IHM vont rester un moment sous Python 2.x.
1  0 
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 21/01/2010 à 21:00
Salut,
Je ne sais pas ce qu’il en est pour pyGTK ou pyQt, mais je pense que d’une façon générale, les projets comportant une partie IHM vont rester un moment sous Python 2.x.
PyQT est disponible en Python 3.1.
PySide ne l'est que pour 2.x et prévoie de commencer le portage au premier semestre.

Je ne sais pas ou en est votre projet mais ne vous fermez pas la possibilité d'une mise à jour 3.x, i.e. essayez si vous le pouvez d'identifier les points qu'il faudra revoir et forcez un peu le trait sur les tests unitaires qui pourront éventuellement servir de base pour les tests de non-régression.

Vous n'aurez peut être pas un code portable 3.x à coût réduit mais en prenant en compte cette préoccupation de façon molle vous vous simplifirez toujours la vie plus tard.

-W
1  0