2010-04-02 4 views
26

J'ai suivi la saga de Python 3.x et j'ai vu les fonctionnalités 3.x revenir progressivement sur la ligne 2.x.Python - ce qui n'est PAS dans 2.7 qui est dans 3.1? Tant de choses ont été reportées, qu'est-ce qui ne l'est pas?

La plupart des bibliothèques que j'utilise n'ont pas été portés et certains (par exemple Twisted) semblent ouvertement hostiles ou subrepticement à 3.x à des degrés divers. En tout cas, il y a eu très peu de mouvement vers des versions compatibles de beaucoup d'entre eux. Surtout les plus grands.

Alors, ma question est, avec toutes les fonctionnalités qui ont été rétroportés, ce qui est encore disponible dans 3.x qui est pas été backported? Il est assez facile de trouver ce a été rétroportés, mais pas ce qui reste.

En ce moment, le portage à 3.x semble juste comme toute la douleur, et je ne peux pas voir le gain; peut-être un "Seulement 3.x" liste me laisser voir la lumière ...

Merci,

Stu

+5

Comptez-vous ces fonctions importées par 'from __future__ import ???'? – kennytm

+0

On dirait que vous voulez vraiment savoir pourquoi vous devriez porter sur Python3. Cela a déjà été répondu à plusieurs reprises. –

+1

Non, je suis en train d'essayer de savoir ce qui est en Python 3 qui n'a pas été porté en arrière. – StuFuller

Répondre

6

La chose la plus importante est probablement tout au long unicode. Il n'est donc plus nécessaire de jouer avec str/unicode. Cela semble petit mais a des implications (positives) énormes quand vous pensez à l'interaction du système d'exploitation - par exemple, tout le monde doit s'efforcer de vous donner des chaînes 'utilisables' au lieu d'une 'chose binaire qui pourrait être un message d'erreur'.

Il y a aussi beaucoup de choses dans l'interprète lui-même qui a été amélioré. Un exemple est le verrou interprète global (GIL) qui n'a pas disparu mais c'est beaucoup mieux dans py3k: presentation+slides

+0

3.3 a une implémentation Unicode améliorée. Il existe d'autres améliorations Unicode et corrections de bugs seulement dans le 3.x actuel. –

3

La vitesse peut être une caractéristique qui mérite d'être mentionnée.

La vitesse imporovements du projet « hirondel » ont été approuvés pour être fusionnés en Python. Mais autant que je sache seulement à Python 3. Voir PEP 3146 pour plus de détails.

+0

AFAIK, États-Unis est un non-démarreur à ce stade en raison de graves exigences de mémoire et de longs délais de démarrage, mais je suis sûr que cela sera élaboré (peut-être avec pré-profilage comme beaucoup l'ont suggéré). – StuFuller

+0

Si par "non-démarreur" vous voulez dire, "pré-alpha" alors, oui. L'avalement à jeun est approuvé pour être intégré à CPython, et il n'y a pas d'obstacles significatifs à cela, une fois que le travail concerné est effectué. –

+1

La communauté des développeurs ne semble pas avoir beaucoup d'enthousiasme à suivre sur Unladen Swallow pour Python 3. Peut-être qu'ils comptaient sur le soutien de Google pour ce travail, mais de la liste de diffusion, il semble que Google a déplacé ces développeurs sur d'autres travail qui est plus prioritaire pour Google. –

Questions connexes