¿Por qué TypeScript supera a Python?

Gabriel Melo

La popularidad de TypeScript

Es evidente que JavaScript se ha convertido en una gran parte del mundo del desarrollo web y también ha hecho su transición hacia el desarrollo de aplicaciones móviles. Hay una enorme cantidad de paquetes disponibles para los desarrolladores a través de NPM para ayudar con el desarrollo. Este ecosistema de NPM es extremadamente grande y está en constante crecimiento, y los desarrolladores contribuyen a él diariamente. Esta popularidad es algo de lo que TypeScript se ha beneficiado.

JavaScript, por su naturaleza, es un lenguaje flexible. Permite a los desarrolladores utilizar una combinación de programación orientada a objetos y programación funcional. Pero la flexibilidad que posee JavaScript actúa como un arma de doble filo. Por un lado, el lenguaje es rápido, menos estricto y multi-paradigma, lo que significa que se pueden generar múltiples soluciones para un solo problema.Por otro lado, es fácil escribir código malo y vulnerable, lo que dificulta el rendimiento, la seguridad y la escalabilidad.

En un intento por hacer que JavaScript sea más escalable, Microsoft lanzó Typecript, que es un superconjunto de JavaScript. Google incluso lo convirtió en el idioma principal utilizado para escribir Angular, que es un marco de interfaz de código abierto que crearon. TypeScript tiene como objetivo eliminar errores tontos, errores tipográficos y eliminar la ambigüedad de su código. Los tipos de variables (es decir, String, Boolean, etc.) no pueden cambiar dinámicamente durante la ejecución como pueden hacerlo en JavaScript simple.

En cambio, sus tipos deben definirse explícitamente antes de usarlos y no pueden cambiar después. Debido a que el motor JavaScript V8 no puede interpretar Typecript, el código de Typecript debe pasar por un compilador, que lo transforma en una versión de JavaScript compatible con todos los navegadores. La versión de destino predeterminada es ES2015, aunque se puede configurar. Typecript, como JavaScript, también tiene el beneficio adicional de ser utilizado en el frontend o en el backend de una aplicación web.

Escritura estática opcional

TypeScript lleva la escritura estática al mundo de JavaScript y permite a los desarrolladores ajustar el nivel de rigor al crear aplicaciones.Cuando está habilitado, la escritura estática elimina la flexibilidad y detecta errores temprano. Pero estos no son los únicos pros de la escritura estática. La escritura estática le da a su código más estructura, mejora la depuración y la refactorización, al mismo tiempo que hace que su código parezca que está auto-documentado.

El compilador de Typecript alerta a los desarrolladores sobre errores relacionados con los tipos, asegurando que estos errores no se descubran solo en tiempo de ejecución. Esto da como resultado un mejor rendimiento durante la ejecución.

Tomemos esta función de JavaScript, por ejemplo:

 

function addNumbers (a, b) {
return a + b
}

Esta función devuelve la suma de dos números. En JavaScript, puedo llamar a la función anterior de la siguiente manera:

addNumbers(1, 5) // 6
addNumbers(1, «5») // 15

En la segunda llamada, obtenemos un resultado inesperado. Aunque asumimos que los argumentos pasados ​​son números, nuestra función aún se ejecuta con lo que sea que se le haya dado. Pequeños errores como estos pueden arruinar su proyecto.

TypeScript lo ayudará a evitar esto de la siguiente manera:

function addNumbers (a: number, b : number) {
return a + b
}

Ahora, si intentas llamar a la función de esta manera:

addNumbers(1, «5»)

Un buen editor de código, por ejemplo, Visual Studio Code, le permitirá saber que está intentando algo mal. En este caso, el mal argumento se subraya con marcas rojas:

Puede ver que los errores futuros ya se están evitando incluso antes de que se compile el código. Eso es lo que hace que TypeScript sea tan poderoso. Debido a que Python se escribe dinámicamente, los tipos de variables solo se determinan en tiempo de ejecución, lo que hace que consuma fragmentos de memoria durante la ejecución. Un gran revés como este hace que Python sea altamente inadecuado para procesos que requieren mucha memoria.

Presencia informática móvil

Con un gran cambio de computadoras de escritorio a teléfonos móviles, los teléfonos inteligentes representan el 53,3% del tráfico web en todo el mundo. Han seguido rondando la marca del 50% desde 2017, por lo que es bastante obvio que el desarrollo móvil no va a ninguna parte. Aunque Python tiene su importancia en la ciencia de datos y las plataformas de escritorio y servidor, no tiene una voz fuerte en la informática móvil. Muy pocas aplicaciones móviles se desarrollan en Python y apenas se ve en la interfaz de aplicaciones.

TypeScript se puede utilizar junto con otros marcos de JavaScript (por ejemplo, React Native) para crear aplicaciones móviles. Con un buen IDE, TypeScript acelera el proceso de desarrollo de aplicaciones a escala empresarial.

 

Velocidad

 

Como desarrollador, la velocidad es un factor importante a tener en cuenta al desarrollar aplicaciones. Este factor se puede analizar de diferentes maneras, algunas de las cuales incluyen:

  • Proceso de desarrollo

  • Tiempo de ejecución / ejecución

  • Rendimiento crudo

Python acelera el proceso de desarrollo porque es limpio y fácil de escribir, y puede poner una aplicación en funcionamiento rápidamente. Tampoco tendría que pasar por la molestia de la escritura estática, ya que todo estaría por hacer en tiempo de ejecución.

TypeScript, por otro lado, tiende a verse detallado y lleva bastante tiempo armar una aplicación.La diferencia en la ejecución en tiempo de ejecución entre estos dos lenguajes no es tan significativa. Para aplicaciones a pequeña escala donde no se requiere la capacidad máxima de la CPU, ambos lenguajes funcionarían bien y son bastante rápidos.Las aplicaciones más grandes requieren tareas que son tediosas en el compilador y pueden ralentizar significativamente el tiempo de ejecución en un proyecto de Python en comparación con un proyecto de TypeScript.

En términos de rendimiento en bruto, Typescript es mucho más rápido que Python.Al codificar tareas que consumen mucha memoria en Python, por ejemplo, juegos que utilizan gráficos 3D de alta calidad, la CPU comienza a sufrir un impacto y se produce una caída significativa en el rendimiento.A diferencia de TypeScript, Python no es asincrónico en su esencia. Requiere la biblioteca AsyncIO para poder lograr la programación asincrónica.Python también tiene lo que se llama GLI (bloqueo de intérprete global), que permite que solo se ejecute un hilo a la vez. Si bien esto es una ventaja para el rendimiento, dificulta el paralelismo.

Versatilidad

 

Como se mencionó anteriormente, TypeScript se puede usar tanto en el frontend como en el backend de una aplicación web. Los marcos de JavaScript populares como React y Vue se integran bien con TypeScript. También es compatible con Node.js, que se puede utilizar para lograr la funcionalidad del lado del servidor. Debido a que TypeScript se puede usar en ambos lados de una aplicación web, resulta más conveniente ceñirse a este lenguaje y mantener la base de código cohesiva en lugar de tener que dominar un lenguaje del lado del servidor completamente diferente para lograr la misma funcionalidad.

Conclusión

 

No pretendo desacreditar a Python como lenguaje de programación. Como muestra el gráfico, TypeScript lo superó solo por un pequeño margen, por lo que no es algo de lo que alarmarse todavía.

Python sigue siendo un lenguaje asombroso de uso general que hace que la programación sea divertida. Su sintaxis simple hace que el lenguaje sea amigable para cualquier principiante. Python también se puede usar para automatizar casi cualquier tarea, lo cual es genial. Nueve de cada diez veces, es la primera opción de un principiante para un lenguaje de programación.

Todos podemos debatir sobre si usar TypeScript sobre Python o enfrentar los lenguajes de programación entre sí. Pero al final del día, no importa. Lo que es pertinente para usted como desarrollador es sentirse cómodo con las herramientas que usa y usar la herramienta adecuada para la tarea correcta.

jjjjjj

Deja una respuesta

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