¿Por qué Python no es el lenguaje de programación del futuro?

Lo que hace que Python sea popular en este momento

El éxito de Python se refleja en las tendencias de desbordamiento de pila , que miden el recuento de etiquetas en las publicaciones en la plataforma. Dado el tamaño de StackOverflow, este es un buen indicador de la popularidad del idioma.

Instantánea de etiquetas en varios lenguajes de programación en StackOverflow.

Si bien R se ha estancado en los últimos años, y muchos otros idiomas están en constante declive, el crecimiento de Python parece imparable. Casi el 14% de todas las preguntas de StackOverflow están etiquetadas como “python”, y la tendencia está subiendo. Y hay varias razones para eso.

Es viejo


Python ha existido desde los años noventa. Eso no solo significa que ha tenido mucho tiempo para crecer. También ha adquirido una comunidad grande y solidaria.
Entonces, si tiene algún problema mientras está codificando en Python, hay muchas posibilidades de que pueda resolverlo con una sola búsqueda en Google. Simplemente porque alguien ya habrá encontrado su problema y escrito algo útil al respecto.


Es amigable para principiantes


No es solo el hecho de que ha existido durante décadas, dando a los programadores el tiempo para hacer tutoriales brillantes. Más que eso, la sintaxis de Python es muy legible para los humanos.
Para empezar, no es necesario especificar el tipo de datos. Simplemente declaras una variable; Python entenderá por contexto si es un número entero, un valor flotante, un booleano u otra cosa. Esta es una gran ventaja para los principiantes. Si alguna vez ha tenido que programar en C ++, sabe lo frustrante que es que su programa no se compile porque cambió un flotante por un entero.
Y si alguna vez ha tenido que leer código Python y C ++ uno al lado del otro, sabrá lo comprensible que es Python. Aunque C ++ se diseñó teniendo en cuenta el inglés, es una lectura bastante irregular en comparación con el código de Python.

Es versátil

Dado que Python ha existido durante tanto tiempo, los desarrolladores han creado un paquete para cada propósito. En estos días, puedes encontrar un paquete para casi todo.
¿Quieres hacer números, vectores y matrices? NumPy es tu chico.
¿Quieres hacer cálculos para tecnología e ingeniería? Usa SciPy .
¿Quieres ir a lo grande en manipulación y análisis de datos? Dale una oportunidad a los pandas .
¿Quieres comenzar con Inteligencia Artificial? ¿Por qué no usar Scikit-Learn ?
Independientemente de la tarea computacional que intente administrar, es probable que exista un paquete de Python. Esto hace que Python se mantenga al tanto de los desarrollos recientes, se puede ver en el aumento del aprendizaje automático en los últimos años.

Desventajas de Python – y si serán fatales

Según las elaboraciones anteriores, puede imaginarse que Python se mantendrá al tanto de la mierda en los siglos venideros. Pero como todas las tecnologías, Python tiene sus debilidades. Revisaré los defectos más importantes, uno por uno, y evaluaré si son fatales o no.

Velocidad

Python es lento. Como, muy lento. En promedio, necesitará entre 2 y 10 veces más tiempo para completar una tarea con Python que con cualquier otro idioma.
Hay varias razones para eso. Una de ellas es que está escrita de forma dinámica: recuerde que no necesita especificar tipos de datos como en otros idiomas. Esto significa que se debe usar mucha memoria, porque el programa necesita reservar suficiente espacio para cada variable que funcione en cualquier caso. Y mucho uso de memoria se traduce en mucho tiempo de computación.
Otra razón es que Python solo puede ejecutar una tarea a la vez. Esto es una consecuencia de los tipos de datos flexibles: Python necesita asegurarse de que cada variable tenga solo un tipo de datos, y los procesos paralelos podrían estropear eso.
En comparación, su navegador web promedio puede ejecutar una docena de hilos diferentes a la vez. Y también hay algunas otras teorías.

Pero al final del día, ninguno de los problemas de velocidad importa. Las computadoras y los servidores se han vuelto tan baratos que estamos hablando de fracciones de segundos. Y al usuario final realmente no le importa si su aplicación se carga en 0.001 o 0.01 segundos.

Alcance

Originalmente, Python tenía un alcance dinámico . Básicamente, esto significa que, para evaluar una expresión, un compilador primero busca el bloque actual y luego sucesivamente todas las funciones de llamada.
El problema con el alcance dinámico es que cada expresión necesita ser probada en cada contexto posible, lo cual es tedioso. Es por eso que la mayoría de los lenguajes de programación modernos utilizan el alcance estático.
Python intentó hacer la transición al alcance estático, pero lo estropeó . Por lo general, los ámbitos internos, por ejemplo, las funciones dentro de las funciones, podrían ver y cambiar los ámbitos externos. En Python, los ámbitos internos solo pueden ver ámbitos externos, pero no cambiarlos. Esto lleva a mucha confusión.



Lambdas

A pesar de toda la flexibilidad dentro de Python, el uso de Lambdas es bastante restrictivo. Las lambdas solo pueden ser expresiones en Python, y no pueden ser declaraciones.
Por otro lado, las declaraciones y declaraciones variables son siempre declaraciones. Esto significa que Lambdas no se puede usar para ellos.
Esta distinción entre expresiones y declaraciones es bastante arbitraria y no ocurre en otros idiomas.

Los espacios en blanco hacen que el código sea más legible, pero menos mantenible. Foto de Irvan Smith en Unsplash

Espacios en blanco

En Python, utiliza espacios en blanco e indentaciones para indicar diferentes niveles de código. Esto lo hace ópticamente atractivo e intuitivo de entender.
Otros lenguajes, por ejemplo C ++, dependen más de llaves y punto y coma. Si bien esto puede no ser visualmente atractivo y apto para principiantes, hace que el código sea mucho más fácil de mantener. Para proyectos más grandes, esto es mucho más útil.
Los lenguajes más nuevos como Haskell resuelven este problema: dependen de espacios en blanco, pero ofrecen una sintaxis alternativa para aquellos que desean quedarse sin ellos.



Desarrollo móvil

Como estamos presenciando el cambio de escritorio a teléfono inteligente, está claro que necesitamos lenguajes robustos para construir software móvil.
Pero no se están desarrollando muchas aplicaciones móviles con Python. Eso no significa que no se pueda hacer; hay un paquete de Python llamado Kivy para este propósito.
Pero Python no se hizo con el móvil en mente. Entonces, aunque podría producir resultados aceptables para tareas básicas, su mejor opción es utilizar un lenguaje creado para el desarrollo de aplicaciones móviles. Algunos marcos de programación ampliamente utilizados para dispositivos móviles incluyen React Native, Flutter, Iconic y Cordova.
Para que quede claro, las computadoras portátiles y las computadoras de escritorio deberían existir durante muchos años. Pero dado que los dispositivos móviles han superado durante mucho tiempo el tráfico de escritorio, es seguro decir que aprender Python no es suficiente para convertirse en un desarrollador versátil experimentado.



Errores de tiempo de ejecución

Un script de Python no se compila primero y luego se ejecuta. En cambio, se compila cada vez que lo ejecuta, por lo que cualquier error de codificación se manifiesta en tiempo de ejecución. Esto conduce a un bajo rendimiento, consumo de tiempo y la necesidad de muchas pruebas. Como muchas pruebas.
Esto es genial para principiantes ya que las pruebas les enseñan mucho. Pero para los desarrolladores experimentados, tener que depurar un programa complejo en Python los hace salir mal. Esta falta de rendimiento es el factor más importante que establece una marca de tiempo en Python.

¿Qué podría reemplazar a Python en el futuro? Y cuándo

Hay algunos nuevos competidores en el mercado de lenguajes de programación:
  • Rust ofrece el mismo tipo de seguridad que Python: ninguna variable puede sobrescribirse accidentalmente. Pero resuelve el problema de rendimiento con el concepto de propiedad y préstamo. También es el lenguaje de programación más querido de los últimos años, según StackOverflow Insights .
  • Go es ideal para principiantes como Python. Y es tan simple que es aún más fácil mantener el código. Punto divertido: los desarrolladores de Go están entre los programadores mejor pagados del mercado.
  • Julia es un lenguaje muy nuevo que compite de frente con Python. Llena el vacío de los cálculos técnicos a gran escala: por lo general, uno habría usado Python o Matlab, y parcheado todo con bibliotecas C ++, que son necesarias a gran escala. Ahora, uno puede usar Julia en lugar de hacer malabares con dos idiomas.
Si bien hay otros idiomas en el mercado, Rust, Go y Julia son los que reparan parches débiles de Python. Todos estos lenguajes se destacan en tecnologías aún por venir, especialmente en Inteligencia Artificial. Si bien su participación en el mercado aún es pequeña, como se refleja en la cantidad de etiquetas StackOverflow, la tendencia para todas ellas es clara: hacia arriba.

Instantánea de etiquetas en varios lenguajes de programación en StackOverflow.

Dada la ubicua popularidad de Python en este momento, seguramente tomará media década, tal vez incluso un total, para que cualquiera de estos nuevos idiomas lo reemplace.
¿Cuál de los idiomas será? Rust, Go, Julia o un nuevo idioma del futuro? Es difícil de decir en este momento. Pero dados los problemas de rendimiento que son fundamentales en la arquitectura de Python, inevitablemente se tomará su lugar.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Más info

aceptar