Either is a completely valid lifestyle, but they just don't mix well, so they should screen each other out at interviews.
Either is a completely valid lifestyle, but they just don't mix well, so they should screen each other out at interviews.
One of the ways I manage to be a very happy person is to not spend time with people who don't actively make me happy, any more than necessary.
It may not make sense to choose personality over technical chops if you're trying to hire a language designer, but it may make sense to do so if you're in a niche which requires teamwork.
I'm not sure why you keep assuming the best programmers are boring or unpleasant. I've found the opposite to be true, generally.
Brilliant people don't always play well with others, and software is (in my world at least) a team effort. I want to work with people who pull the team together, not tear it apart, no matter how talented they are technically.
One of the most intelligent and creative programmers I know is an arrogant douchebag who demoralises entire teams. He's very effective on his own, but stick him in a scrum team, and watch the culture of that team sour and watch its productivity drop.
I used the arrogant douchebag as an example of why a great programmer who doesn't fit a team's culture is going to drag down the productivity of that team - how they don't fit that culture can obviously vary.