Interpreted languages.
We are reaching the limits of how fast our current technology can operate. At the present time, we have clock and data transfer rates of such speed that it is difficult to keep on a wire (or a foil trace). Without a change to some technology that has not yet been proven, we may by a stroke of fortune reach clock speeds of five to seven Gigahertz. This is one of the reason that multicore processors are attractive. Even with multicore CPU's there are limits; doubling the CPU count does not double the effective speed of the overall CPU, rather the gain is about 70 percent, and at some point we will reach a maximum CPU count. With multiple CPU's we currently lose even while we gain because no one as yet has figured out how to effectively write a true multi-symmetric program.
We are begging for more execution speed from our machines and programs, but with limits being reached and working knowledge in short supply, how are we going to achieve this? An interpretive language, whether it be BASIC, JAVA, or .NET adds more complexity, thus more machine code to program execution. To achieve faster program execution we need to simplify the languages we use at the machine level, optimize the code if you will. An interpreter does not optimize the code, no matter how good it is. We need to return to a simpler code base even though this conflicts with the modern business paradigm of "Just get it out the door."
So why bother?