NCSC dice que es urgente actualizar el código de Python 2, ya que su fecha de expiración es el 1 de enero del 2020

La fecha de vida de (EOL) para Python 2 ha tardado en llegar, pero finalmente está a la vista, la NCSC comenta que al partir del 1 de enero dedl 2020, Python 2 ya no será compatible. Esto a que no habrá más correcciones de errores o actualizaciones de seguridad por parte de los desarrolladores de Python.

Si aun, todavía usas Python 2.x, es hora de actualizar el código a Python 3. Y si continua usando módulos de no compatibles, estará arriesgando la seguridad de su organización y sus datos, ya que tarde o temprano aparecerán fallos y vulnerabilidades que nadie ha arreglado.

Python 2.x y su escala de problema.

Se muestra una tabla, donde diez paquetes populares de Python y sus estadísticas del Índice de paquetes de Python, en un repositorio de software desarrollador y creado para la comunidad de Python. Estos datos solo son de junio del 2019.

Como se observa la mayoría de las descargas de paquetes siguen siendo para versiones de Python 2.x, y como se puede ver en el mejor de los casos el paquete de Web Flask se descarga principalmente para Python 3.x

Incluso si solo una parte de estas descargas se utilizan en proyectos en vivo, la EOL de Python 2 podría afectar la seguridad de millones de sistemas.

PackagePython 2Python 3Unknown Versión
Colorama82.07%17.71%0.22%
Botocore72.86%26.84%0.30%
Urllib364.14%35.50%0.37%
Requests53.37%46.02%0.61%
Scikit-learn43.80%55.90%0.30%
NumPy40.69%58.70%0.61%
Pillow37.78%61.31%0.91%
TensorFlow37.66%61.25%1.09%
Matplotlib33.17%66.34%0.49%
Flask31.28%68.33%0.39%

Problemas que causara por la desaparición de Python 2.

Hay muchos he infinidad de problemas causados por el final de la vida de Python 2.

Dependencias.

Muchos proyectos populares como Numpy, Requests y TensorFlow se han comprometido a abandonar el soporte para Python 2.x esto para el 2020 y algunos ya lo han hecho.

Por el que significa que se requiere utilizar las últimas funciones de sus módulos favoritos, necesitará usar Python 3.x. Y cuando se requiera actualizar, más habrán cambiado las versiones de dependencias de Python 3, y esto sera más difícil la actualización.

Esto puede estar frenado para otros desarrolladores.

Si mantiene una biblioteca de la que dependen otros desarrolladores, puede estar evitando que se actualicen a 3. Al detener a otros desarrolladores, aumenta indirectamente y probablemente sin querer los riesgos de seguridad de los demás.

No puede publicar ningún código fuera de su organización, pero considere a sus colegas que también pueden estar usando su código internamente.

Te estás perdiendo las últimas funciones.

Python 3 tiene una multitud de nuevas características que te estás perdiendo, que incluyen:

  • El rendimiento de la expresión: permite que un generador delegue parte de sus operaciones a otro generador.
  • Cadenas Unicode: Unicode es más fácil de manejar.
  • La función de impresión: la función de impresión tiene características adicionales que la hacen más flexible.
  • Vistas e iteradores en lugar de listas: algunas API conocidas ya no devuelven listas. Por ejemplo, los diccionarios devuelven vistas de las claves, valores o ambos.
  • La declaración ‘multi-with’: las declaraciones complejas son más fáciles de leer.
  • Desempaquetado con * y **: usos extendidos del operador de desempaquetado * iterable y el operador de desempaquetado de diccionario **. Ahora es posible utilizar un número arbitrario de operadores de desempaque en llamadas a funciones.
  • Argumentos de solo palabras clave: permite que los argumentos estén presentes después de un argumento varargs.
  • F-strings: un nuevo tipo de literal de cadena evaluado en tiempo de ejecución que puede contener cualquier expresión válida de Python.
  • Montones y montones de aceleraciones y optimizaciones.

Cuando se lanzó Python 3.0, algunas de las nuevas características se incorporaron a Python 2.7 y pueden ser familiares. Si se ha quedado atascado con la versión 2.6 o inferior, puede ser nuevo para usted.

Ayuda para los desarrolladores.

Portar código Python 2.x a Python 3 puede ser un proceso bastante desalentador. Afortunadamente, hay herramientas y recursos disponibles para hacerlo más fácil.

Can I Use Python 3 es un programa que verifica las dependencias de su proyecto para ver si alguno le impide usar Python 3. Use este programa para ver si necesita intercambiar cualquier biblioteca atascada en Python 2.x. Si este es el caso, puede valer la pena visitar la página de inicio de la biblioteca para ver si hay planes para transferir a 3.

2to3 es un programa de Python que intenta convertir el código fuente 2.x en 3. Por lo general, se instala con el intérprete de Python como un script. Puede ejecutar este programa sin escribir ningún cambio, si solo desea ver una diferencia de cada cambio que hará en su código fuente. Tenga en cuenta que esto no es perfecto, es posible que aún deba corregir algunos códigos manualmente.

Compatibilidad con Python 3: una guía detallada es un libro electrónico gratuito y de código abierto que lo guía a través del proceso de agregar compatibilidad con Python 3. El libro explica algunos problemas comunes de migración que puede encontrar y enumera las formas en que puede mejorar su código fuente utilizando las nuevas funciones de Python 3.

Six es una biblioteca de compatibilidad de Python 2 y 3 que proporciona a los desarrolladores una forma de escribir código que es compatible con Python 2 y 3. Al usar esta biblioteca, los desarrolladores tienen la opción de elegir qué versión del intérprete de Python usan para ejecutar su código. Si decide usar esta biblioteca, asegúrese de que su código tenga en cuenta el hecho de que el número de versión de Python puede aumentar a 4.0 pronto (en el momento de escribir la última versión es 3.7.4).

Utilice las experiencias de otros para ayudarlo: muchas personas han publicado su experiencia de portar su base de código. Dropbox migró su base de código a Python 3 en 2018 y escribió una publicación de blog que detalla su experiencia.

El sitio web de Python también tiene documentación que puede resultarle útil.

La migración no es una opción.

Si no es posible migrar su base de código a Python 3, otra opción es pagarle a una empresa comercial para que admita Python 2 por usted.

Al menos una compañía ya ha anunciado un paquete de soporte para paquetes de terceros Python 2 y Python 2.

Algunas distribuciones de Linux contienen Python 2 y serán compatibles después de su fin de vida. Por ejemplo, CentOS 7 y Debian 10 usan Python 2 y serán compatibles con 2024, pero se desconoce cómo será este soporte.

Una oportunidad para mejorar.

El mantenimiento es un elemento importante de cualquier ciclo de vida de desarrollo de software (SDLC). Parte de este paso es mejorar el rendimiento del software y la seguridad, lo que se puede lograr actualizando a Python 3.

En otras palabras, si todavía usa Python 2, esta es una oportunidad para mejorar la forma en que administra sus dependencias de software y minimiza su deuda de seguridad.

No ignores los riesgos.

La NCSC siempre ha enfatizado la importancia de parchear. No siempre es fácil, pero aplicar parches es una de las cosas más fundamentales que puede hacer para proteger su tecnología.La NCSC siempre ha enfatizado la

El ransomware WannaCry proporciona un ejemplo clásico de lo que puede suceder si ejecuta un software no compatible. Infectó más de 230,000 computadoras, causando grandes interrupciones en todo el mundo. Más recientemente, la violación de Equifax ha resultado en un acuerdo de hasta $ 700 millones.

Al tomar la decisión de continuar usando Python 2 después de su fin de vida, usted acepta todos los riesgos que conlleva el uso de software no compatible, al tiempo que sabe que hay una versión segura disponible.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: