Well at least the mass consumption of virtual goods (software) seems to produce less waste than the mass consumption of physical goods. Your mission is to write software that's so good that people do not need to upgrade their hardware.
Well at least the mass consumption of virtual goods (software) seems to produce less waste than the mass consumption of physical goods. Your mission is to write software that's so good that people do not need to upgrade their hardware.
Then there is the enormous energy demand of IT systems, which in turn requires more fuel to drive them.
The industry itself is not helping either. Not just is writing resource efficient software often not a priority, it's sometimes even seen as an anti-pattern (due to a misunderstanding of "premature optimization"). In the latest iteration, we have technologies like blockchains that make wasting energy into a feature.
> Your mission is to write software that's so good that people do not need to upgrade their hardware.
Meanwhile, the mission of your superiors is to make sure people upgrade their hardware as often as possible so the revenue keeps coming in.
Before there is a large-scale change of that culture, I don't think software development will be innocent in this.
I agree. When I look at other industries I see efforts to reduce energy consumption. Most programmers, in contrast, couldn't care less. The most popular languages are the least energy efficient. But they make life easier for developers, or as devs love to say 'more productive'. Who cares if you need to add more and more server boxes to your setup, after all 'hardware is cheap' - the default response of countless programmers everywhere. This industry is absolutely rife with hypocrisy.
If everything were written in assembly we simply wouldn't have the human resources to implement 500 ad trackers on a web browser. Not to mention that the web browser would be far more rudimentary in the first place.
What does it mean?
No-one is advocating that. There are dozens of fast, high-level programming languages to choose from.
Today, dynamic programming languages are the most popular - and often (not always) the least performant and least power efficient.
What does energy efficient mean? Here's one perspective explored in a paper:
Energy Efficiency across Programming Languages: How does energy, time, and memory relate?
https://sites.google.com/view/energy-efficiency-languages
Here's the related Hacker News discussion:
https://news.ycombinator.com/item?id=15249289
Dynamic languages benefit too from attention to energy-efficiency and speed in their evolution.
When PHP 7 was released, Rasmurf Lerdorf, the creator of PHP, said the performance improvements meant fewer servers, smaller memory use and reduced CPU activity - all of which equalled less power or electricity consumed.
When you consider the millions of servers in use, that additional language efficiency adds up to a substantial saving in electricity use. You can watch a segment from his presentation where he talks about this here - and the calculations he made of potential CO2 savings:
Google spends a lot of effort optimizing their software because they bear the energy cost of running it in their own data centers.
Websites do not bear the energy cost of running their code on enduser devices.
The lack of incentives turns energy waste into an externalty which means it is not factored into development.
And yes, there absolutly nonsensical stuff going on in modern software stacks, that could - in theory - be cut without any negative consequences. E.g., contemporary languages and framework seem to do a lot of stuff repeatedly at runtime that you could just as well precompute during build. However, this would require a completely different software stack than what we have now, so from our current point of view, it would be hard to change.
You can solve two problems at once - you will lower their carbon footprint to 1/10 of their current one, and become a multi-millionaire or even billionaire. Sounds like a double win to me.
I read that bitcoin produces more CO2 than the global aviation industry...
https://jalopnik.com/bitcoins-annual-carbon-footprint-is-equ...
Your mission is to write software that's so good that people do not need to upgrade their hardware.
Email, word processing, the vast majority of commercial workloads, would work fine on machines with a tiny fraction of the typical PCs power today. But developers insist on using godawful “frameworks” to do the most trivial things. Like JS based text editors that take gigs of RAM to do less useful stuff than Emacs could do in megs.
The PC of the future is something like an RPi with an eInk display with a solar panel on the other side.
It's big (~23Mt), but not as big as aviation (~860Mt).
https://www.atag.org/facts-figures.html https://digiconomist.net/bitcoin-energy-consumption