When I was a programmer in the 1990's, software companies had this idea that if you hired smart problem-solvers, you could teach them the details, like a particular programming language. These people, ideally, were adaptable and interested in expanding their knowledge. If you accidentally hired someone who couldn't cut it, you let them be on their way. For the employees that you valued, training and tuition reimbursement were the norm.
For better or worse, that way of thinking has died. Unless you're a true superstar, you can be replaced by someone who has more current skills, is willing to work for less, and is young enough to not to be encumbered by a family. A programmer is no longer a long term investment, someone whom the company hones over the years, but a disposable razor who seemed sharp at the time of hire.
You have someone who won't keep up technically and and has less than ideal social skills? They're outta here, baby, even in the old way of thinking.