" But the world needs C, it needs the Linux kernel, etc, etc. ".

This still misses the point. C was "invented" well before the Linux Kernel or GCC was written in it. At the point of invention, it was not clear that C would become the roaring success it turned out to be. The utility (or otherwise) becomes obvious only after (sometimes long after) something is invented/discovered. IOW, no one knows whether an idea is a "dry hole" or not, until after it has been explored (though you can make some, usually inaccurate guesses more on this below). The history of Physics (for e.g) is full of discoveries that became usable centuries after the discovery.

Coming back to the C language, your article seems to be saying that the inventors of C need to justify it in terms of an yet to be conceived of (leave alone implemented) Linux kernel, before writing the code for the language compiler.

From wikipedia, (http://en.wikipedia.org/wiki/C_(programming_language)

"# The development of Unix was the result of programmers' desire to play the Space Travel computer game.[1] They had been playing it on their company's mainframe, but as it was underpowered and had to support about 100 users, Thompson and Ritchie found they did not have sufficient control over the spaceship to avoid collisions with the wandering space rocks. This led to the decision to port the game to an idle PDP-7 in the office. As this machine lacked an operating system, the two set out to develop one, based on several ideas from colleagues. Eventually it was decided to port the operating system to the office's PDP-11, but faced with the daunting task of translating a large body of custom-written assembly language code, the programmers began considering using a portable, high-level language so that the OS could be ported easily from one computer to another. They looked at using B, but it lacked functionality to take advantage of some of the PDP-11's advanced features. This led to the development of an early version of the C programming language."

Following your "dry hole" logic , at the point of invention, C would be a very dry hole. I can just see Kernighan and Richie "justifying" their new language by saying "umm so we want to play Space War"... :-)

"You have to be able to judge the prospects of research programs."

True. To a certain extent.

The point of research is that it is an exploration into the unknown. The unknown is, by definition unknowable. When allocation of finite resources (like money) is involved, researchers who expect to consume those finite resources (in the form of grants for e.g) expect grants should try to elucidate the benefits of their proposed research. And the people in charge of allocating those resources should try to examine those claims and place their bets wisely. So far, so good.

The fact remains though that this is all guesswork. No one knows what the outcome of a proposed line of research will be. Think of it as funding Colombus's expedition. (see http://en.wikipedia.org/wiki/Christopher_Columbus particularly the sections on background and "funding campaign"). Both Colombus and his funders had several "best guess" judgments about his "prospects" but they all turned out to be wrong. His voyage was revolutionary nonetheless.

"For other things, this is not so clear."

This is just the nature of exploring the unknown. Which is what research is all about. You do your thinking, allocate your resources and try like hell, knowing all the while that it could be a colossal waste of resources. Just the nature of the beast.

Now, if your point is that there are people who game the system, that is a valid point. But then people game every system. So ...