¿Qué tan importante es la performance de un lenguaje en la vida real?
Comparar lenguajes por velocidad en benchmarks simples puede ser engañoso. Analizamos cómo cambian las diferencias en arquitecturas complejas y qué conviene mirar en proyectos reales.
Cuando se habla de lenguajes de programación, uno de los debates clásicos gira en torno a la performance. ¿Qué lenguaje es más rápido? ¿Python o Go? ¿JavaScript o Rust? Los benchmarks abundan y siempre vemos tablas que muestran cómo, en tareas simples y bien definidas, ciertos lenguajes sacan ventaja sobre otros.
Benchmarks simples: números que engañan
Es cierto: si comparás la ejecución de un algoritmo concreto y acotado (por ejemplo, procesar un array o hacer cálculos matemáticos), los lenguajes compilados como Go, Rust o C suelen ser considerablemente más rápidos que los lenguajes interpretados como Python o JavaScript.
Estas diferencias pueden ser notorias —a veces de un orden de magnitud o más— y suelen ser el argumento central de quienes defienden a capa y espada un lenguaje por encima de otro.
Sistemas reales: el impacto de la arquitectura
Sin embargo, la realidad de los sistemas modernos es mucho más compleja. En arquitecturas grandes, ya sean monolitos robustos o plataformas orientadas a microservicios, la performance del sistema raramente depende solo de la velocidad de ejecución del lenguaje.
¿Por qué?
- I/O, redes y bases de datos: La mayoría de los cuellos de botella en sistemas complejos aparecen en el acceso a recursos externos, no en la CPU.
- Paralelismo y escalabilidad: Muchas veces, escalar horizontalmente (más instancias, más servicios) tiene más impacto que el lenguaje subyacente.
- Optimización global: En grandes sistemas, decisiones de arquitectura, diseño de APIs, caché, balanceo de carga y otros factores suelen ser más determinantes para la performance final.
De hecho, no es raro ver que, bien diseñados, sistemas escritos en lenguajes más “lentos” (como Python) rinden a la par de otros hechos en lenguajes supuestamente más veloces, porque la infraestructura, la base de datos y la red son los verdaderos límites.
¿Qué conviene mirar?
A la hora de elegir un lenguaje para un proyecto real, tiene sentido mirar:
- Facilidad de desarrollo y mantenimiento
- Ecosistema y soporte de librerías
- Productividad del equipo
- Capacidad de escalar y monitorear el sistema
- Experiencia previa y talento disponible
La velocidad pura importa, pero casi nunca es el único factor clave en proyectos complejos.