Con el precio de la luz por las nubes, tratar de ser más eficientes es un objetivo compartido en todo tipo de ámbitos. Estamos buscando planes B de todo tipo para minimizar dependencias y consumos extra. Y un área en el que también es posible plantear ese objetivo es el desarrollo software. ¿Cómo programar de forma más eficiente?
¿Qué lenguaje de programación gasta menos luz? Un estudio realizado por investigadores portugueses ya trataba de dar respuesta a esa pregunta en 2017. En su análisis —el código utilizado está disponible en GitHub— consideraron tanto el uso de memoria como la energía consumida en la ejecución de un conjunto de programas especial.
Midiendo el consumo. Ese conjunto de programas se llama Computer Language Benchmarks Game y es un proyecto de Software Libre que permite comparar cómo ciertos algoritmos se implementan en diversos lenguajes de programación. En ese proceso se analizan el tiempo de ejecución, el consumo de memoria o el uso de CPU.
27 lenguajes enfrentados. En el análisis se compararon distintos lenguajes de programación que pertenecen a distintos paradigmas: funcionales, imperativos, orientados a objetos y de scripting. Aquí había desde lenguajes clásicos como C o C++ a alternativas más modernas como Rust y también muy conocidas como Javascript, Perl, PHP o Python.
C, Rust y C++ ganan por separado. Al estudiar el consumo de energía, el tiempo de ejecución y la memoria consumida, los datos normalizados muestran como ganadores a C, Rust y C++. Entre los que peor se comportaron estuvieron Python, Perl, Ruby, Lua o PHP. Hay curiosidades también: lenguajes ya muy veteranos como Pascal o Fortran no consumen demasiado, pero llama la atención su bajo uso de memoria, probablemente porque fueron diseñados cuando ese recurso era especialmente limitado. En general los lenguajes compilados parecen ser más eficientes que los interpretados.
Hagamos parejas. Aunque esa era la clasificación general, los investigadores quisieron también dar opciones a quienes buscan resolver problemas combinados de eficiencia. Así, indicaron los mejores lenguajes para ahorrar tiempo de ejecución y memoria (C, Pascal y Go ganan), energía y tiempo (C, Rust y C++), energía y memoria (C y Pascal) o los tres objetivos, energía, tiempo y memoria (C, Pascal y Go destacan).
Un estudio imperfecto. El estudio ya provocó debate en redes sociales como Twitter, y en los comentarios en Hacker News varios desarrolladores indicaban que el código no era ideal para la comparación. Así, un usuario explicaba que ese código "no refleja cómo se comportan en la práctica lenguajes como Python", pero en realidad la cuestión no es esa.
La eficiencia no es la prioridad. Como explicaba otro usuario, si uno quiere ser realmente eficiente lo ideal sería programar en ensamblador. Aunque puede ser interesante saber qué lenguaje es más eficiente, es más importante aún tener claro que ciertos lenguajes de programación son perfectos para unas cosas, mientras que otros lo son para otras. De hecho en este ámbito lo que está claro es que los lenguajes de programación que más gustan no son los más populares —Rust es el que más de moda está, por ejemplo— ni los que dan más dinero.
Imagen | James Harrison
Ver 20 comentarios