2010-04-02 9 views
26

He estado siguiendo la saga de Python 3.x y he observado que las características 3.x gradualmente se retrotraen a la línea 2.x.Python: ¿qué NO está en 2.7 que ES en 3.1? Tantas cosas han sido retransmitidas, ¿qué NO?

La mayoría de las bibliotecas que utilizo no se han portado y algunas (por ejemplo, Twisted) parecen secretas u abiertamente hostiles a 3.x en diversos grados. En cualquier caso, ha habido muy poco movimiento hacia versiones compatibles de muchos de ellos. Especialmente los más grandes.

Por lo tanto, mi pregunta es, ¿con todas las características que se han transferido, qué hay todavía disponible en 3.x que NO ha sido retransportado? Es bastante fácil encontrar que tiene sido portportado, pero no lo que queda.

En este momento, portar a 3.x solo parece doloroso, y no puedo ver la ganancia; tal vez una lista de "Sólo en 3.x" me dejaría ver la luz ...

Gracias,

Stu

+5

¿Cuenta las características importadas por 'from __future__ import ???'? – kennytm

+0

Parece que realmente quiere saber por qué debe realizar un puerto a Python3. Eso ya ha sido respondido muchas veces. –

+1

No, en realidad estoy tratando de averiguar qué hay en Python 3 que no ha sido retransmitido. – StuFuller

Respuesta

6

Lo más importante es, probablemente, a lo largo de Unicode. Entonces ya no hay necesidad de jugar con str/unicode. Esto suena pequeño pero tiene enormes implicaciones (positivas) cuando piensas en la interacción con el sistema operativo: por ejemplo, todos deben esforzarse para darte cadenas "utilizables" en lugar de "algo binario que podría ser un mensaje de error".

También hay muchas cosas en el intérprete que se han mejorado. Un ejemplo es el bloqueo de intérprete global (GIL) que no desapareció, pero es mucho mejor en py3k: presentation+slides

+0

3.3 tiene una implementación mejorada de Unicode. Hay otras mejoras Unicode y correcciones de errores solo en 3.x actual. –

3

La velocidad puede ser una característica que vale la pena mencionar.

Se han aprobado fusiones de velocidad del proyecto "Unladen Swallow" para fusionarlas en Python. Pero hasta donde yo sé, solo para Python 3. Ver PEP 3146 para más detalles.

+0

AFAIK, EE. UU. No es un iniciador en este momento debido a los requisitos de memoria severos y los tiempos de inicio prolongados, aunque estoy seguro de que se resolverá (tal vez con el perfilado previo que muchos han sugerido). – StuFuller

+0

Si con "no principiante" te refieres a "pre-alfa", entonces sí. Unladen Swallow está aprobado para integrarse con CPython, y no hay barreras significativas para que eso suceda, una vez que se realiza el trabajo pertinente. –

+1

La comunidad de desarrolladores no parece tener mucho entusiasmo para seguir adelante con Unladen Swallow para Python 3. Quizás confiaban en el soporte de Google para ese trabajo, pero de la lista de correo parece que Google ha movido esos desarrolladores a otra trabajo que es de mayor prioridad para Google. –

Cuestiones relacionadas