"talented", "huge number" and "very few" are all very subjective descriptions. For example, try posting a regular senior software developer position in Java or C# on monster.com: you will get at least 100 resumes. If you are looking for "superstars" or "ninjas", you might be unimpressed, but many of these people are perfectly able to do the job.
No joke. Been looking for a mid Java dev for a year. 4 C#/C++/Python/Ruby applicants later, we promoted from within.
What I see from your comment is:
1) There was no immediate need to hire
2) You turned down 4 candidates. C#/C++ experience is quite transferrable to Java except at very advanced levels
3) Finally, you promoted the guy who was there all along and could have been doing the job for the whole year already
Basically, there is a shortage of software engineers, but they must possess very specific skills and have lots of experience. All the others are not considered suitable candidates for most positions.
You must be new here.
At least that's entirely inconsistent with my experience in technology; there are a huge number of companies looking for talented developers and very few developers to fill those positions.