Jak dotąd nigdzie na świecie nie ma przepisów regulujących szczegółowo wpływ systemu na środowisko – fakt ten pokrywa się z rzeczywistością, zgodnie z którą ani konsumenci, ani inwestorzy nie zbliżają się do firm ani nie oddalają się od nich w oparciu o ekologiczne cechy ich oprogramowania.
Wielu ekspertów oczekuje, iż Europa będzie pierwszym regionem, który wprowadzi regulacje egzekwujące praktyki ekologicznego oprogramowania. Jednym z nich jest Santiago Fontanarrosawiceprezes ds. technicznych w Globantfirma świadcząca usługi cyfrowe i autorka książki Inżynieria systemu ekologicznego: odkrywanie ekologicznych technologii w celu uzyskania zrównoważonych rozwiązań IT.
Według Fontanarrosa Europa ma dobrą pozycję, aby przewodzić w zakresie regulacji dotyczących zielonego oprogramowania, częściowo dzięki silnym inicjatywom na rzecz zrównoważonego rozwoju i postępom w inżynierii oprogramowania. Europa jest zaangażowana w zrównoważony rozwój, czego dowodem są ambitne inicjatywy, takie jak Europejski Zielony Ład. Co więcej, Francja przoduje w badaniach nad ekologicznym oprogramowaniem, a niemiecki Blue Angels oferuje pierwszą na świecie certyfikację systemu przyjaznego dla środowiska.
Według Fontanarrosa zielone oprogramowanie to nie tylko stosowanie określonych praktyk programistycznych, ale także sposób wdrażania i używania powstałych aplikacji. jeżeli chodzi o to, co mogą zrobić programiści, wiele ekologicznych technik systemu można zaczerpnąć z praktyk stosowanych przez ludzi, którzy pisali programy w latach 70. XX wieku, kiedy procesory były znacznie słabsze, a pamięć i pamięć masowa były znacznie bardziej ograniczone. W miarę jak procesory stawały się szybsze, a pamięć i pamięć rosła, inżynierowie systemu popadli w samozadowolenie.
„Dziś mój iPhone ma większą moc obliczeniową niż maszyna, z której korzystałem, gdy zaczynałem pracę w latach 90.” – mówi Fontanarrosa. „Od początku mojej kariery widziałem dużą zmianę. Programiści przestali zwracać mniejszą uwagę na sposób wykorzystania zasobów, takich jak procesor i pamięć. I nie stosują już technik optymalizacyjnych. Na przykład, jeżeli masz algorytm, który wykonuje pętlę, aby przeglądać bardzo długą listę, algorytm nie szuka sposobów na zwiększenie wydajności tej części kodu.
Jeśli chodzi o ekologiczne oprogramowanie, wydajność odnosi się do ilości energii zużywanej przez program do wykonywania swoich funkcji. Obejmuje to optymalizację nie tylko wykorzystania czasu procesora, dostępu do pamięci i wejść/wyjść, ale także przesyłania danych w sieciach. Gdyby programiści po prostu więcej myśleli o operacjach fizycznych zachodzących pod ich kodem, opracowaliby bardziej ekologiczne oprogramowanie.
Na przykład w porównaniu z programem okresowo sprawdzającym dostępność aktualizacji, architektura oparta na zdarzeniach, która reaguje tylko w przypadku pojawienia się nowych danych, jest bardziej wydajna, ponieważ zmniejsza liczbę żądań sieciowych. Ważne są też większe decyzje projektowe – architekt może wziąć pod uwagę fakt, iż w określonych porach dnia energia jest czystsza i zdecydować się na realizację niektórych intensywnych zadań w optymalnych okresach.
Jeśli chodzi o wdrażanie oprogramowania, jedną z podstawowych zasad jest minimalizacja ilości danych przesyłanych w sieciach, inną zaś jest selektywność w stosunku do centrów danych.
„Chmura jest w tej chwili towarem, z którego korzysta każdy” – mówi Fontanarrosa. „Ale chmura to tak naprawdę duże centrum danych, które zużywa dużo energii. jeżeli będę mógł wybrać chmurę dostawcy danych, która zużywa więcej zielonej energii, będzie to miało duży wpływ na mój ślad węglowy”.
Fontanarrosa radzi także programistom i operatorom, aby zmniejszyli liczbę instancji używanych w chmurze. „W dzisiejszych czasach masz kartę kredytową, wykonujesz dwa kliknięcia i masz zupełnie nową infrastrukturę” – mówi. „Nawet się tym nie przejmujesz. To jest ten rodzaj mentalności, który musimy zacząć zmieniać.”
Jeden z przykładów ilustrujących, jak duży wpływ może mieć oprogramowanie, podaje holenderski guru systemu Danny’ego van Kootena w Wpis na blogu 2020 co wpłynęło na wielu innych programistów do wprowadzenia podobnych zmian.
Van Kooten szacuje, iż zmniejszył emisję CO₂ o 59 000 kg miesięcznie, wprowadzając bardzo niewielką zmianę we wtyczkach WordPress, które działają w ponad dwóch milionach witryn internetowych. Oszczędności te to ilość CO₂ zużyta podczas pięciokrotnego lotu z Amsterdamu do Nowego Jorku. Mówi, iż zakładając, iż przeciętną witrynę internetową odwiedza miesięcznie około 10 000 osób i wykorzystuje pamięć podręczną do obsługi powracających użytkowników, można osiągnąć miesięczne oszczędności w wysokości 10 000 kWh na każdy 1 kilobajt, który programista pozbędzie się kodu JavaScript.
Inny przykład opisano w książce Fontanarrosa, gdzie porównuje on dwie implementacje ciągu Fibonacciego, stosując KodWęgiel narzędzie do pomiaru zużycia energii. Pierwsza implementacja wykorzystywała implementację rekurencyjną, a druga podejście iteracyjne z pętlą for. Wdrożenie iteracyjne zużyło o 99,34% mniej energii i zmniejszyło emisję CO₂ o 99,35%.
„Ta uderzająca różnica pokazuje, jak przemyślane wybory w zakresie implementacji przy projektowaniu algorytmów mogą drastycznie zmniejszyć zużycie energii i emisję, ukazując potencjał bardziej ekologicznego i wydajniejszego tworzenia oprogramowania” – mówi Fontanarrosa.
Fontanarrosa twierdzi, iż choćby jeżeli rządy nie nalegają na wprowadzenie ekologicznego oprogramowania, firmy i konsumenci mogą sprawić, iż stanie się to rzeczywistością. Zachęcającym sygnałem jest to, iż wiele firm dołączyło do Fundacji Green Software od jej powstania w maju 2021 r., w tym Globant, organizacja Fontanarrosa.
Misja Fundacja Zielonego Oprogramowania – założonej przez Accenture, GitHub, Microsoft i ThinkWorks – ma „budować zaufany ekosystem ludzi, standardów, narzędzi i najlepszych praktyk w zakresie ekologicznego oprogramowania”.
Według Green Software Foundation do 2040 r. sektor ICT będzie odpowiadał za 14% światowego śladu węglowego, z czego większość będzie pochodzić ze telefonów i centrów danych. Na stronie internetowej znajduje się informacja, iż twórcy systemu na wiele sposobów przyczyniają się do globalnych emisji. Jednym z nich jest produkcja nowych wersji swoich produktów, co często wymaga lepszego sprzętu do działania, przez co istniejące komputery stają się przestarzałe.
Zachęcającą oznaką postępu jest fakt, iż Fundacja Green Software Foundation Oprogramowanie dotyczące intensywności emisji dwutlenku węgla (SCI) specyfikacja uzyskała niedawno status normy ISO. Nie przypomina to jednak regulacji wspieranych przez rząd, ponieważ inicjatywa SCI jest przez cały czas dobrowolnym standardem wyznaczanym przez branżę.
„Zachęcam wszystkich do zapoznania się z ekologicznym oprogramowaniem” – mówi Fontanarrosa. „Wejdź na stronę Green Software Foundation lub inne powiązane źródło, aby zacząć o tym myśleć i spróbować wprowadzić drobne zmiany w swoich produktach cyfrowych. Drobne zmiany dają duży efekt.”