StackOverflow was built (at least partially) as a reaction against forums and other sites which had large discussion components.
The reason being that discussion ends up diluting the purpose of those forums:
I have question, The internet has answer.
Essentially, when a clear question generated a discussion-board answer, it meant that no one was sure what the actual answer was. So StackOverflow was built initially to be specifically geared towards questions which have a discrete concrete answer. The OP could theoretically implement exactly what was written in the response, and if it worked, they could give the checkmark. Because of the way that it bubbled to the top, reading the entire page (which could be quite long) became unnecessary.
That format simply does not work in a [subjective] sense. There will be many answers, strong/weak/reasonable/ridiculous, but there can be no answer which is "right". And you can have many answers which are equally plausible. This means that the votes are no longer based on the merits of the answer (whether it worked or not) but rather whether it is generally good, which is significantly harder to be consistent about.
Additionally, subjective questions are more likely to include situational variables, which makes them (surprisingly) less useful in the general sense. "What is the best tool for logging" is a subjective question which has many perfectly valid answers, but most of them won't be useful, because they will be on other platforms/frameworks/hardware requirements.
This isn't to say that subjective questions aren't very useful and thought provoking. But they don't belong on StackOverflow because the system is designed for something different. The goal for StackOverflow is that every programming problem you search for will yield a direct and specifically applicable answer. Subjective questions get in the way of that.
[subjective]
. But I would strongly assert that any programmer who reads would find some of the highly-voted books very useful.