Recently, I was thinking about the biggest challenge for the global society—climate change—and I started wondering what we, as Go Developers, Specialists, Teachers, etc., can do to help stop global warming.
(Side note: if you disagree about the scientific evidence of a human-made climate change that endangers the planet, please skip this post, and refrain from commenting here. This is a purely technical post. I don’t mean to spawn any political or ideological discussions.)
To keep it short, I am curious to learn how Go developers, or Go teams, use Go to help save the environment.
Did you or your company shift recently from a scripting language to Go to reduce their carbon footprint? Did the transformation work as expected?
Are you employing Go for writing Green Software?
Are you using Go for any projects that help address environmental problems?
If so, please share your experience!
Also, if you want to share some ideas about how Go might help reduce the carbon footprint, save water, support renewable energies, etc., feel free to post them here.
By accident I found that web speed gives the major impact on saving the environment when creating web sites. Almost any site of mine driven by Go reduces the carbon impact. According to https://ecograder.com
Funny aside: for a test, I recently added the calculator to appliedgo.net and discovered that the article pages were producing twice the CO2 than other pages. It turned out that Disqus is the culprit.
(If anybody knows an energy-efficient Disqus alternative, let me know.)
It would be interesting to know how far Go as a backend language can help reduce CO2 emissions for websites. Seems that your site is a great starting point to help speed up websites and reduce the carbon footprint!
although its not Go yet and a dodgy prototype I wrote a community heating management system in Ada 2012 and using the distributed system annex personality with polyorb. Now we have Golang I am keen to convert it to golang once I have apis to zwave and zigbee etc. The thing about fuel poverty is there are two issues.
A lack of money
A lack of ability to use heating controls.
Also I was making use of a couple of stats 49 percent of UK energy is used in heating housing.
30 per cent of energy can be saved by zoning houses.
The prototype you can see is at github.com/tonygair/kushtibot I really want to start again in Go though. I’m still learning with that german phrase in mind …learn through trying!
This is a really interesting line of thought! Reminds me slightly of the stated Notepad++ goal (emphasis mine):
Based on the powerful editing component Scintilla, Notepad++ is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, Notepad++ is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment.
One of my current clients is using a Go-based app as an e-learning platform that allows aspiring clinicians to get observation hours online where they would previously have to drive to sessions and observe them. Trying to be vague here since I’m not sure how specific I can be without permission. I’m not sure about the carbon emissions of data centers, but I’m assuming that if we save hundreds of thousands of trips, it more than offsets our server emissions.
Also, just comparing my go-based APIs to other stacks I’ve used, they absolutely sip memory and are very performant (in my professional experience). So, we are able to ship products with less infrastructure costs, which is a carbon win. I just shipped another app on Google Cloud Run which is very efficient, for example. And I am consistently surprised by how small of an instance I can use to run my Go-based services.
Anyway, I hope people chime in with actual green software they are working on. This is an excellent conversation starter, Christoph, and I would love to hear about people who are actively making the planet better and using Go to do it. Bonus points if somebody is using tinygo in an embedded system to do something awesome like make their solar panels track the sun. I’d contribute some free time to a project like that.
Science tells us climate change is not “the biggest challenge for the global society” but merely one of the many problems we have to deal with long term.
Other than that, here is how we use Go for climate purposes: every code review of an algorithm asks “can it be done with less electricity” (instead of the “can it be done with a better CPU complexity”).
Somehow thinking about electricity consumption makes developer to be more motivated about their algorithms. I have seen this at work multiple times.
Thanks for sharing your approach. I think this is the single most important question for reducing the climate footprint of software. And although the question sounds simple, there are many different aspects behind it:
Is there an algorithm with a better time or space complexity available than what we use now?
Do we use these data structures efficiently?
Can we save energy by powering down the VM between requests? (a.k.a scale-to-zero or wake-on-request)
Shall this regular task run every second? Or is once every 10 seconds sufficient?
and so on…
Climate change is indeed only one of many problems of this planet. Unfortunately, the big problems are all intertwined on multiple levels. Climate change, depleting energy supplies, warfare, growing social injustice, concentration of wealth, and fascism and ruthless dictatorship in more and more countries—all these problems influence each other.
I don’t claim to have any ideas on how to save the world, but as Gophers, we can do our share within the scope of our profession to help make this world a bit better.
Please, you should always remember that human-related CO2 emissions are just a tiny fraction of natural emissions, which do cover more than 95% of all CO2 emissions.
Secondly, the climate has always been changing and for example the temperature changes in a long term have been so much more both up and down than the currently registered change of ca. 1 degree, which is too low to be drawn any conclusions of, the scientific fact being that no information can be derived from a signal, which is under the noise level!
Third, you cannot do anything for even a single volcano and there are a few hundreds of them. In addition, there are several other factors of climate change, which are (luckily!) completely out of our reach like, for example, the Sun, the Earth’s orbital changes, the oceans, the enormous production and effects of algae, methane releasing substances, chemical reactions and bacteria in soils and the biosphere etc. etc.
Therefore, it is of extreme importance for the humans to try doing something that they really can do instead of stupidly imagining that they could govern the whole world. The number one subject should be to launch an obligatory one child family policy in each and every country in order to stop pollution and degeneration of all living things! It will not take more than 7 generations to reduce the number of humans by 99%.
Then, everybody will have clean water and good land as much as they need. And the nature will recover and fill most parts of the world for everybody’s benefit. So, that we can do our best to reduce suffering and to adapt to the much bigger changes of climate, which are going to happen in the distant future.
I do not want to go into discussing fundamental ecological topics here, as I would only be able to repeat here what scientific researchers across the world have found out. This is a forum about Go, so let’s focus on the IT aspects. Even if the measures discussed in this thread are not relevant for climate, they certainly help saving energy, which is a valuable goal on its own.
I agree with you that there are a lot more things on this planet that go topsy turvy and have to be addressed better sooner than later.
Why not find out together how Go can help there, too!