Por qué no debes usar Python 2.6



Una traducción del artículo Stop using Python 2.6 please, por Brett Cannon.

Python 2.6 ha estado en el rubro por 7 años, lanzado por primera vez en 2008 y en última ocasión en el 2013 (como se observa en esta bonita imagen provista por Fluent Python en Twitter y utilizada con permiso).

Soporte de versiones de Python

A esta altura es software sin soporte ya que el equipo de desarrollo de Python mantiene (reparando errores o bugs) únicamente versiones con nuevas características hasta la próxima versión con nuevas funcionalidades — generalmente 18 meses — y provee arreglos de errores que comprometan la seguridad por cinco años luego del lanzamiento inicial (Python 2.7 es una excepción ya que recibe actualizaciones desde su primer lanzamiento en 2010 y lo hará durante 10 años hasta 2020). En otras palabras, a menos que pagues por soporte a través de algo como Red Hat Enterprise Linux, Python 2.6 no tiene soporte.

Y todavía hay gente que lo sigue usando. Ahora estoy seguro de que hay gente que tiene buenas razones para mantenerse en Python 2.6, y eso está bien. Consideren este artículo como una petición dirigida a los desarrolladores que pueden dejar Python 2.6 de por favor hacerlo por el bien de todos, desde tu código hasta la gente de cuyo código dependes.

Para usuarios de Python 2.6

Si estás usando Python 2.6 y no le pagas a nadie para que le dé soporte, por favor actualiza a Python 2.7. Estás ejecutando software que no está siendo mantenido (no recibe actualizaciones de seguridad ni reparaciones de errores) y deberías considerar moverte a una nueva versión sólamente por esas razones.

Si estás usando Python 2.6 en una plataforma comercial de Linux, por favor chequea si el fabricante soporta Python 2.7. RHEL tiene sus colecciones de software soportado que provee una versión totalmente soportada de Python 2.7. Hay un equivalente de CentOS para quellos en esta plataforma. Migrar a Python 2.7 te dará nuevas funcionalidades como sets literales, comprehensión de los tipos set y dict, etc. Entonces mientras esos de ustedes que son usuarios de RHEL y CentOS no están en la misma posición que aquéllos usando Python 2.6 sin soporte comercial en términos de arreglos de errores, todavía se están perdiendo de algunos beneficios.

Pero una de las principales razones por las que les estoy pidiendo que migren a Python 2.7 es por el bien de los mantenedores de proyectos de los que ustedes dependen. Hay muchos proyectos que son desarrollados por gente que hace todo lo que puede para soportar a sus usuarios, incluyendo soportar versiones obsoletas de Python. Esto significa que no van a considerar abandonar el soporte para Python 2.6 hasta que vos dejes de usarlo. Eso lleva a aquellos proyectos a no poder usar las nuevas funcionalidades de Python 2.7 para escribir un mejor código que es más fácil de mantener. También se tienen que enfrentar a errores de Python 2.6.9 que pueden ser una verdadera molestia (y hablo desde la experiencia ya que caniusepython3 ha tratado con algunos). Por favor dense cuenta que si estás utilizando Python 2.6 voluntariamente mientras incluís otros proyectos en tu código, tu decisión está teniendo un efecto en cadena que causa trabajo extra que se expande más allá de tu alcance. Y esto no se detiene necesariamente a tus dependencias directas, ya que éstas luego tendrían que pedirle a sus propias dependencias que soporten Python 2.6 en tu favor, llevando a tu decisión de mantenerte en Python 2.6 a impactar en mucha gente (esta misma línea de argumentación se aplica a aquéllos que no estén migrando a Python 3).

Para mantenedores de proyectos que soportan Python 2.6

Como le comenté arriba a los usuarios de Python 2.6, tener que soportar Python 2.6 es trabajo extra en tu tiempo de desarrollo. Tienes que enfrentarte a errores que han sido solucionados en Python 2.7. Tampoco puedes utilizar nuevas funcionalidades de la última versión que te ayudan a mantener una base de código libre de errores. Es simplemente una situación insatisfactoria para ser comparada con no tener que soportar Python 2.6 (y lo mismo podría decirse cuando tienes que soportar Python 2.7 comparado con Python 3 únicamente).

Por desgracia los usuarios pueden ser un grupo muy conservador. Esto significa que algunos de ellos no considerarán moverse de Python 2.6 hasta que sean forzados; si estás esperando a que todos dejen dicha versión vas a estar un largo tiempo. Por esto te pido que consideres que de tu próxima versión (que tenga nuevas características) soporte únicamente Python 2.7 si aún no lo has hecho, para ayudar a los usuarios a ir hacia adelante (también te pediría que consideres que tu próximo lanzamiento importante soporte sólamente Python 3 para también ayudar a tus usuarios a moverse hacia adelante).

Por favor dejen de soportar Python 2.6 para hacer más fácil la vida de todos

La moraleja del artículo es que usar o soportar Python 2.6 es pérdida para todos. Hace que el código sea más difícil de mantener comparado a no tener que soportar Python 2.6 debido a tratar con errores y no usar nuevas funcionalidades que hacen el mantenimiento del código más fácil. Entonces si es posible para vos eliminar el soporte para Python 2.6, por favor tómate el tiempo y esfuérzate por hacerlo.

Y esperen un artículo similar para dejar el soporte de Python 2.7 en algún momento del 2016.



Deja un comentario