simplest answer: the 1996 Telecom Deregulation Act.
Sold as a way to bring real competition after the breakup of ATT, what it did instead was: 1) coax Baby Boomer money into the stock market, causing the Telecom boom, with all the mis-investing that a boom entails, 2) build a lot of infrastructure with the new money, that the incumbent companies didn't have the stomach for, 3) free up the baby Bells from much regulation, but not enforce the "play fair" rules to allow upstarts to use the extant infrastructure, and 4) crash the boom, allowing the incumbents to pick up intrastructure for cents on the dollar. Instead of a rebirth following the crash, as is usual, in which the newcomers get to pick through the remains of the last boom, the remants mostly got gobbled up by the incumbents (even ATT, absorbed by SBC). So the landscape looks much like it did originally, except now the old incumbents control the Internet, instead of just the phone system. Innovation is largely coming on top of the Internet, instead of in providing it.
Problems: 1) HIPAA? a big, scary barrier to entry for experimental firms; I imagine it to be like the FAA; the time and money it takes to get things qualified for use in the air presents an enormous barrier to small groups with good ideas.
I find programming very intellectually satisfying, and have for many years. I now find myself in competition with people from all over the world, making it much more difficult to maintain the income I came to depend on. I have some anecdotal evidence that many of these "programmers" don't really like the job, and view it only as a stepping stone in their careers. I wish only Programmers programmed; as software users, we might all be better off.
1. Normally, when a market has a shortage, the prices go up until equilibrium is re-established. In this case, however, the market just seeks satisfaction elsewhere.
2. Income pressure leads to young people who are deciding on a career path choosing something that is less influenced by overseas wages, reducing our future engineer supply.
3. There is very likely a big surplus of older engineers who are automatically overlooked in favor of cheaper, more controllable immigrant workers.
If the actual question was "why wasn't C...?", the whole point of C was to achieve the maximum amount of power with a minimal language system. Making a preprocessor that is powerful enough to handle lexical and syntactic analysis of source code was not necessary for that goal. If you really want it, use sed (and don't forget M4).
Also, IIRC, programming languages with mutable syntax were generally acknowledged to be a bad idea around the time C was being born. Something about every program being written in a different language :-)
How about the other side of the coin: the successful people who insist that they absolutely did it by themselves, with no government-funded infrastructure, no societal acceptance, and no community support of any kind?
I hope one of the parts deals with people's aversion to C declarations. The declaration syntax allows vastly complicated data definition, and the fact that declaration looks like use simplifies things immensely.
(I also have a personal style quibble -- lots of people seem to think that putting spaces around every lexical element clarifies things; I think it just makes gassy code.)
The universe is a dangerous place. Despite millenia of superstition, science has proven to be the most reliable way to protect ourselves (at least as a species) from the vagaries of nature. We have advanced from making sure we know where our next meal is coming from to being able to predict the consequences of our own massive environmental changes. However, the development of science is not predictable: Marie Curie couldn't tell that radioactivity would help rescue the world from fascism, but she investigated anyway. Understanding our surroundings, in as much detail as possible, helps our survival. It's why curiosity has survived as a human characteristic. Knowing is better than not knowing.
I think SDR is a really good idea, but has two major stumbling blocks: 1) it makes government control of the airwaves trickier (IE removes some technical obstacles to misuse), and 2) major military contract failure involving emergency/terrorist multi-agency communication.