I think that in-spite of being programmers, we've deluded ourselves into believing that we can be hyper objective. The practical human factors IMHO, always overpower theoretical technical decisions, and bring you back into the realm of politics/social issues. But that is a very large topic for discussion and comments won't do it justice.