Hire someone who knows the concepts behind most languages, and can easily understand new ones.
Hire someone who knows the concepts behind most languages, and can easily understand new ones.
Keep in mind that this also likely impacts the productivity of at least one of your current employees, and if it doesn't, your newbie's language acquisition is not going to happen as fast, and their ramp-up time on your projects is going to be longer.
There's a big gray area between well-funded startup and well-established business where an entirely unproductive employee can have a non-trivial impact on your cash flow.
The sooner you realize this, the sooner you'll understand what your real hiring requirements are.
After that first year, it isn't quite so crucial to keep you happy. That explains why you never get the raise you were expecting after the annual reviews. You are now profitable, therefore paying you more would reduce profits and make you a less valuable employee.
And so we must go job-hopping.
The difficulty isn't in finding people with specific experience, the difficulty is finding people with a solid enough understanding of essential concepts to be able to do good work regardless of the environment they're working in.
that's a drastic overestimate. at some point, procedural languages really are all more or less the same. sure, there are different notions of types, variable scope, modularity/oo-ness, etc., but someone who knows a bunch of languages knows what concepts to get straighted out from the beginning and can be productive in days. if you find someone who knows a handful of procedural languages and haskell and lisp, they'll be able to pick up whatever language you're interested in.
now, picking up a bunch of toolkits is a different matter, because they really can be just a quirky as their designers want them to be. for example, using gson yesterday, i ran into a bug with json serialization that was pretty quick to diagnose by stepping through a few lines in the debugger, but it took over a half hour of searching and browsing api docs to find out that Maps weren't being serialized properly because i hadn't called GsonBuilder.enableComplexMapKeySerialization(), which it seems like really ought to be enabled by default.
then -- and not even finally in general, just finally for the sake of keeping this post briefish -- there are frameworks, which are like a perpendicular axis to the original language question. perhaps someone really familiar with rails or django and a little java background would be a better choice for a java project built on play than an expert java desktop developer with no server-side experience.
so in summary, if you can find someone who has basically already built your exact project before, yeah, you'd better hire him or her, but otherwise, intelligence, the ability to figure new things out, is always going to trump experience along any single line of expertise that one can attempt to draw through a software project.
However, I think that it's not really about the language, it's more about the libraries. Knowing all the utility functions that exist and how to use them is based on experience, you don't pick that up overnight.
tl;dr: bright inexperienced people pick up the language quickly and then rewrite library functions that already exist.