Smart and automated homes are closely related to my research so I'll chime in on this. Even though the technology exists to do lots of cool things no one has built a modular system that you can mix and match pieces to.
Right now each "smart" feature would be completely separate from the rest so you can't amortize the cost of each one. So if you want a home security system, an automatic door and window locker, and an item tracking system you will need to pay for and install three separate systems. Since the utility of some of those systems just isn't that great people only install the system that has the highest economic benefit -- the home security system. Everything else costs too much for too little benefit.
Campaign money also comes from people though, so if enough people care about an issue then even politicians who only care about raising money will respond. A quick google search shows that a large amount of Obama's money comes from individual donors (http://www.opensecrets.org/news/2011/10/grassroots-donors-sw...) so he has a strong incentive to do popular things.
Someone else posted that people who raise more money tend to win elections, but this could also be caused by the more popular candidate raising more money. People might also be more willing to send money to a candidate if they think that candidate will win since no one wants to waste money on a losing candidate.
The software process that develops the applications are very different. An avionics system must be able to operate autonomously, must have robust fault detection and tolerance, and must interact directly with many hardware components.
Web apps tend to layer on top of other systems and can reuse a lot of code. When I worked on avionics software we had to develop everything, from the hardware drivers for memory modules to the drivers for the display and all of the controlling systems for each of them. A high-performance web app just needs to perform well enough - at some point you can add more hardware. In an avionics platform you have specific weight, cooling, and power requirements that limit your total hardware capability. They are really very different.
Don't get too excited just yet - actually putting a sensor on everything would cost a huge amount of money and anything besides a passive RFID tag or barcode would need a battery. Consumers would need to pay an extra few dollars for everything and would need to replace batteries on everything they own every year or so. These protocols don't really do anything - the research community has bounced stuff like this around for a while. Someone actually needs to build better hardware before the Internet of Things vision actually comes true.
"Evidence-based" means that you tie statistical outcomes to procedures as apposed to doing what you think might be right based on your limited life experience (which is biased).
For example, let's say there is a test that checks for a birth defect that must be treated or it will result in infant mortality. Let's also say that the test causes infant mortality one time in 10,000. Whether you perform the test has to do with the statistical likelihood that the fetus will have the birth defect - if the likelihood is less than the probability of the test killing the baby then you shouldn't do it.
It's probably easier to use that much less power for the same performance than to push the same power in and get higher performance. On smaller size scales power leakage and heat dissipation become bigger issues so you might not be able to push the same amount of energy through as with the larger scale chip.
I feel compelled to disagree with people who insult C++ for the fun of it. In response to what you said, the STL is optimized and fast. You shouldn't be using that many smart pointers because allocating memory on the heap is usually not the best solution. If all you want is perl regex then you're right, perl would be the better choice.
What I'm saying is that people who are bad at C++ get all of the bad parts (memory allocation hell) but none of the good parts (supar speeeeeed). Since most people are bad at programming, it confuses me why they want to use a tool that makes them look bad when they could trade a little theoretical speed for a program that actually runs.
I thought the same thing when I starting working with the new standard, but I've really grown to enjoy a lot of the new features, specifically the new pointer types, rvalue references, initializer lists, variadic templates, and better support for functional programming via binds and lambdas. C++0x really does fix a lot of things that were broken on awkward previously, while also expanding support for memory and speed constrained systems via things like std::array. For me, this stuff breaths new life into the language.
Right now each "smart" feature would be completely separate from the rest so you can't amortize the cost of each one. So if you want a home security system, an automatic door and window locker, and an item tracking system you will need to pay for and install three separate systems. Since the utility of some of those systems just isn't that great people only install the system that has the highest economic benefit -- the home security system. Everything else costs too much for too little benefit.