Modern optimizing compilers can do amazing things and, when they're working properly, will probably generate an executeable that is faster and more compact than I could hand code. Having said that, there are times they will do amazingly BAD things to my code: a simple bit of code to turn a bit on, wait a while and then turn it back off may go away entirely. A number of my younger colleagues eschew looking at assembly-level output to see how the compiler has morphed their code, then wonder why things don't work properly...
On a slightly different note: if 2013 is such a great time to be in software, why are so many software engineers either unemployed or worried about their current job? I know way too many in both catagories, at least in the embedded realm.
I find it interesting that the measure for comparison is "lines of code," when a large number doesn't necessarily mean a good thing. The really interesting comparison would be showing some modern day product using less lines of code today than in the past, due to better programmers.
Replay available now: A handful of emerging network technologies are competing to be the preferred wide-area connection for the Internet of Things. All claim lower costs and power use than cellular but none have wide deployment yet. Listen in as proponents of leading contenders make their case to be the metro or national IoT network of the future. Rick Merritt, EE Times Silicon Valley Bureau Chief, moderators this discussion. Join in and ask his guests questions.