Are you writing and using environmentally friendly software? Have you ever thought of the impact on the environment for the software you’ve written? Working in front of a computer it can be easy to overlook the impact on the environment due to what were creating. It’s not like drinking a beverage out of a styrofoam cup (they don’t break down). But, there is an impact. As Internet usage grows in leaps and bounds we need to start taking a closer look at that impact and doing something about it.
Why Performance Is GreenWhy did Facebook start using Hip-Hop? According to their blog,
With HipHop we've reduced the CPU usage on our Web servers on average by about fifty percent, depending on the page. Less CPU means fewer servers, which means less overhead.When we have less servers we use less power, we need less space in buildings, less servers need to be built for our tasks and our overall footprint is smaller.
Think about it like this. We buy energy efficient appliances, we talk about turning lights off when we aren’t using them, we look at energy efficient cars, and we think about being environmentally conscious. So, why not extend this to what powers our websites.
Open Source Has A Major ImpactOpen Source projects, especially the popular ones, can have a huge impact. Think of the number of sites running Drupal and Wordpress. It isn't just one website or a small amount number of sites. We are talking about millions of sites running on tens of thousands of servers. When a performance enhancement goes into one of these products it can have a broad impact.
The Danger of Premature OptimizationWhen we try to optimize prematurely we can run into problems. If we optimize for one environment we may not be optimal for another environment. For example, optimizing around PHP using APC. Then you may not be optimized for all the shared hosting environments not running APC. When we try to do this we need to be careful to avoid premature optimization.
Architecting For PerformanceAt Drupalcon Copenhagen, Rasmus Lerdorf gave a keynote where he he made the point that "Real performance is architecture-driven". Something architecture driven cannot be bolted on as an after thought. Something architecture driven is more than optimization of what's already there. Something architecture driven is in the base of the framework the software is built on.
Energy Star For Open Source Projects?Energy Star is an international standard for energy efficient consumer products. What if we had something like this for the software that powered websites?
Imagine if phpBB had an energy star like label. Not only would you know it was energy efficient but you would know that it will cost you less to use it than an alternative not designed to perform.
As the world uses the Internet more and more we need to start thinking about the impact of our websites. Software that performs better uses less resources and has a smaller impact. Its time we start to take that into account in mass.