Ed Wagner (1/18/2016)
Personally, I'm one of those who won't "turn out the lights" on my servers. In my mind, having a system available and performant trumps the cost of electricity to run the servers. Like Jeff said, the wasted SAN storage is acceptable, and I'll throw in the space wasted by multi-MB email. The same people want to turn down the CPUs on database servers? No way.
On the topic of who pays for it, if non-IT people pay for it and are allowed to make the decision to turn down the CPUs and idle the disks, does anyone on earth think that these sample people won't complain when a user complains that a site is slow? Again, no way.
There's waste everywhere. Bloated HTML and XML lead to wasted bandwidth. Junk code leads to wasted CPU and memory. Improper data types, XML and poor decisions all lead to to wasted disk space. The only solution is to design and write well. As an example, a procedure taking 600 ms isn't a big deal to anyone because a site is fast. Then again, if it's run 75,000 times a day that works out to 12.5 hours of CPU time every day. If you find and eliminate that nasty scan that's consuming most of the time and get it down to 80 ms per run, you're down to 1:40:00 per day in total CPU.
I must apologize if this has turned into a soap-box, but efficient code is a passion of mine. I find examples of simple date filters done in a non-SARGable manner, implicit casts and a host of other sins way too frequently and nobody ever has the time to address them unless there's a fire right now and it must be addressed right now. The normal solution is a 45-email chain to say we need more hardware. I'm all for adequate hardware, but no amount of hardware can forgive all sins. I'll end my rant on that note.
I like your rant. You should continue it. 😀
From what I've seen, something over 75% of C++ code is bloatware - doing stuff for the sake of doing it, or in order to build a code empire (I hate middle managers who do that) rather than because it is sensible stuff to do. Train the C++ programmers not to burden the wheel with lovely decorations thet imped its function, or even to use the perfectly good wheel that they can get for 5% of inventing their own vastly inferior wheel, and you may discover that you have lots of sare CPU capacity. Much the same applies to Java. And it certainly applies to SQL generated by ORMs and other such foul processes.
Maybe it applies to all languages, but perhaps people who write in functional languages like Haskell or one of the MLs or someing based on CSP or CCS or a logic-programming language tend to be much less wasteful - the ones I've known certainly have been.