Free Software and Freakonomics


Category:  programming

Tags:  economics essay foss

This is an essay I wrote for my IB Economics final about free software and economics. It's heavily inspired by the Freakonomics movie. I've made minimal changes from the version I submitted.

As always, if something is wrong or you just have an opinion to share, feel free to contact me.

Shoutout to my economics teacher, Mr. Edwards.


Free Software and Freakonomics

Free software—free as in freedom—is a cornerstone of the current software environment. Most, if not all, of the apps people are familiar with use code from free software. But what even is free software? Free open-source software (or FOSS) is software whose code is publicly available under a license that allows the use of the code in your projects. One of the largest FOSS projects in the world is the Linux kernel, which is freely available. You might not have heard of the Linux kernel, but it is the software that powers ChromeOS, Android, most IoT devices, and the majority of the world's servers. It is only alive because of the millions of dollars in donations it receives from companies which depend on the software. However, there are pieces of FOSS software that someone has been thanklessly maintaining for decades with no pay.

Xkcd: Dependency
Someday ImageMagick will finally break for good and we'll have a long period of scrambling as we try to reassemble civilization from the rubble. Randall Munroe

This is clearly an issue. The current state of software is such that everything depends on everything else. If one essential component ceases to be maintained, or is sold to another (more malicious) actor, the software which depends on it will break. So how do we prevent this? FOSS is typically created by individuals, not by corporations (although there is a shift toward FOSS companies), and since the software is free, you can not sell or license it to make money.

So why do people abandon their widely-used FOSS projects?

  • The project is free, so there is no monetary incentive to keep it working.
  • Keeping a project up-to-date is very difficult and time consuming.
  • The developer is bored of the project and does not want to keep on supporting it, since it was originally a passion or a school project.
  • The project has gotten out of hand and is really large, so it is difficult to maintain.
  • The project's main users are people who are not particularly computer literate, therefore there is an abundance of support requests that would be considered idiotic (lack of patience).
  • There is a better alternative available so the developer stops working on the current project.
  • Inter-team friction leads to larger projects being disbanded (creative differences, future vision, etc).
  • The developer's priorities may shift away from the project and toward work or something else.
  • The project's code quality is terrible, leading to difficulty in maintenance and uptake.
  • The developer may sell out the program to another person.
  • A new technology exists that makes this project obsolete.

Each and every one of these reasons has already happened in real life and caused issues for consumers. One perfect example is the “The Great Suspender” fiasco. The FOSS extension was sold to another person who uploaded a malicious version of the program to Google's Chrome Web Store. This caused a mass exodus from the extension subsequently leading to the extension not being used. The source code for the program has not been updated since October of 2020 and the extension has been pulled from the store. The school had approved of this extension for use, and it still failed since there was no real incentive to not sell the program.

So how does this relate to economics? It is clear that FOSS has a massive social benefit, but the private benefit to the developer is very low. Therefore, incentives matter. In order for the developers to continue their projects, they must have an incentive to do so. Currently, for smaller projects, the incentive is a sense of obligation the developers have to their users. Naturally, the developers do not want to abandon their users, but a situation may arise that a proper incentive would fix. Therefore, by donating money to developers, you prevent the project from being abandoned. Some people have a large salary from their open source projects, such as the Haxx team which created the de facto HTTP client library that is used across every platform. They have many sponsors because these sponsors realize that if this project goes under, so does the company's software. Unfortunately, it is common that only the larger projects are funded to the point where the developers can make a living off of it.

Along with incentives mattering, one of the incentives listed earlier included how technology could change, leading to the depreciation of a project. The technological change especially in the software industry, leads to shifts in popular software. One notable exception is the C programming language, which has been around since 1972 and is still the number one choice for high-performance or systems applications (although this paradigm has been shifting slightly toward the Rust programming language). With the introduction of new languages, such as Rust, many developers decide to rewrite their projects (see the RIIR movement), or create a new one entirely. A real-world example of technological change would be something like Adobe Flash. Technologies like JavaScript and WASM depreciated Flash, leading to legacy Flash programs being unavailable to people today. Movements have been made to archive the Flash programs, but all of the software that had to do with Flash (and the few companies that depend on Flash still) were left out in the rain.

Technological change is linked with competition and efficacy, since with the shifts in technology, new programs rise as well. In the late 1980's, the open-source kernel of choice was GNU Hurd. However, with the release of the Linux kernel in the early 1990's, GNU Hurd was driven out as a viable choice and now is delegated to experimentalists and enthusiasts. This open source project has still been kept alive by a small but dedicated group of people. There has still been no official stable release and the time between code changes is typically weeks. Competition typically leads to a shift in consumer tastes, so the supply, demand, and equilibrium price changes as well. In terms of free software, the price is zero, so theoretically demand should be infinite. This is not the case, with non-free software still dominating on some platforms, such as Windows, MacOS, and so on.

FOSS Supply Demand Curve

Therefore, there must be some costs to the software beyond monetary costs that we must account for. Many FOSS projects require a higher learning curve and implementation costs than popular non-free alternatives. A wonderful example of this is Microsoft Word. The leading FOSS alternative to Word is LibreOffice Writer. Writer has many issues, such as compatibility problems with DOCX files, lack of features, and difficulty of use. So, there is an implicit “cost” of using FOSS, or with using anything for that matter. The other important part of the graph is the supply curve. There are two possibilities for the supply curve: perfectly inelastic (as outlined in figure 1.1), representing that the developers are willing to accept any money but that will not change how much software is released. But this runs into another issue with the supply and demand graph: software is free to download, and you can copy it for free. Therefore, there is an infinite supply of the software, but not an infinite quantity supplied, since that must be at an equilibrium point. So what could cause the supply and demand to shift? Again, a shift in consumer tastes, a change in the inputs for production (more developers working on a project), or any other economic concept, proving that free stuff still has to abide by the laws of supply and demand.

Linked perfectly with supply / demand and consumer tastes, the “snob effect” in consumer purchasing is a major player in software. With such a wide diversity in software, people who use one program are viewed as “better” than people who use another. A perfect example of this is Apple. Apple's MacOS (which you can only legally receive with an Apple computer) is considered the “snob” of the operating systems, while those who use Linux or another more niche product are considered to be nerds. People pay top dollar to not use free software because if it is free, it is seen as being a second-rate, inferior product. FOSS projects fail because they are seen as second-rate to an already-existing non-free product. In July of 2000, Microsoft's CEO Steve Ballmer called Linux “communism”:

[T]o emphasise the competitive threat, and in some senses the competitive opportunity, that Linux represents. Linux is a tough competitor. There's no company called Linux, there's barely a Linux road map. Yet Linux sort of springs organically from the earth. And it had, you know, the characteristics of communism that people love so very, very much about it. That is, it's free.

For more than the next decade, Microsoft continued to make Linux seem as a second rate product that only nerds and communists use, cementing Windows's position as expensive but the best, similarly to Apple's products. Ballmer also called the free-software movement and Linux “cancer” the next year. All of this naturally shifted demand left via the “snob effect” and set the community back a decade.

Ballmer Effect

So what do we do in order to incentivise developers to continue their essential projects? Simple: we give them money. As stated earlier, the marginal social benefit is much higher than the marginal private benefit. Therefore, if MPB is increased so that it equals MSB, society is better off.

Externalities

In figure 3.1, we see the current situation. Society is better off than the developer, so there is a deadweight loss (in red). To move MPB to MSB, we pay the developer. In fact, others have already thought of this idea. GitHub, the leader in open-source software hosting, has implemented a feature called “Sponsors” in which a person or a company can sponsor a GitHub organization or individual. GitHub takes no cut. This is suitable for small and large scale products and replaces similar methods such as a Patreon or a simple Paypal transfer. Another method that can be used is an official sponsorship. Because companies use some of the FOSS code, they want it to continue, so they sponsor the project. For example, Rocky Linux is a Linux distribution that is built to replace CentOS. They have gotten sponsors because the companies want a replacement for CentOS. Lastly, there is the sellout option. Selling the software to a third party would only temporarily increase MPB to equal MSB. At that point the software would fail, as it did with the Great Suspender. So where does that leave developers? It is difficult to get funding from individuals since people usually do not want to pay money. This follows that, if the developers want to make money from their FOSS projects, they will make something worth donating to.

Freakonomics Poster
Made with GIMP. xcf file available on request.

Works Cited

“GitHub Sponsors.” GitHub, https://github.com/sponsors. Accessed 30 May 2021.

Lea, Graham. “MS' Ballmer: Linux Is Communism.” The Register, 21 May 2000, https://www.theregister.com/2000/07/31/ms_ballmer_linux_is_communism/. Accessed 28 May 2021.

“Monetizing Open-source is problematic.” Marak.Com, https://marak.com/blog/2021-04-25-monetizing-open-source-is-problematic. Accessed 24 May 2021.

“Sponsors.” Rockylinux.Org, https://rockylinux.org/sponsors/. Accessed 31 May 2021.

Previous Post Next Post