Todo se trata de la evolución, así hemos llegado hasta el punto en el que vivimos hoy día. Y por supuesto, esto involucra toda clase de saltos y cambios a los que hemos tenido que adaptarnos. En el mundo de la programación esto también aplica y hoy la lucha es entre Python 2 vs Python 3: ¿Cuál deberías aprender? Aquí te lo decimos.
Python 2 vs Python 3: ¿Cuál deberías aprender?
Historia
Antes de entrar en detalles con el artículo Python 2 vs Python 3: ¿Cuál deberías aprender? es importante conocer algo de su historia. Finalizando la década de los ochenta nacía en los países bajos un nuevo lenguaje de programación que planteaba sustituir al lenguaje de programación ABC y manejaba ciertas excepciones que le permitían interactuar eficientemente con el sistema operativo Amoeba.
El nombre que le colocaron a este nuevo lenguaje fue Python, en honor al grupo de humoristas británicos Monty Python. Su creador, Guido Van Rossum lo desarrollo dentro de las instalaciones del CWI (Centrum Wiskunde & Informática) o Centro para las Matemáticas y la Informática.
Python se desarrolló para ser un lenguaje de programación de código abierto. Por tanto, es totalmente compatible con todas las distribuciones de GNU existentes a partir de la versión 2.1 ya que sí posee ciertas incompatibilidades con las versiones anteriores. Es un lenguaje multiparadigma.
Es decir, permite crear programas usando diferentes estilos de programación. Así que soporta programación orientada a objetos, programación imperativa y programación funcional. Python, es entre tantas cosas un lenguaje dinámico, multiplataforma que maneja una sintaxis de código verdaderamente legible.
Ahora bien, a pesar de que Python apareció a finales de los ochenta, no fue sino hasta el año 2000 que se lanzó la versión 2.0, versión que fue actualizándose hasta el año 2010 cuando alcanzo la 2.7. Sin embargo, ya para el 2008 también había sido lanzado Python 3.0 la cual para el 2016 había alcanzado ya versión 3.6.
De hecho, la 3.7 ya está en pleno desarrollo, y aunque Python 2.7 todavía se sigue usando, Python 3.6 está ganando cada vez más fuerza suplantando a su antecesor. Ciertamente, ya desde principio de este año 2018 Python 2 dejó de actualizarse, por lo que el camino parece conducirnos a todo a un solo lugar, a Python 3.
Dicho todo esto podemos comenzar con Python 2 vs Python 3: ¿Cuál deberías aprender? Analizando sus diferencias.
Diferencia
Si eres programador sabes que esto de emigrar a otros lenguajes o adaptarnos a otras versiones es algo común. Sin embargo, eso no significa que en ocasiones esto pueda resultarnos algo molesto.
Es decir, el ser humano se acostumbra muy rápido a las cosas, y odiamos cuando simplemente nos empujan fuera de nuestra zona de confort. Pero está claro que solo así crecemos y avanzamos y tratándose de Python siempre será avanzar a algo mejor. En este artículo Python 2 vs Python 3: ¿Cuál deberías aprender? Te mostramos algunas diferencias significativas que te pueden convencer de cambiar.
Camina hacia el futuro
Ciertamente, Python 2 representa todo un legado de más de una década, y evidentemente sigue siendo la popular en muchas compañías gracias a su sólido software.
Sin embargo, Python 3 es el futuro y no solo las empresas comienzan a moverse hacia lo nuevo sino que si eres un principiantes que deseas aprender de este lenguaje es mucho mejor que lo hagas en la nueva versión que en una que comienza a volverse obsoleta.
Las incompatibilidades
Aunque muchas bibliotecas de Python 2 y Python 3 son similares o compatibles, muchas otras definitivamente no lo son.
Desde luego, hay que echarle la culpa a los desarrolladores que crean estas bibliotecas para ser usadas estrictamente con Python 3. Aunque, Python 2 tiene también bibliotecas antiguas que ya están en desuso y que por tanto no funcionan para nada en Python 3.
Claro que esto no significa que no podamos usar algunos mecanismos para mudar una biblioteca de 2 al 3 pero ¿para qué complicarse? Ni un principiante ni un experto requieren de algo así. Además, las bibliotecas de Python 3 son muy completas.
Mejor soporte Unicode
En Python 2, las cadenas se almacenan como ASCII de forma predeterminada y debíamos agregar una u’ si queríamos almacenarla como cadenas Unicode. En Python 3 esto ya no es necesario ya que las cadenas de texto se almacenan predeterminadamente en Unicode.
Esto es muy importante ya que Unicode es mucho más versátil que ASCII. Las cadenas Unicode pueden almacenar letras en distintos idiomas, números romanos, símbolos, emojis, etc., ofreciéndonos muchísimas más opciones.
Mejora la división entera
En Python 2, si escribes un número sin ningún dígito después del punto decimal, redondea su cálculo al número entero más cercano. Por ejemplo, si intentas dividir 5 entre 2 (5/2) el resultado será 2 debido al redondeo.
Tendrías que escribirlo como 5.0 / 2.0 para obtener la respuesta exacta de 2.5. Sin embargo, en Python 3, la expresión 5/2 devolverá el resultado esperado de 2.5 sin tener que preocuparse por agregar esos ceros adicionales.
Sin duda, este pequeño y simple ejemplo demuestra como la sintaxis de Python 3 termina siendo mucho más intuitiva, algo que le dará mucha más comodidad a los novatos que intentan aprender el lenguaje de programación Python.
Diferencias de Sintaxis a la hora de hacer print
Es probable que veas esta diferencia un tanto trivial, y es que sin duda lo es ya que no afecta en nada la funcionalidad de Python pero es una diferencia de sintaxis de declaración de print muy notoria que no pudimos pasar por alto.
En Python 3, la declaración de print ha sido reemplazada por una función print (). Por ejemplo, en Python 2 se escribe print “hola” pero en Python 3 se escribe print(“hola”). Si eres un principiante que busca comenzar a aprender lenguaje de programación en Python, no deberías preocuparte por nada ya que esto no va a afectarte mucho.
Sin embargo si comenzaste con Python 2, el cambio puede hacerte tropezar varias veces aunque es cuestión de acostumbrarse.
Cuándo elegir Python 2
Bien, con todo esto no significa que Python 2 está completamente muerto. Algunas situaciones podrían llevarte a necesitar o a conocer Python 2 como por ejemplo si deseas convertirte en ingeniero DevOps y trabajar con herramientas de administración de Fabric o Ansible.
También podría suceder que la empresa en la que vas a trabajar tiene un código heredado en Python 2, esto obligatoriamente te hará tenerlo que usar. Sin embargo, no te preocupes ya que afortunadamente, cualquiera que sea la versión con la que comiences, será bastante fácil transferir tu conocimiento de una a la otra si es necesario.
Cuándo elegir Python 3
Esta pregunta sin duda es más simple. ¿Cuándo debemos elegir aprender o usar Python 3?
Python 3 es el futuro, es más completo, dinámico, y aunque para los expertos en Python 2 sea al comienzo algo tedioso realmente Python 3 es más cómodo. No nos neguemos a un cambio prometedor.
Pues bien, con esto concluye la lucha entre Python 2 vs Python 3: ¿Cuál deberías aprender? Así que ya tienes todo lo que necesitas para tomar la mejor decisión.