  In the last few years, a growing body of research has proposed methods,
techniques, and tools to support developers in the construction of software
that consumes less energy. These solutions leverage diverse approaches such as
version history mining, analytical models, identifying energy-efficient color
schemes, and optimizing the packaging of HTTP requests.
  In this chapter, we present a complementary approach. We advocate that
developers should leverage software diversity to make software systems more
energy-efficient. Our main insight is that non-specialists can build software
that consumes less energy by alternating at development time between readily
available, diversely-designed pieces of software implemented by third-parties.
These pieces of software can vary in nature, granularity, and quality
attributes. Examples include data structures and constructs for thread
management and synchronization.
