Inicio  //  Media  //  Blog  //  Optimizar el código, una cuestión ecológica

Optimizar el código, una cuestión ecológica



Todo programador que se precie entiende que es importante optimizar el código. Un código bien optimizado permite que los tiempos de respuesta de las aplicaciones sean menores, castiga menos el hardware de los equipos en los que corre y, por lo general, es más “elegante”, más mantenible.

Pero hay otros motivos para tratar de tener el código más optimizado, motivos en los que no suele pensarse: ser más “eco-friendly”.

Así de primeras esta frase puede parecer que no va muy en serio, que se ha dicho por decir. Y es que tendemos a considerar que lo virtual es más ecológico por sí mismo. “Al no gastar papel, no contribuyo a la tala de árboles por lo que evito la contaminación”. “Al no usar un transporte para enviar mi correo (electrónico), estoy ahorrando muchas emisiones” ... Estos y mil pensamientos más corren por nuestras mentes cuando pensamos en las ventajas de lo virtual frente a lo analógico.

Sin embargo, ¿nos hemos parado a pensar en cuánto contamina Internet? Según una investigación de The Guardian de 2010, Internet produce 300 millones de toneladas de CO2 cada año, tanto como Turquía y Polonia juntas. Y eso sin tener en cuenta que cada año, Internet crece y su uso es más ubicuo, por lo que la huella va aumentando.

Y es que Internet, aunque tendemos a llamarlo “la nube”, no es más que servidores ejecutando código. Y dichos servidores consumen energía, mucha energía.



Pero, ¿cómo puedo ayudar a reducir la huella ecológica optimizando mi código? Se preguntará quien lea estas líneas. Los procesadores no son capaces de entender las líneas de código tal y como las escribimos. Por ello debemos compilarlo para transformarlo en instrucciones máquina. Una instrucción en código de alto nivel, no suele traducirse en una sola instrucción de lenguaje máquina, sino en varias. Y cada una de estas instrucciones de lenguaje máquina son varios ciclos de procesador lo que lleva ejecutarse.

No sé si me seguís por donde voy. Los ciclos de procesador hacen que la máquina consuma más energía que si estuviese “dormida”, y a más ciclos, más energía y más calor. Por lo tanto, con cada ciclo que ejecutemos de forma innecesaria estamos contribuyendo a gastar más energía, la cual no siempre viene de fuentes renovables.

Empresas como Amazon, Google o Microsoft, están tratando de llevar a cabo iniciativas que les permitan llegar a dejar una huella ecológica neutra en sus centros de datos. Iniciativas como plantar árboles, programas de limpieza de la naturaleza, o intentar comprar más energías renovables. Hay información acerca del consumo de éstas y otras compañías en el informe ‘How clean is your cloud?, redactado por Greenpeace en abril de 2012.

Pero no solo los grandes datacenters contaminan. En el informe ClickClean, también escrito por Greenpeace, hacen un análisis de las diferentes aplicaciones más utilizadas y de cuanto contaminan. Tienen en cuenta para ello todo lo necesario para el funcionamiento de dicha aplicación: servidores, aplicaciones móviles, etc. Y es que parece obvio que, si una app está gastando de más batería de nuestro smartphone, también está contaminando más por la mayor necesidad de recargar éste debido a dicho consumo.



En BABEL no disponemos de grandes servidores que optimizar, ni instalaciones especializadas en las que podamos optimizar el consumo. Sin embargo, como consultora de desarrollo, tenemos nuestra parte de responsabilidad escribiendo código optimizado para que consuma el menor número de ciclos de procesador.

Puede parecer que el ahorro es nimio, pero en un programa que está ejecutándose 24/7, miles de veces cada día (p.e. pasarelas de pagos, sistemas bancarios, etc.) el ahorro se va multiplicando y al final es significativo.

Es responsabilidad de cada uno de los programadores hacer el código lo más limpio y optimizado posible para reducir la huella ecológica que dejamos en nuestra actividad profesional. Y ya de paso seremos percibidos como mejores profesionales al crear programas y aplicaciones mucho más eficientes.
 
Comments
Blog post currently doesn't have any comments.
 Security code