Jako programiści mamy wpływ na środowisko

26 kwietnia 2020 o 19:51 Autor:

W SKRÓCIE

  • Emisja CO2 jest coraz wyższa i ma wpływ na nasz klimat.
  • Nam, jako programistom, wydaje się, że nie przyczyniamy się naszą pracą do degradacji środowiska.
  • Technologie teleinformacyjne przyczyniły się do produkcji 2% CO2 w 2018 roku. Za taką samą ilość odpowiada przemysł lotniczy.
  • Udział technologii teleinformacyjnych w produkcji CO2 rośnie z każdym rokiem.
  • „Produkujemy” coraz więcej danych, m.in. gromadząc informacje z inteligentnych urządzeń czy też udostępniając coraz więcej zdjęć czy treści wideo.
  • Efekt skali i fakt, że na świecie w 2020 roku jest ponad 3.5mld smartfomów powoduje, że jedna decyzja projektowa albo zignorowanie niewielkiego problemu w aplikacji może prowadzić do zwiększenia zużycia energii o dziesiątki megawatogodzin każdego dnia.
  • Moim celem jest zwiększenie świadomości i doprowadzenie do optymalnego wykorzystania technologii.

Z czym kojarzy Ci się słowo „ekologia”? Zapewne masz przed oczami obraz lasów, plaż, zwierząt i ogólnie życie w zgodzie z naturą. Ale być może pomyślałeś też o ruchach proekologicznych, o zatruwającym środowisko przemyśle ciężkim, o samochodach czy samolotach spalających setki ton paliwa. A może masz też w głowie obraz dymiących elektrowni albo góry śmieci zalegające na całym świecie?

Ekologia to po prostu nauka o relacji organizmów i środowiska. Jest to zastanawianie się jaki wpływ organizmy, a więc też ludzie, mają na środowisko. [1]

Podwyższona produkcja

W 2018 roku emisja dwutlenku węgla wynosiła na świecie około 36,5 gigaton CO2 [2].

O tym, dlaczego kwestia tej emisji jest tak ważna, można dowiedzieć się chociażby z filmu Dawida Myśliwca dostępnego na Youtubie. Podaję go tutaj, ponieważ przytacza on konkretne badania naukowe, więc nie jest to po prostu opinia „osoby z Internetu”.

Wiemy więc, że temat emisji CO2 jest dosyć istotny. Stąd też wszystkie organizacje, które kładą nacisk na korzystanie z „czystej” energii, ograniczenie transportu samochodami czy samolotami lub też zachęcające do wyłączania nieużywanych urządzeń.

Ludzie, którzy nie zważają na takie sprawy są coraz częściej postrzegani jako wrogie jednostki, jako niszczyciele planety.

Ale Ty jesteś inny. W końcu jako programista nie musisz korzystać z ciężkiego sprzętu, Twój komputer nie spala węgla. Do tego właściwie nie musisz przyczyniać się do emisji CO2 związanej z transportem czy zasilaniem dodatkowego biura bo możesz pracować z domu.

Nie przykładasz ręki do niszczenia środowiska. Jeździsz ekonomicznym samochodem i niedługo przesiądziesz się na model elektryczny, bo mimo, że elektrownie są często (zwłaszcza w Polsce) węglowe to jednak efektywniejsze niż silnik w samochodzie. Nie kupujesz jedzenia w plastikowych opakowaniach. No i przede wszystkim biznes, w którym pracujesz nie produkuje śmieci ani nie korzysta z przemysłowych maszyn albo urządzeń zasilanych ropą czy węglem, prawda?

Czyste dane?

A czy pomyślałeś o tym jak bardzo niszczysz środowisko stukając w klawisze?

Nie, nie chodzi o to, że korzystanie z klawiatury powoduje, że się męczysz i wydychasz więcej dwutlenku węgla. Chodzi o to co w wyniku tego stukania powstaje.

Jak podaje czasopismo Nature, w 2018 roku [3] przemysł związany z komunikacją, a więc po prostu cyfrowy świat, odpowiadał za 2% globalnej emisji gazów cieplarnianych.

Czym jest dwa procent? Tyle co nic. W końcu zrezygnowanie z lotu do klienta i zamiast tego jedynie regularne dzwonienie do niego z wykorzystaniem Internetu w razie potrzeby dogadania szczegółów będzie korzystniejsze dla środowiska. Przytoczone przed chwilą Nature podaje jednak obrazowe porównanie:

Data centres contribute around 0.3% to overall carbon emissions, whereas the information and communications technology (ICT) ecosystem as a whole — under a sweeping definition that encompasses personal digital devices, mobile-phone networks and televisions — accounts for more than 2% of global emissions. That puts ICT’s carbon footprint on a par with the aviation industry’s emissions from fuel.

Technologie do komunikacji już w 2018 roku odpowiadały za taką samą emisję co przemysł lotniczy, który spala to powszechnie zwalczane paliwo.

Jak możemy przeczytać na portalu Climate Home News [4] w artykule z 2017 roku przewidywali oni wtedy, że do 2020 roku ta wspomniana wcześniej emisja wzrośnie do 3.5%. Co sprawi, że ‘przegoni” emisję przemysłu lotniczego.

Patrząc na liczby ze wstępu, 2% emisji to ~0,73 gigatony CO2, a 3.5% to już 1.28 gigatony dwutlenku węgla. Trzeba całkiem sporo roślin w ogródku żeby to przerobić. Bo przeciętne drzewo liściaste w ciągu mniej więcej 100 lat pochłonie około 1 tony CO2 [5]. Przypominam, że gigatona to inaczej miliard ton. Więc nawet jeżeli założymy, że drzewo co roku, od sadzonki aż do końca swojego życia, pochłania tyle samo CO2 to potrzeba ponad 100 miliardów drzew tylko po to, żeby pochłonąć to co emituje nasza działka, związana z przesyłaniem informacji.

Coraz więcej informacji

Możesz powiedzieć, że przecież ta cala energia i związana z nią emisja to „zasługa” centrów danych i telekomów, ale przecież nie są one budowane od tak. Powstają, ponieważ przesyłamy i gromadzimy coraz więcej danych [6]. A te dane powstają głównie w aplikacjach, które tworzymy.

No dobrze, ale przecież dane zbierane z urządzeń stanowią dużą część, a na pewno są zbierane tak żeby było to optymalne? Filmy też wolimy jednak oglądać w przyzwoitej jakości, nikt nie będzie wracać do ery wideo 360p. To co ja mam tutaj do gadania?

Po pierwsze, nawet w temacie takich elementów jak zdjęcia czy filmy można mieć wpływ na to jak dużo zasobów, chociażby transferu, będą zużywać. Udowadnia to chociażby Netflix, który zmieniając algorytm zmniejszył zapotrzebowanie na transfer [7], co bezpośrednio ma wpływ na to, jak duże centra danych potrzebują i jak bardzo dostawcy Internetu i sieci mobilnych będą musieli rozbudować istniejącą infrastrukturę, aby więcej ludzi mogło oglądać seriale.

Po drugie, to jak działa nasza aplikacja, zaczyna mieć znaczenie kiedy tylko wyjdziemy z nią w świat.

Efekt skali

Bo przypomnij sobie moment, którego jestem pewien, że doświadczyłeś, kiedy przeglądając prostą stronę na telefonie za kilka chwil musiałeś podłączyć telefon do ładowania. Bo ktoś wstawił niepotrzebnie duże obrazki, do tego menu, którego nawet nie użyłeś ciągle w tle miało działające skrypty, a przesuwanie strony powodowało, że dane latały jak głupie.

I to było Twoje jedno urządzenie, które ma baterię o pojemności w okolicach 3000mAh. Teraz pomyśl, że na świecie jest około 3.5 miliarda smartfonów w 2020 roku [8].

I każdy z tych smartfonów ma ten sam problem – jakaś prosta strona albo aplikacja, która w sumie nic nie robi, spowodowała, że w tym samym dniu trzeba było tego smartfona podładować zdecydowanie zbyt szybko. Nagle okazuje się, że potrzeba działania całej sporej elektrowni tylko dlatego, że obrazek na stronie miał 5MB mimo bycia miniaturką albo program działał w tle bo ktoś niepoprawnie obsługiwał powiadomienia.

A może jakiś system non stop rzuca „cichym” błędem, który co prawda widać co minutę w logach, ale skoro wszystko działa to to się zostawia na „kiedyś”? W końcu to tylko kilka kilobajtów. A w razie czego przestrzeń jest tania więc dodatkowe kilkadziesiąt gigabajtów logów rocznie łatwiej naprawić dokupując dodatkowy kawałek dysku w chmurze na nie.

Być może też zespół podjął decyzję o używaniu ciekawej architektury bo to potem będzie dobrze w CV wyglądać? Co prawda wymaga uruchomienia kilkunastu dodatkowych serwisów żeby użytkownik zobaczył w niewielkim sklepie listę produktów, ale hej! Mamy nowoczesne rozwiązanie!

Skoro rozumiemy, że nasze zrezygnowanie z jednego plastikowego widelca ma sens, mimo, że wiemy jak niewielka jest to część całości to możemy też zrozumieć, że jedna mała decyzja projektowa, niewiedza albo pójście na skróty, może mieć równie duży wpływ na środowisko.

Mój cel

Myśląc o EkoAplikacje.pl nie mam na myśli nawoływania do usuwania aplikacji ze sklepu, powrotu do ery obrazków 360×240 pikseli, filmów w których bohaterowie są jednym pikselem albo spędzania dziesiątek godzin na przepisywaniu fragmentów kodu do idealnego, perfekcyjnie zoptymalizowanego asemblera i porzucenie wszystkich nienatywnych języków.

To co chcę osiągnąć, to świadomość jak można efektywnie wykorzystywać dostępne rozwiązania. Jednocześnie moim planem jest sprawdzenie, przetestowanie, jak wiele zyskujemy na konkretnych zmianach. Bo sam dopiero wchodzę w ten temat. Sam do tej pory potrafiłem nie zwracać uwagi chociażby na to jak przygotowane są dane, które wysyłam użytkownikowi. Więc i ja sam też będę się w trakcie uczył.

Chciałbym aby powstała społeczność programistów, którym zależy. Ale też społeczność, która będzie się wymieniać doświadczeniami. Bo każdy z nas zna się na konkretnym obszarze. I o ile ja mogę przyjrzeć się tematowi aplikacji webowych, z którymi mam do czynienia to być może Ty albo Twój znajomy znacie się na aplikacjach mobilnych albo jeszcze innym rodzaju działających na dużą skalę aplikacji i nawet jeżeli wcześniej nie zwracaliście na to uwagi to chętnie zagłębicie się w temat ich wpływu na zużycie zasobów i mechanizmów, które to ograniczają.

Jeżeli Cię ten temat interesuje, to zapisz się na newsletter, gdzie będę Ci mniej więcej co dwa tygodnie wysyłał maila zawierającego powiadomienie o nowych tekstach na blogu jak również podsumowanie tego co udało mi się zbadać lub znaleźć.

A jeżeli też chcesz się dzielić swoją wiedzą w temacie optymalnego wykorzystania zasobów albo poznać inne osoby, które się do tego przyłączą, to zapraszam Cię na grupę EkoProgramiści, którą założyłem na Facebooku.

Źródła

[1] – https://www.britannica.com/science/ecology
[2] – http://www.globalcarbonatlas.org/en/CO2-emissions
[3] – https://www.nature.com/articles/d41586-018-06610-y
[4] – https://www.climatechangenews.com/2017/12/11/tsunami-data-consume-one-fifth-global-electricity-2025/
[5] – https://granthaminstitute.com/2015/09/02/how-much-co2-can-trees-take-up/
[6] – https://www.theguardian.com/environment/2017/dec/11/tsunami-of-data-could-consume-fifth-global-electricity-by-2025
[7] – https://netflixtechblog.com/more-efficient-mobile-encodes-for-netflix-downloads-625d7b082909
[8] – https://www.bankmycell.com/blog/how-many-phones-are-in-the-world

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *