Communism is an ideology that hopes to establish a classless, stateless social organization, based on the batshit insane idea that if you pay everyone the same wage, they somehow will spontaneously all fill every needed occupation in society.
Why the hell would anyone want to spend 12 years in medical school if they can get the exact same quality of life by being a bad poet or a taxi driver? Okay, so you have a few people who are actually driven not at all by material concerns, but they want to be doctors out of the goodness of their heart. But why go through 12 years of school? Surely I can just read a book about homeopathy and still get the ego boost from helping people, even if it is less effective than modern medical science. But okay, let's set that aside and think that people will actually go through medical school and become honest-to-god medical doctors. A medical doctor by himself is not worth much. He needs equipment and the people who manufacture them, he needs drugs and the people who create them, he needs nurses, hospital beds, the people who wash the sheets and the bed pans. He needs a physical hospital and ambulances to drive patients there. He needs lab techs to analyze blood work and the people who make the chemicals that allow these analyses.
And he needs just the right amount of these people. There's no material incentive to pick one job over another, so people would naturally pick either the nobler or the cushier jobs. But what if you're late to the game? What if you end up having to be the guy who empties the bed pans and scrubs them down with disinfectant? Remember, in a "stateless" society, there's no one to actually force you to do this, and in a "classless" society, you must by definition be given the same wage and standard of living as everyone else. Now extrapolate from the very limited, microscopic sliver of the interconnected network of occupations that make up modern society. A lot of jobs are neither noble nor cushy. What would possess you to work in an iron mine to supply the steel scalpel for the doctor? Why would you be a sanitation worker at the sewage treatment plant?
That's communism as defined by you, and the reason it doesn't work isn't so much "people are selfish and greedy" but "why would you work with feces when that guy there stacks cans onto shelves?". It's pure infantile fantasy that doesn't look at "what's the best kind of society for human beings as they are" but "what's the best kind of human being for a society that is superficially egalitarian". Superficially because some jobs just are harder, more tiring, more disgusting than others. There can never be true egalitarianism between a doctor and the guy that empties bed pans, let alone a sewage worker and a journalist, unless you turn human beings into automatons who neither mind tedious work nor notice other people having less taxing jobs.
There's two solutions to this problem, and the first one is the de facto communism we've had the misfortune of experiencing from the early 20th century onwards. In fact, they called themselves not communist, but socialists on the way to communism sometime in the future when, presumably, we'd succeeded in turning people into automatons. Their solution to "Why do I have to root in shit for a living when that guy bakes cakes" is "Because we'll shoot you if you don't, and oh, by the way, you can't leave either because we'll shoot you then, too". You're legally required to work, doing whatever the state (socialism is communism without the "stateless" part) tells you to do. So how does the state know what to make you do, anyway? Ah, the miracle of central planning. Instead of supply and demand of goods dictated by market forces, socialist states (which lack market forces as everyone must have the same wages and living conditions and therefore nothing should ever be either scarce or overabundant) have planning committees that decide how much of everything everything needs. Imagine an accounting office that doesn't just have to deal with how many office supplies their company needs, but every single aspect of society - how much bread must be baked a month, how much wheat should be grown, how much flour should be milled, how many ovens should be manufactured, how many plastic bags should be made to keep the bread from growing stale, how many tractors must be built, how many spare parts they need, etc ad nauseaum. And none of these people have any special personal incentive to do this. For them, the amount of bread produced is another number, just like the amount of blue cloth or yellow pencils. The result - the amazingly inefficient economies and squalid conditions of Cuba, North Korea, Soviet Russia, Angola, etc.
The other solution is the one that actually works - let everyone make their own decisions on what they want to do and let people pay each other what they think the other person's job/product/service is worth - a market economy. All of a sudden, tractor makers build exactly as many tractors as they can to make a profit. Oven makers make as many ovens as they can sell. Farmers grow as much wheat as they can sell. Millers mill as much flower as bakers buy from them, and bakers make as much bread as people are willing to buy. If the farmer happens to grow too much wheat, he must sell it for cheaper, which makes flour cheaper, which makes bread cheaper, which means people can afford to buy more bread. It's self-correcting, and since every participant in the economy has a personal incentive to work more, produce more, and serve more people, it results in the creation of wealth, which is simply another word for more abundantly available products and services.
Yes, there are fatcats on top who make obscene amounts of money, seemingly undeservedly. That's not an argument for communism, because under communism everyone is equally poor, because the economy is so inefficient. The solution to fatcats on top is taxation, whether it be progressive or flat-rate - the more you make, the more you pay in real money anyway. There's a sweet spot in taxation - you want to tax as much as possible without hindering economic growth too much. And the revenue from these taxes build and fund schools, hospitals, fire stations, courts, the police and the army, orphanages, streets, parks, and civil engineering products.
And before any ivory-tower middle-class pinkos call me ignorant of "what Communist countries are actually like", I must disclaim that I was born and raised in the Soviet Union and have witnessed both systems personally, as well as the transition from one to the other.
As to Linux in Cuba, please. No ordinary citizens of Cuba own computers, and it doesn't matter one whit whether their oppressive government uses Windows or Red Hat - no one is getting paid either way, in fact it's illegal for Microsoft to sell software to Cuba, even if the Cubans had any desire for a product key that didn't start with FCKGW. Actually, my native Estonia IS moving towards open-source software on the governmental level, simply because it makes economic sense to do so. It would make sense for all governments to move to open-source software where appropriate, to save taxpayers the expense of proprietary software. Touting Cuba and Venezuela as "switchers" is borderline obscene, sort of like proclaiming that Malaysian child labor sweat shop managers just bought Macbooks!