De Python 2 a Python 3

Posted by in Python

En una entrada ya antigua, se describió cómo disponer en la misma máquina de Python 2.7 y Python 3.3. Pero …

¿existen cambios tan importantes como para que ambas versiones tengan problemas de compatibilidad?

La respuesta es . Un cambio en el comando print “hola” de Python 2.x frente a print(“Hola”) de Python 3.x da una idea de dicha incompatibilidad.

Para ayudarnos en esa migración, os aconsejo visitar la web python3porting.com, donde por capítulos, detalla el proceso de migración a la versión 3.x.

Realizar la migración puede automatizarse gracias a 2to3, pero no solo eso. Tambien han creado la herramienta que permite migrar de Python 3 a Python 2, mediante 3to2.

Si quieres conocer los principales cambios entre la version 2 y la 3, te recomiendo este notebook http://htmlpreview.github.io/?https://github.com/rasbt/python_reference/blob/master/tutorials/key_differences_between_python_2_and_3.html, donde puedes ver cómo tendrás que adaptar a la nueva sintaxis.

Python 2.x es todavía el favorito

Aunque Python 3 está disponible desde 2008, en este magnifico artículo http://alexgaynor.net/2013/dec/30/about-python-3/ (está en inglés) podeis comprobar que pese a las teóricas ventajas de Python 3, el más usado es hoy en día Python 2.x, y parece que seguirá así por bastante tiempo, si no hay un in-volución para volver a unir los caminos ahora separados de Python 2 y Python 3.

A pesar de que tenía instaladas ambas versiones hace bastante tiempo, he terminado desistalando todo Python 3 para centrarme exclusivamente en desarrollar Python 2.7. Ahora me puedo sentir bien conmigo mismo porque no soy una especie “rara”, porque … Python 2 es todavía el favorito!

Aquí teneis otra entrada donde se describe el lento traspaso de Python 2 a la versión 3, entre otras cosas porque los módulos en Python 3 no están siendo migrados con la velocidad que se esperaba, y claro …. si no se avanza, se mantiene programando en Python 2.7.

Sin embargo, poco a poco empiezan a aparecer adeptos a Python 3, y para ejemplo, esta entrada: http://sealedabstract.com/rants/python-3-is-fine/. Es largo, pero argumenta muy bien las bondades de la versión 3.

¿Cuando me moveré yo a Python 3.x?

La respuesta, ahora mismo, es cuando me fuercen las circunstancias, y la más fundamental es que ESRI ArcGIS decida que es hora de cambiar Python 2.6.5 (las nuevas versiones de ArcGIS están ya trabajando con Python 2.7.x) por Python 3, y de momento, no parece que vaya a ocurrir. Lo que sí es cierto es que procuro escribir el código para que sea ejecutable en ambas versiones sin ningun tipo de modificación, a pesar de las características de una y otra versión.

Aquí puedes ver un análisis de cómo Python 3 va ganando adeptos: blog.frite-camembert.net/python-survey-2014.html.

Mientras tanto, lee el siguiente párrafo:

Escribiendo código compatible

Sin duda, lo mejor es escribir código que sea compatible con ambas versiones, y en este sentido, es muy interesante que leas estas recomendaciones: http://python-future.org/compatible_idioms.html.

Una buena opción de lectura es el libro Porting to Python 3, para que escribas código compatible 2 y 3, o más bien, para que pienses que tu código pueda ejecutarse tanto en uno como en otro, además de que poco a poco, Python 3 va ganando adeptos.

Debo admitir que en las últimas semanas ya he probado Python 3 en algunas máquinas, y que gracias a escribir código compatible, son mínimas las modificaciones que he realizado en varios proyectos que tengo en activo, por lo que no me ha resultado traumático las primeras experiencias con Python 3.

Por último, comentar que Python 2.7 dejará de ser actualizada desde el 1 de Enero de 2020. Aún queda, pero … para que lo sepas!

Ahora sí que estareis todavía más liados, eh? Buen día!

Google+ Comments - Comentarios Google+