EDICIóN GENERAL

¿Qué lenguajes de programación consumen menos electricidad? [ENG]

Estudio chorra, la eficiencia* de un lenguaje o programa hecho en x lenguaje no solo depende de la tecnología, sino que también influye el buen hacer del programador/es. Si es alguien que no sabe aprovechar los recursos y minimizar el coste de computación gastará más.
*Cuantas más operaciones deba realizar más gasto energético.
#3 eso depende si tú programa lo va a utilizar una persona o un millón.
#8 #3 Exacto, si lo usa poca gente quizás las horas que has dedicado a óptimizarlo hace gastar más (porque tienes el aire acondicionado encendido según programas) que el hecho. O si es que has óptimizado 100 ms en algun algoritmo central de Google y has ahorrado el consumo de una ciudad.
#24 no sólo eso. Una optimización prematura seguramente sea más difícil de entender y por lo tanto de mantener o extender. A la larga (no tan larga) es más caro
#24 Tal cual. Por eso lo primero que se hace cuando se quiere optimizar un programa es ver cuanto espacio para mejoras de rendimiento. Lo primero es ver si, sin cambiar el algoritmo, se está muy lejos o no del pico de rendimiento de la máquina para la complejidad de la carga que está ejecutando. Si la mejora no es suficiente, se pasa a buscar modificaciones del algoritmo, o directamente a cambiar el algoritmo. Esto último es lo mas caro (en tiempo) de hacer, por lo que sólo se hace cuando se tiene claro que va a haber un beneficio claro.
#3 A mi personalmente me parece un poco sesgado el estudio, el tema es que analizan distintos algoritmos (arboles binarios, fractales,...), que generalmente se implementan en C/C++ y luego haces wrappers para lenguajes de más alto nivel. A este nivel siempre un lenguaje compilado va a marcar una diferencia considerable, no hace falta un estudio para ello, por ello los motores de cálculo suelen hacerse en C++ (más que por eficiencia energética, por tiempo de ejecución).

La cuestión es, PHP o Python no se caracterizan por la eficiencia del lenguaje en sí mismo, de hecho en el caso por ejemplo de Python habría que hablar de distintas implementaciones (muy probablemente Pypy se comporte muy superior a CPython, pero la realidad es que rara vez se usa en sistemas productivos). Estos lenguajes se apoyan en lo mejor de los dos mundos, eficiencia en las operaciones de bajo nivel (C/C++) y agilidad a la hora de desarrollar el alto nivel (frameworks en lenguaje interpretado).

Incluso a la hora de desplegar una aplicación web de suele tirar de código nativo (Apache/NGINX/...) y lógica en lenguaje interpretado.

La cuestión es que hay código más o menos critico en cuanto a requerir eficiencia en tiempo. En el más alto nivel suele ser despreciable, en comparación con las ayudas del lenguaje en cuanto a tiempo de desarrollo.
#3 No solo depende de las operaciones y de la velocidad de estas. Hay periféricos dentro del microprocesador que consumen más o menos energia. Suponiendo que mandar algo a la pila y recuperarlo gasta más energía que mantenerlo en un registro quizás haya maneras de programar, o de compilar en programa que sean más ecológicas que otras.

Ahora mismo los compiladores te ofrecen compilar para que la hueya en memoria sea menor, o para que el código sea más rápido. En el futuro quizás puedan ofrecer generar un código más verde. Y no tiene por qué ser proporcional al coste computacional. Lo dice el propio envío.

menéame