Green coding (zielone programowanie, ang. green software) to sposób projektowania, pisania i uruchamiania oprogramowania tak, żeby do wykonania tej samej pracy zużywało jak najmniej energii i sprzętu, a przez to generowało jak najmniej emisji CO₂. W praktyce to w dużej mierze stara, dobra wydajność, tyle że mierzona w kilowatogodzinach i gramach CO₂, a nie tylko w milisekundach.
W skrócie
- Green coding = mniej energii, mniej sprzętu i „czystszy” prąd na tę samą pracę programu.
- Temat porządkuje Green Software Foundation (Linux Foundation), a jej miara SCI jest normą ISO/IEC 21031:2024.
- Najwięcej daje nie wybór języka, tylko architektura: cache, mniej przesyłanych danych, lazy loading, mądrze wybrany region chmury.
- Ściema? Częściowo — gdy firma chwali się „zielonym kodem” bez pomiarów. Sama idea ma sens, bo zbiega się z wydajnością i kosztami.
Pierwszy raz trafiłem na ten termin w okolicach Dnia Ziemi (22 kwietnia), kiedy firmy technologiczne prześcigają się w deklaracjach proekologicznych. Postanowiłem sprawdzić, co się za nim kryje.
Green coding – co to jest?
Green coding to idea tworzenia oprogramowania, które zużywa jak najmniej energii. Ale sam kod to nie wszystko. Liczy się też to, gdzie i kiedy program działa, na jakim sprzęcie i jak korzysta z niego użytkownik. Scenariusz użytkownika ma realny wpływ: każda zbędna funkcja, ekran czy zapytanie do serwera to kod, który trzeba wykonać, i dane, które trzeba przesłać.
Czy nie chodzi tu po prostu o dobry kod, optymalne zapytania i wydajne algorytmy? W dużej mierze tak. Jeśli kod jest dobrze napisany, mniejsze zużycie prądu jest jego naturalnym efektem ubocznym. Dlatego wciąż warto znać notację Big-O — algorytm O(n²) zamiast O(n log n) na dużych danych to nie tylko wolniejsza aplikacja, ale też dłużej pracujący procesor.
Na marginesie: jeśli szukaliście „green coding screen” albo „green coding background”, to chodzi o coś zupełnie innego — zielony tekst na czarnym tle w stylu „Matrixa”. Ten wpis dotyczy ekologii w programowaniu.
Green Software Foundation i jej zasady
Najważniejszą organizacją, która porządkuje ten temat, jest Green Software Foundation. Założyły ją w maju 2021 roku Accenture, GitHub, Microsoft i ThoughtWorks. Działa w ramach Linux Foundation (przez Joint Development Foundation), a dziś zrzesza kilkadziesiąt organizacji.
W darmowym kursie Green Software for Practitioners fundacja sprowadza temat do kilku pojęć:
- Carbon efficiency — jak najmniej emisji na jednostkę pracy programu,
- Energy efficiency — jak najmniej energii na tę samą pracę,
- Carbon awareness — robienie więcej, gdy prąd jest „czystszy” (więcej OZE w sieci), i mniej, gdy jest „brudniejszy”,
- Hardware efficiency — jak najlepsze wykorzystanie sprzętu, bo jego produkcja też generuje emisje,
- Measurement — mierzenie emisji, a nie zgadywanie.
Kursem i certyfikacją „Green Software Practitioner” fundacja chce zrobić z tego standardową wiedzę programisty, podobnie jak bezpieczeństwo czy dostępność.
SCI, czyli jak zmierzyć ślad węglowy oprogramowania
Najciekawszym konkretem jest Software Carbon Intensity (SCI) — specyfikacja, która w 2024 roku została przyjęta jako norma ISO/IEC 21031:2024. Wzór wygląda tak:
SCI = ((E × I) + M) na R
- E — energia zużyta przez system (kWh),
- I — intensywność emisji prądu w danym regionie (gCO₂eq/kWh),
- M — emisje „wbudowane” w sprzęt (produkcja i utylizacja), przypisane do naszego programu,
- R — jednostka funkcjonalna: na użytkownika, na zapytanie API, na transakcję.
Ważne jest to „na R”. SCI to wskaźnik intensywności, a nie suma emisji, więc rośnie tylko wtedy, gdy każda jednostka pracy robi się „droższa” dla klimatu. Zmniejszyć go można trzema drogami: mniej energii, czystszy prąd albo mniej sprzętu.
Czy język programowania ma znaczenie?
Najczęściej cytowane badanie to Energy Efficiency across Programming Languages (Pereira i in., konferencja SLE 2017). Autorzy zmierzyli zużycie energii przy rozwiązaniu 10 problemów z Computer Language Benchmarks Game w 27 językach.
Średnio języki kompilowane zużyły 120 J na wykonanie rozwiązań, a języki uruchamiane na maszynach wirtualnych i interpretowane — odpowiednio 576 J i 2365 J.
Pierwsza piątka w zestawieniu znormalizowanym (C = 1,00):
| Język | Energia | Czas |
|---|---|---|
| C | 1,00 | 1,00 |
| Rust | 1,03 | 1,04 |
| C++ | 1,34 | 1,56 |
| Ada | 1,70 | 1,85 |
| Java | 1,98 | 1,89 |
JavaScript, w którym programuję na co dzień, wypadł w środku stawki (4,45), a Python na samym końcu (75,88).
Tyle że w 2024 roku zespół Emery’ego Bergera opublikował pracę It’s Not Easy Being Green. Autorzy pokazali, że po uwzględnieniu liczby rdzeni, pamięci i jakości implementacji wybór języka nie ma istotnego wpływu na zużycie energii poza tym, co wynika z samego czasu wykonania. Podejrzanie dużą różnicę między JavaScriptem (4,45) a TypeScriptem (21,50) w pierwszym badaniu widać zresztą gołym okiem — to w praktyce ten sam kod uruchamiany na tym samym silniku. Wniosek: przepisywanie aplikacji z Pythona na Rusta „dla klimatu” to raczej argument marketingowy. Liczy się to, ile pracy program wykonuje.
Green coding w praktyce
Najwięcej da się zyskać na rzeczach, które i tak powinny być na liście każdego zespołu:
- Wydajność i algorytmy — profilowanie, eliminacja zbędnych pętli i zapytań N+1, sensowne indeksy w bazie.
- Cache — wynik policzony raz i podany tysiąc razy to tysiąc razy mniej pracy serwera. Dotyczy to cache HTTP, CDN i cache zapytań.
- Rozmiar stron — według Web Almanac 2024 mediana strony głównej to ok. 2,3 MB na mobile i 2,65 MB na desktopie. Każdy megabajt trzeba przesłać, przetworzyć i wyrenderować na urządzeniu użytkownika.
- Ładowanie na żądanie — obrazki i filmy poza ekranem nie muszą się pobierać od razu. Jak to zrobić jednym atrybutem, opisałem we wpisie o lazy loadingu.
- Architektura — strony generowane statycznie albo serwowane z CDN nie uruchamiają PHP i bazy przy każdym wejściu. To jeden z argumentów za headless CMS i generatorami statycznymi.
- Region chmury i pora dnia — ten sam serwer w regionie zasilanym głównie z OZE emituje dużo mniej niż w regionie opartym na węglu. W Polsce w 2025 roku węgiel dawał jeszcze 51% prądu, a źródła niskoemisyjne 31% (średnia UE: 71%, dane Ember). Zadania wsadowe, np. trenowanie modeli czy przeliczanie raportów, da się przesuwać na godziny z większym udziałem OZE.
- Sprzęt — dobrze wykorzystany jeden serwer zamiast trzech prawie bezczynnych i aplikacje, które działają na starszych telefonach, więc nie wymuszają wymiany sprzętu.
Dla webdeveloperów dobrą listą kontrolną są Web Sustainability Guidelines przygotowywane w W3C — ponad 70 wytycznych dla UX, developmentu, hostingu i strategii produktu. Na razie to szkic, który nie jest oficjalną rekomendacją W3C.
Przykład z życia: w 2017 roku aplikacja YouTube na iOS potrafiła mocno nagrzewać iPhone’a podczas zwykłego oglądania filmów. Po nagłośnieniu sprawy programiści poprawili aplikację.
Akademickim przykładem jest porównanie algorytmów sortowania — te same dane, ta sama maszyna i zupełnie inna liczba operacji:
A co ze śladem węglowym AI?
Tu rzeczywiście dzieje się dużo. Według raportu IEA Energy and AI (2025) centra danych zużyły w 2024 roku ok. 415 TWh, czyli ok. 1,5% światowej energii elektrycznej. Do 2030 roku ma to być ok. 945 TWh, a AI jest głównym motorem tego wzrostu.
Z drugiej strony pojedyncze zapytanie nie jest tak „ciężkie”, jak sugerują niektóre nagłówki. Google podał w sierpniu 2025 roku, że mediana zapytania tekstowego w aplikacjach Gemini to 0,24 Wh i 0,03 g CO₂eq. Według firmy energia na zapytanie spadła w ciągu roku 33-krotnie. To dane samego producenta, więc warto je traktować z dystansem, ale pokazują, że optymalizacja modeli i infrastruktury też jest formą green codingu. Programiście zostaje zdrowy rozsądek: nie wysyłać do dużego modelu czegoś, co załatwi prosty skrypt, i patrzeć krytycznie na kod generowany przez AI. Więcej o tym piszę w tekście o vibe codingu.
Green coding: ściema czy coś więcej?
Kiedy pisałem pierwszą wersję tego tekstu, miałem wrażenie, że to dorabianie filozofii do czegoś, co każdy programista powinien robić i tak, czyli pisania wydajnego oprogramowania. Po bliższym przyjrzeniu się zdanie mam bardziej zniuansowane.
Ściemą jest „green coding” jako hasło na stronie firmy bez żadnych pomiarów i rankingi języków traktowane jak prawda objawiona.
Ma sens mierzenie (SCI to pierwsza wspólna miara), świadomy wybór regionu i pory obliczeń oraz traktowanie rozmiaru strony i liczby zapytań jak budżetu. Prawie każda z tych praktyk jednocześnie obniża rachunek za chmurę i przyspiesza aplikację, więc nawet sceptyk na nich nie traci.