La serpiente pitón está perdiendo lentamente su autoridad por Regadermawan Octubre de 2020

Foto de Tamara Gore en Unsplash

Desde que se lanzó Python a principios de la década de 1990, ha causado mucho revuelo. Claro, la comunidad de programación tardó al menos 2 décadas en apreciar su existencia, pero desde entonces ha superado con creces a C, C #, Java e incluso a Javascript en popularidad.

Aunque Python domina los campos de la ciencia de datos y el aprendizaje automático, y hasta cierto punto los cálculos científicos y matemáticos, tiene una desventaja en comparación con los lenguajes más nuevos como Julia, Swift y Java.

Uno de miyLos puntos impulsores detrás del crecimiento meteórico de Python fue lo fácil que fue Aprender y cuán poderoso fue de usar, lo cual es extremadamente tentador para principiantes e incluso para aquellos que evitan lejos de la programación porque sintaxis difícil y desconocida de lenguajes como C / C ++.

En esencia, enfatizaba considerablemente el lenguaje legibilidad del código. Gracias a su sintaxis concisa y expresiva, permitió a los desarrolladores expresar ideas y conceptos sin escribir mucho código de línea (como sería el caso en lenguajes de nivel inferior como C o Java). Su sencillez está dada, Python se integra sin problemas con otros lenguajes de programación (como interpretar tareas intensivas de CPU en C / C ++), lo que lo convierte en una ventaja para los desarrolladores políglotas.

Otra razón más de la versatilidad de Python es su gran uso en empresas (incluido FAANG) e innumerables empresas más pequeñas. Hoy encontrarás el paquete Python pro bonito todo lo que se te ocurra: para los cálculos científicos, tienes a Numpy, Sklearn Máquina Aprendizaje y afán por la visión por computadora.

Foto de Nick Abrams en Unsplash

Probablemente no lo crea. La velocidad generalmente se considera uno de los enfoques clave del desarrollador y es probable que continúe siendo impredecible cantidad de tiempo.

Entre las principales razones por las que Python es «lento» está realmente reduciéndose a 2 – Python sí interpretado a diferencia de compilado, que en última instancia conduce a tiempos de ejecución más lentos; y el hecho de que es ingresado dinámicamente (Python deriva automáticamente los tipos de datos variables durante la ejecución).

De hecho, este argumento de que «Python es lento» tiene una gran influencia entre los principiantes. Sí, es verdad. Pero sólo parcialmente.

Tomemos, por ejemplo, TensorFlow, la biblioteca de aprendizaje automático disponible en Python. Estas bibliotecas se escribieron en C ++ y se pusieron a disposición en Python, algo así como crear un «contenedor» para Python en torno a una implementación de C ++. Lo mismo es cierto para Numpy y, hasta cierto punto, para Caer.

Una de las principales razones de la lentitud de Python es la presencia de GIL (Global Interpreter Lock), que permite que solo se ejecute un hilo a la vez. Si bien esto aumenta el rendimiento de un solo subproceso, limita el paralelismo, donde los desarrolladores deben implementar programas de subprocesos múltiples en lugar de programas de subprocesos múltiples para mejorar la velocidad.

Cuando los objetos quedan fuera de alcance, Python tiene una colección de memoria automática. Su objetivo es eliminar muchas de las complejidades de la gestión de memoria que implican C y C ++. Debido a la flexibilidad (o la falta de ella) al ingresar tipos de datos, la cantidad de memoria que consume Python puede explotar rápidamente.

Además, algunos errores que Python puede no notar pueden ocurrir en tiempo de ejecución, lo que en última instancia ralentiza significativamente el proceso de desarrollo.

Foto de Yury Fresh en Unsplash

Con el gran cambio de las computadoras de escritorio a los teléfonos inteligentes, está claro que se necesitan lenguajes más sólidos para crear software móvil. Si bien Python tiene una presencia significativa en las plataformas de escritorio y servidor, tiende a perder el desarrollo móvil debido a la falta de una informática móvil sólida.

Se ha avanzado mucho en esta área en los últimos años, pero estas bibliotecas recién agregadas no son tan sólidas como sus competidores, como Kotlin, Swift y Java.

Recientemente, han aparecido en el radar lenguajes más nuevos como Julia, Rust y Swift, tomando prestados muchos buenos conceptos de diseño de Python, C / C ++ y Java. Oxido garantiza en gran medida la seguridad de la memoria y la concurrencia en tiempo de ejecución y ofrece interoperabilidad de primera clase con WebAssembly; Rápido es casi tan rápido como C gracias a su soporte para LLVM Compiler Toolchain y Julia ofrece E / S asincrónicas para tareas de E / S exigentes y es increíblemente rápido.

Python nunca se creó como el mejor lenguaje de programación. Nunca fue construido para funcionar en C / C ++ y Java. Fue construido como universal un lenguaje de programación que enfatizaba la sintaxis orientada al inglés y legible por humanos que permitía el rápido desarrollo de programas y aplicaciones.

Python, como cualquier otro lenguaje al final del día, es una herramienta. A veces es la mejor herramienta. A veces este no es el caso. La mayoría de las veces está «bien».

Entonces, ¿Python está muriendo como lenguaje de programación?

Casi no lo creo.

¿Está perdiendo su magia?

Ah, tal vez solo un poco. Solo un poco.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *