From each, according to his ability, to each according to his needs
People everywhere seem to be indoctrinated with the slogan "Communism is a great system, but it doesn't work because of human nature." I knew this to be true when I was in elementary school in Ohio. I have been told the same thing by a native Californian, and a native Chinese. It does seem to be a universally held belief. The problem is that it isn't true.
If communism and capitalism are thought about in a mathematical way, it is easy to see why communism fails and capitialism succeeds.
How to maximixe the return to an individual in a communist system? Simply show the most need and the least ability. Do this and you accrue the benefits of the system. From each, according to his ability, to each according to his needs. An economic system that rewards those that do not produce and punishes those who do by diverting the fruits of that production to the non-producers is doomed to a downward spiral of less and less production. We see this in every communist country that has existed.
The way to maximize the return of an individual in a capitalist system is simply to produce more goods and services that are desired by society at large. Capitalism rewards productivity and punishes non-producers. This leads to an upward spiral of increasing productivity in a society.
Pit a system that punishes productivity against a system that rewards productivity, and the system that rewards productivity wins every time. And, since capitalism rewards production of goods that are deemed desirable by society, it naturally works best in a free and democratic society.