Here on politics SE I read the following:

In order for communism to be moral, it requires everyone to voluntarily cooperate with each other towards a common goal. Unfortunately, people do not work this way. They are different in their ambitions, in their capabilities, and in their values.

But, the modern worldwide digital economy is possible exactly because programmers exchange results of their work for free - which has lead to the fact the all proprietary software is built at 90% from these free components. And there is Linux which used to run the Internet and lots of IoT devices.

So definitely what is happening here is a contradiction of the above statement. I do not think either this is an example, or even a proof of communism.

But what is this then?


Of course programmer community is quite small - maybe a couple of dozens of millions worldwide at best?


  • World illiteracy dropped from 40% to 15% since 1970; how many could read 300, 500 years ago?
  • Car driving was possible for some individuals just 100 years ago, today it is normal. Maybe it is not a good example because self-driving cars could make people less capable here.

So my assumption is that writing code is the new form of literacy which of course will take time to propagate across the population.

UPD2 if Linux is at 80% sponsored from private capital, and freely available, this is neither communism nor capitalism - but what then?

  • Programmer count is much smaller than people count. And even programmers can be very different (e.g. there is quite a small number of significant contributors when referenced to the total number of programmers - just take a look at StackOverflow community). As indicated in an answer in this community, communism was successfully implemented only in small communities which do not have to deal with complex society matters like research and development, modern education, modern health etc. – Alexei Nov 19 '17 at 13:15
  • @Alexei thank you for helping me realizing the following assumption. - UPD – J. Doe Nov 19 '17 at 13:18
  • It's a common misconception that open source programmers are all volunteers. For example, 80% of the contributors to the Linux kernel get paid for it by some company. – Philipp Nov 19 '17 at 15:41
  • @Philipp this is even more interesting - meaning that a huge bunch of private companies invest into same open innovation product, freely available. This cannot be capitalism, or? – J. Doe Nov 19 '17 at 16:04
  • 5
    @J.Doe How is that not capitalism? Unless your definition of capitalism is "every good and service must only be provided for profit" but that is as much a violation of the precepts of the free market as "nothing can be", because as your own example shows some people want to do some things for free and whether or not they do is their decision. – ThisIsNoZaku Nov 19 '17 at 17:16

Open source

But, the modern worldwide digital economy is possible exactly because programmers exchange results of their work for free

That's not actually how open source works.

As a developer, I use the open source product and build upon it. I submit my changes back to the source because I want other updates to be made with my changes in mind.

If I tried to do it the other way, I would have to rewrite my personal changes with every update of the source that touched the same files or interfaces. It is less work for me to submit back to source than it is to do those constant updates.

The whole thing works because I can sell my skills as one who configures open source software, modifies it, and in general makes it work. My customers connect with me. They aren't qualified to do the things that I do. They appreciate my contribution monetarily. That is to say, they pay me. And they pay me more for things that help them more.

TL;DR: Open source is science. Each new piece of knowledge builds on the old. The more that the knowledge is shared, the faster that it can grow.


Contrast this with the communist model. There, my customers do not pay me. I am "paid" by the state. I am paid the same whether I have many customers or few. So why would I have many? I can get the same pay with just a few. Why develop that clever thing that makes the software work better? It's no skin off my nose. It can stay small forever. So I never get to the point of considering whether to give back.

Worse, let's say that I did add functionality to the software. Afterwards, I would have even more work that I'd be expected to do. I would be the expert on that modification. Since I have the ability, from each according to ability would lead to me being the one to provide support. And I would be expected to make additional modifications to make that work. People would soon learn that such initiative would be punished rather than rewarded. And they stop doing it.

TL;DR: Communism and open source are fundamentally incompatible.

Of course, a real society may compromise on communist ideals to make the system work. Instead of paying all developers the same, they might give additional perks to better developers. So to each according to ability and from each according to need, a free market system. Also called capitalism.


By contrast, with capitalism, there are strong incentives for companies to share open source software. At any given moment, the open source software is cheaper to use, as the company doesn't have to pay monopoly rents to start using it. They only have to pay for their modification. And once purchased, it is to the company's advantage to return the modification to the source so that people will keep it updated as they add other modifications.

If a company tries to make a proprietary alternative instead, then the company pays the entire cost of development and updates. Further, the company faces the problem of features being available in the open source alternative that are not available in the proprietary software. Occasionally this will work. Oracle, DB2, and Microsoft's SQL Server are all proprietary versions of database software competing with free versions like MariaDB (MySQL) and PostgreSQL.

Other times, the open source software will push out the proprietary software. Solaris is gone. Linux and various BSD variants survive. Only Microsoft's Windows remains among the proprietary alternatives, and it is mainly a desktop kernel that they also use for servers.

TL;DR: Capitalism is compatible with an open source model. Their incentives reinforce each other.

  • Contradictio in contrarium in its full beauty with your help. Thank you. :-) – J. Doe Nov 19 '17 at 19:19
  • 4
    Re "Communism ... incompatible.": describing how communism wouldn't fit with your stated motivations for working on free software, is not a general enough argument to support a broad conclusion. If free software (or open source) is science, and communism is not incompatible with science and engineering, than it's unclear what makes software different from those. (OTOH, some of the more onerous forms of communism might be incompatible with the Western style copyright systems that make the GPL et al licenses possible...) – agc Nov 20 '17 at 4:33
  • 1
    Good thoughts and remember that open source does not force on other products that are not open source. In communist countries (initially), once people choose not to participate in the communist model, we see tyrannies quickly form, as communism inherently forces others to be a part. We don't see any optional communism and never will. – FalseHooHa Nov 20 '17 at 11:23
  • @FalseHooHa - we do, but in very small scale. What you say becomes true once you scale up beyond couple hundred volunteers – user4012 Nov 20 '17 at 14:07

Brythan's answer covered FOSS as it fits with corporate world; I'll try to cover how it fits with individual contributors.

You seem to be asking two separate questions:

  • Does the fact of existence and success of open source software contradict the premise of communism being non-viable?

    No, it does not necessarily.

    • Most people working on FOSS get paid for something else. They can afford to code for free since to them it's a hobby, not a job.

    • You write the software you want to use that isn't available.

      In other words, you don't write with the goal of giving software to other people - you write it with the goal of giving it to yourself.

    • You benefit by giving away software you write as well

      • You get other people helping improve the software far more than you yourself can (bazaar model of software development).

        In other words, with exception of someone on the level of Linus Torvalds or Stallman, you are likely to have more net benefits from writing open source software than the benefits you offer others from just your participation.

      • It is game-theoretically winning move.

        Personally, one of the reasons I provide "free" answers to Perl questions on Stack Overflow is because I want Perl to be more popular, as a Perl developer. My contributing this way (hopefully) helps advance that goal of mine, whereas if I was a free rider, Perl would be marginally less popular. Same with answering questions about authors I like on Literature.SE, where I aim to try and popularize the writers I like. In general, cooperative strategies are often the ones with biggest payoffs in many games - informational economy being one of them.

      • You get professional reputation (as well as networking).

        This has both material benefits (FOSS reputation can be parlayed into job offers, consulting, resume points, networking with other good software developers), and intangible benefits - specifically, it acutely addresses #3 item in Maslow's Hierarchy of Needs ("Social belonging") and #4 ("Esteem")

        (at the risk of somewhat offensive generalization, the latter is even more important in FOSS environment; as a large proportion of participants are introverted geeks who are often on Asperger's spectrum and therefore have far less outlets for fulfilling these two Maslow's needs outside of software development as a hobby).

      • You enjoy solving challenges to the best of your ability. Something you don't always get to do in a paying job where taking risks is encouraged less.

        Or, in Maslow's more technical terms, "Self-actualization" part of Hierarchy of Needs.

      • Lastly, you get warm and fuzzies from giving your software to others.

        This covers Maslow's last item in the hierarchy, Self-transcendence

  • But doesn't the fact that people are willing to contribute for free mean that communism can work?

    No, for three reasons:

    1. There is a marked difference between material economy and information economy.

      • In the latter, giving away your work for free does NOT necessarily reduce your economic position. As discussed above, people gain both tangible and intangible (but still important to them) benefits from working on FOSS.

      • Equally (if not more) importantly, unlike material goods, when you give others your code, you don't lose much economically (unless that is code you could have sold for real money, in which case there's of course a marginal cost. But that is only true for a small minority of FOSS code/contributors - nobody will hire you to write a Perl module to convert dates into one another; or an obscure device driver for Linux that would only be used by 100 people ever). You still have all the benefits from the code you wrote, since marginal cost of copying your code is zero.

      • Last difference is largely covered in previous section - FOSS offers large benefits for participants; of a way that is more reminiscent of scientific process than of material economy.

      If you share a hammer you made, nobody will come back and give you an improved hammer because yours had a fault. Nobody will build a special nail to go with your special purpose hammer. There won't be 1000 smiths raving about that one hammer you gave away as you only gave it out once.

    2. Another reason is that FOSS (and other knowledge sharing structures like Stack Exchange or Wikis) is NOT a closed society demographics wise.

      People participating in it are volunteers. You don't need to "motivate" them to participate by force, the way people had to be in USSR.

      If someone is disenchanted with FOSS, they have an option to drop out. And there's a pool of thousands - and at this point, millions - young coders who are likely to want to replace any dropouts.

      This is an important point - all-volunteer small communities can actually make Communism work for a bit. For example, Kibbutses in Israel; or some communes in USA.

    3. The last reason is that FOSS is not a closed society economics wise.

      This has two facets:

      • FOSS doesn't bear the burden of having to serve the whole economy. Heck, it doesn't even have the burden of serving all software users - they can afford to have less than perfect tools because people have an option to pay for better tools from for-profit developers (Early Linux on desktop being a good example - if simply wasn't good enough for most users, despite obvious attraction to power users).

      • FOSS doesn't bear the burden of having to sustain the whole economy. A vast majority of FOSS contributors hold real for-pay jobs; and do FOSS as a hobby.

        Try to get FOSS users to build houses for FOSS contributors, feed and clothe them, in exchange for the right to use FOSS software; and you'll quickly see that very very very few would be willing to.


To understand the nature of open source, you must consider how it is used.

Not always, but typically, open source consists of what one might categorize as utility routines: smaller chunks of code that do a specific function, like a text edit box to put onscreen, maybe a list manager to organize information. Developers new to a particular field use it as a jump start - how do you call a web service and process what comes back? Here's a working example... a functioning example of what you need to do is priceless to a developer.

There are some large open source packages such as Apache, Tomcat, MySQL, etc... but it is very rare for a single developer to make changes to them. Almost always, you just use them - making a change to a database engine or an application server goes beyond the scope and time constraints of most developers. For very large scale systems, open source might form some pieces, but the heavy duty cloud servers, for example, usually rely on proprietary engines such as Oracle or SQL Server for database, maybe WebLogic or WebSphere for application servers.

And when one uses open source, they are not obligated to publish the entire results, just the changes they made to the open source, if they made any changes at all. Those changes may not even be accepted, especially if they suck.

It is not common for a developer to change an open source package. More often than not, they just use it so they don't have to spend their time to come up with the desired functionality. That's under the GNU open source license. Under the Apache license, one is not even obligated to publish their changes to the source.

The benefits to the developer are immediate in time savings, and making good changes to open source enhances one's reputation and employability. Open source also broke the stranglehold that Microsoft had on the industry in the early 2000's, when they were in full monopolist mode, and the industry was beginning to stagnate as a result.

As a result of the open source community, one no longer has to pay thousands of dollars for a Unix based operating system. Sure you can buy MS Windows Server for a couple of grand, but Linux distributions are free, and are also more reliable.

No, this isn't communism. It's more like a nerd social club, where they don't exchange gossip, they exchange ideas.

But, as long as you want to attribute political characteristics to software... if you look back at the last 30 or 40 years, the one group that has done more to attack political repression and injustice in general wasn't the social warriors, it was us geeks. And we didn't do it by marching or demanding or espousing political concepts... we did it by making our creation so valuable that even repressive regimes had to use it... oh, and there's this little freedom of speech thing built into it that they can't completely stop. The holes we left in the internet system to keep the college admins from locking us out of our creation now make it hard for hardline governments to lock their own people out from the rest of the world. We've pretty much eliminated censorship by putting so much information out there in so many ways that it's physically impossible to censor.

This was our practical joke on all the humanities majors who got on us in college for 'not being involved in social causes'. We thought it was funny...

  • 1
    It's worth noting that Eric S. Raymond, the father of Open Source movement (and one of the greatest public advocates for Linux and Mozilla) have always been an avid political libertarian, and strongly opposes political progressives - among other reasons, because they are counter to the whole concept behind both hacker ideas in general and open source specifically. – user4012 Nov 20 '17 at 16:33

I have a slightly different perspective.

I don't believe OSS shows that communism works for the simple reason that there are vanishingly few OSS projects being developed with a model that is communist.

You use the example of Linux so I will too. The political model for Linux is unquestionably hierarchical and almost certainly absolutist. It may be oligarchical but is probably best described as a dictatorship. Now, one can argue that it's a benign dictatorship (though I doubt everyone agrees) and that it serves the common good (which I happen to agree with) but its political model is as far from communism as I think it's possible to get.

Why the confusion? What OSS has demonstrated is that people are receptive of an incentive model other than pure monetary gain. This has, of course, been known for some time e.g. the idea of public service. But OSS has extended it into the commercial sector in a way that was rarely seen before.

What is also true is that OSS has delivered products that are highly competitive with, and sometimes better than, their proprietary alternates. In other words, it is possible to show that non-monetary incentives can be competitively advantageous. Arguably (and this is probably quite contentious) public service, state socialism etc have not demonstrated this in the past.

Does this have any bearing on communism as a political model? Possibly. For communism to be viable it would need to have people continue to work and create. OSS has shown that alternatives to monetary incentives can work under some circumstances. Now, I happen to believe that that's nowhere near sufficient to make any claim about the viability of communism, but it does suggest that more research would be justified.

  • 1
    TL;DR: Linux is Plato's Republc :) – user4012 Nov 20 '17 at 14:05

Something else.

...exactly because programmers exchange results of their work for free...

The question seems to be based on confusion, and perhaps a contradictory premise, as shown in the quote above, which states that

  • programmers exchange their code, which is to say Programmer A exchanges code with Programmer B, and vice versa so that code goes back and forth, something like barter or potlatch.

  • programmers do this for free.

But exchanges and quid pro quo are not for free. Trade precedes coinage. There can be trade without coins, but no coins without trade.

A better way to look at free software might be comparing it with cookery. While some of the world's cooking knowledge takes the form of secret recipes and trade secrets, most of it is wide open -- cooks everywhere readily exchange tips, recipes, advice, methods, etc. One might ask "is cooking communist or capitalist?", but those categories are at incompatible levels of abstraction with the subject, like the question "what's the temperature of an electron?"

Flipping things about, proprietary software is to software in general something like what trademarked fast food is as compared to meals in general. An expensive temporary convenience, perhaps better than nothing when the real thing is not available.

  • +1 for good start of answer comparison. -1 for last paragraph being dogmatically propagandistic in favor of FOSS - and I have had Linux running on one PC or another for over 20 last years back since Slackware days. – user4012 Nov 20 '17 at 14:04
  • @user4012, You're right, the last paragraph is too dismissive. There's no intrinsic necessary mechanical reason that industrially prepared proprietary cookery needs to be worse than more open methods. I'd suppose the problem is that the inter-generational ratio of faithful stewards versus prodigal children often seems to gradually modify proud secret recipes into shameful secret recipes. (With proprietary software that inter-generational hand-off happens quick as executive turnover.) – agc Nov 20 '17 at 16:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .