La mayoría de los que trabajamos en desarrollo nos centramos en proyectos del tipo CRUD, más o menos complejos pero que finalmente capturamos, modificamos y persistimos información desde un interfaz de usuario hasta una base de datos vía backend.
Mientras, miramos de reojo con envidia a los que se dedican a la creación de videojuegos, la principal motivación inicial de la mayoría de los programadores para dedicarse a esto de picar código.
Sin embargo existe una miríada de proyectos informáticos que requieren de conocimientos poco habituales o, como es en el caso de los cálculos en las simulaciones de modelos económicos, con necesidades específicas que marcan incluso el lenguaje de programación más óptimo.
Los resultados del más rápido
Lo que han hecho los dos investigadores - S. Boragan Aruoba y Jesús Fernández-Villaverde – es comparar el rendimiento puro de la implantación de un algoritmo matemático con un variado listado de lenguajes (C++11, Fortran 2008, Java, Julia, Python, Matlab, Mathematica y R) tanto en plataformas Mac como Windows.
El algoritmo, que prueba la velocidad de ejecución del código generado, es una formula indescriptible para el resto de los mortales; los cuales nos manejamos con matemáticas básicas por no decir mediocres.
Y la conclusión a la que han llegado los investigadores es que C++11 bate por mucho al resto de los lenguajes. Siendo el ganador absoluto la compilación ejecutada sobre OSX, seguida por los pelos por la versión Windows.
Alguna debilidad del estudio
Como diría el dicho “zapatero a sus zapatos” y, como desarrollador, veo pequeñas debilidades en el estudio que, sin cambiar el hecho fundamental de que C++ es el lenguaje que produce el código con mayor rendimiento, pueden impactar en la utilidad final del estudio.
Así, aún reconocido por los propios autores, existe la carencia de no incluir los potentes lenguajes funcionales como F#, en teoría mucho más optimizados a la ejecución de cálculos como los codificados.
Tampoco se utiliza la misma plataforma de hardware para comprobar bajo qué sistema operativo es más rápida la ejecución de los algoritmos, siendo especialmente crucial la diferencia de RAM (12Gb uno, 16Gb el otro), de versión de procesador Intel i7, o de las arquitecturas de las plataformas.
Además lo ideal es que hubieran añadido una máquina de características similares pero con el sistema operativo Linux. Porque asemejar el OSX con un Unix o un Linux es un error bastante importante dada la posibilidad de optimización del sistema operativo de Linus Torval.
Es más, aunque es un grado de conocimiento totalmente fuera del ámbito de los investigadores, podrían haber probado con sistemas operativos específicos para procesos de cálculos masivos o, incluso, procesamiento en paralelo en plataformas Cloud.
Y, para mí, la mayor debilidad es que centran la recomendación solamente en la fuerza bruta, cuando cualquier programador moderno les señalaría que la legibilidad y el mantenimiento son críticos.
De nada sirve escribir un complejo algoritmo que después nadie sea capaz de mejorar, corregir o evolucionar por ser ilegible. O que se escriba la aplicación con una arquitectura ineficiente, pobre o confusa.
Aun así, estoy convencido que las conclusiones del estudio son plenamente válidas encumbrando a C++ como el lenguaje más potente para los economistas.
Vía | Nada es Gratis
Más información | A Comparison of Programming Languages in Economics, Código fuente de los algoritmos en GitHub