Fair code is a new software development model which aims to replace the long-ruling open source model. Fair code authors argue that open source software lack a critical point in terms of commercial usage of the software, and hence, introduced their initiative to fix it.
What is Fair Code?
When developers release their software as open source, they are also giving a by-definition right to every company in the world to commercially use their software without having to obtain a license or share some profits with them. And this caused some problems in the open source world few years ago. For example, Amazon took the MongoDB source code (An open source database system), changed its name and then provided it as a SaaS (Software-as-a-Service) on its AWS platform, and then charged people money to use it. MongoDB developers were angered since they literally got nothing back from Amazon although they are the original creators of 100% of the code.
This adds some sustainability problems to open source projects, as anybody and any company can just take the code and then reuse it commercially without giving anything back to the original developers. The original developers may starve and the project may stop, and there would be no obligation by anyone to commercially pay them.
Fair code initiative arose from this context; To prevent anyone from using the software commercially without contacting the original software authors first, making it under the umbrella of what’s known as source-available models.
Fair code is just like open source in terms of almost everything; Users still have the right to:
- Access and read the full source code of the program.
- Use the software for whatever purpose they desire.
- Modify the source code for whatever purpose they desire.
- Redistribute the software.
- Embed the software in a product they want to release…
… However, the only limitation is the commercial usage of the software, which is not allowed unless one contacts the original developers and agrees with them on that commercial usage first.
Fair code authors argue that this model will help software developers to continue working on the projects they love, without having to starve due to the lack of funding. Hence, making it “fair” to everyone who is concerned with the software, as the rights of developers and also the rights of average users and enterprise customers are saved.
Fair Code Licenses
There are 3 licenses classified as “Fair Code” as of this moment:
- Commons Clause: Prevents commercial usage of the same source code, but allows it if it was largely modified or enhanced. So for example, if you just change the software name or few parts in the code, then you are not allowed to commercially use it without contacting the authors. However, if you modify it to a larger extent, then you are allowed to commercially use it without contacting the original developers.
- Confluent Community License: A license made for the Apache Kafka-derived software Confluent. Its exact licensing limits do not sound clear at the moment.
- Server Side Public License (SSPL): The new license that MongoDB crafted after its issue with Amazon. It basically prevents using it as a SaaS without reaching an agreement with MongoDB developers first.
Analysis on Fair Code And Its Future
The idea of fair code is actually quite tempting.
Everyone would still be able to enjoy the same features they are enjoying in open source, but only enterprises which want to commercially use it will have to pay. That’s it.
However, the currently offered software licenses in fair code are too few and limited; Common Clause would still suffer from companies modifying the source code to large extent and selling it later without paying the original developers, and the other two licenses are not practically applicable on all the other software projects.
In order for fair code to succeed, new software licenses under it need to be drafted taking the following important points into mind:
- Revenues Limit: Some software projects developers may prefer to ask those who wish to use it commercially for money only after a certain limit they reach; Say for example $10,000 in monthly transactions, after which a %5 fee is to be sent to the original developers of the code.
- Exemptions for Good Contributors: If a person/company contributed too much to the software project, then there should be a proper way of giving them an exemption from the commercial restrictions applied by fair code. This would allow software developers to trade companies for implemented work on the code; For example, MongoDB developers can tell Amazon: “You want to use our software commercially? Fine, bring your developers to implement these features on the code and we’ll give you an exemption”.
- Specialized Licenses: Not everyone is capable of paying for software, which is largely the problem that open source software solved. Free as in “free coffee” is an inevitable conclusion of free as in “freedom”. But fair code is going to take that away. Hence, some licenses need to be drafted for new startups, smaller developers and specific types of commercial uses where an absolute fair code license wouldn’t be practically profitable for both parties. E.g if a game developer wants to implement a fair-code licensed software component in his/her game, then it would be impractical to pay an upfront $1000 for example to do that.
So to sum up, some really good licenses need to be designed in order to carefully ensure no parties are left outside in the process. But the original concept of fair code, which is limiting the commercial usage of open source, could stand a good chance in the battlefield, if employed correctly.
Will Fair Code Replace Open Source?
Unlikely any time soon.
The entire world is currently built on top of open source software; Think of Linux, nginx, WordPress, Drupal, MariaDB, apache2, LibreOffice, almost all DevOps tools… They are still licensed under an open source license, and probably most of them won’t change their license at all.
Remember that when you change an open source license to a new one, then the new will only affect new contributions coming in, but older ones will remain licensed for everybody under the older license. Hence, most open source projects will never switch to fair code.
New projects may take the fair code approach in order to guarantee their rights and sustainability. But that trend would take at least 3-10 years to fully boot up, just like open source software did after introducing it in 1999, and free software in 1985.
And this won’t happen anytime soon because there are still no fully-developed fair code licenses for software projects to use at this moment. Hence, many years to come are still needed for fair code to foresee its future.
It is worthy to think calmly about fair code, and what implications it may have on the software development industry if it gets large adaptation behind it. One can’t help but notice that thousands of open source projects in the world were discontinued due to the lack of funding, and only few of them succeed in sustaining that aspect.
If open source principles are to become the norm – more than they are now – then the commercial usage point needs to be fixed, and fair code provides a small initiative at this point to try to solve that. However, it still needs developing in order to make it work.
On a small sarcastic note, we are thankful that we registered fosspost.org as our name, as the “F” in the future could stand for “fair” rather than “free” if this becomes the trend 😉
Your thoughts on the matter are welcome in the comments form below.