This is an uplifting blog post about a trend that I’ve noticed these past few years. As you might have already assumed from the title, this is about software and the model of open-source software development, however this post is also about information and the control of that information. Theoretically, any piece of software (a.k.a. computer program) is information, but actually, we consider it a tool with which you can create or manage information. Additionally, as with any discussion about the open-source model there is bound to be a discussion about intellectual property rights. I guess by now, most visitors to this page have quit reading, but if you are one of those very few dedicated readers, strap in, because it is going to get interesting.
Aristotle stated that humans are political animals. This is thought to be because of biology and evolution, where a male and female are needed to procreate, but you also need more individuals in order to achieve more than they can individually. Even the simplest task, i.e. lifting a heavy log, is impossible to do individually (efficiently). That’s why you need more people. You also need relationships with people. You need to communicate efficiently with people. We come to language, society, rules. One of the best human inventions after Electricity and Coca-Cola, definitely, is the Internet.1 It enables people to exchange information/communicate all over the world in milliseconds. It took a lot of effort to get here, but we’re here. I’m writing this blog post, hosting it on a server, that transmits the necessary data through a network of devices and wires/waves to your device which renders the text and pictures that you see. You don’t know this, but most of that process (probably more than 90%) happens with open-source software. Let me tie this paragraph together: I probably would not have been able to do that in my lifetime, if people hadn’t worked together this efficiently to come to this stage of development. That is all thanks to the open-source model. You’re reading this from a server running Linux, that has PHP and MySQL installed, that enable WordPress. All of them are open-source projects. People all over the world with an internet connection have contributed to those projects and made them possible and great.
Using the analogy of software as a tool, we have always used tools in our daily lives to do anything we do. We use shovels to dig, hammers to hit, and clocks to tell the time. When it comes to computers, they used to be considered as a tool; a real fancy calculator that could really quickly calculate various things. Now they have become a real fancy multi-tool where you can manipulate any kind of digital information. They are a platform where we do all things digital; an extension of us that we carry everywhere we go. They rule our health, communication, entertainment, productivity, art, transport, even research. In health, computers are used in imaging, researching, assisting in diagnosing, as well as operating on people. In communication, computers do everything: devices, infrastructure, even assisting in communicating. For entertainment (passive entertainment such as music and movies), I doubt you can do anything without computers. Even watching a play in a theatre, computers are involved in controlling lights or sounds. As for productivity, besides manual labour (i.e. masonry, carpentry, fruit picking, etc.), there is nothing that you can do without computers. Writing a book, interpreting data, doing a presentation, designing something, creating software, is almost impossible without computers. Even some of the arts are now computerized, such as photography, sculpture, video games. There are computers in our cars as well, and Tesla’s are nothing without their computer. So much so that they are inoperable during OTA updates. As for research, I doubt you can have a Large Hadron Collider or an International Space Station or a LIGO without computers.
Companies have invested a lot of time and resources to create these machines; our computers. People and companies invest even more time and resources to create tools (software) for these machines. Investing time and resources into creating software is risky, because anyone can just copy it, and they have the result of all the time and resources. That is where intellectual property comes in. Intellectual property laws were created as an incentive for individuals and companies to invest in researching and ingeniously inventing new things. To explain it simply: if some person comes up with a new thing, then he should have the right to do with the idea as he/she pleases (for an amount of time). Sell it, licence it, give it away for free, whatever. There are companies that do nothing but licence IP. You may think that Nokia is an unsuccessful company because their phones don’t have a large market share. Well, Nokia is going to be raking in a lot of money when 5G comes around. However, when it comes to software, protecting it with intellectual property can be tricky. You can patent some thing, but not code. Usually, source codes are protected by copyright. So there is overlap between patenting and copyrighting. For the purpose of this blog post, I’m going to generalise it into “Intellectual Property”. With intellectual property, a company like Microsoft, can create an operating system (i.e. Windows), or an Office Suite, and then exclude other people and companies to sell that software without their permission. Microsoft has invested their time and money, and created a product. They should try selling it to make a profit. That is how business works.
That’s great, but what about other circumstances, when something is created by public resources, or when someone creates something and doesn’t want to profit from his/her creation? Intellectual property is needed in this scenario as well. In these cases, IP is used to prevent someone from copying the work and then selling it. Imagine someone writes a poem, publishes it for free, and then someone else comes along, copies it, and starts selling it. Even going as far as preventing the author from publishing it. 2 In non-profit cases where creators do not want to sell their software but publish it for free, they usually hold the IP by forming an NGO (to further increase public accountability), and declare that anyone can use it according to some conditions. There are various licences that are used such as GNU GPL, MIT License, Creative Commons, etc. that provide a template for anyone that wants to not sell their IP.
Many people do not want to profit from their work. Especially when it comes to software. They want to make the world a better place by creating software and giving it away for free. One of those people is Linus Torvalds (recently in the news about how he needs help with his attitude). He created the Linux operating system, and people rarely know how prevalent Linux is in their lives. It’s on the majority of web servers, computers, phones, IoT devices, cars, rockets, in embedded systems, even in Supercomputers. It is the largest open source project in the world. Linus created the Linux kernel, and gave it away for free, for anyone to use, change, contribute in its development and everything. One of the main reasons why it is everywhere is the price tag: free. The other one is openness. No one knows what is under the hood of Windows. Everyone does when it comes to Linux. Let’s make an analogy with something everyone likes: food. Imagine you have the option of eating something delicious that you may not know what its ingredients are, and eating something delicious that you can find out what its ingredients are. Same thing with drinks. As you might expect those ‘open’ recipes will have more success. I will go ahead and go on a limb and say that Pizza as food, is more famous than Big Macs and Lemonade is more widely consumed than Coca Cola. 3 Not only that, but there are infinitely more varieties of pizzas and lemonades than there are Big Macs and Coca Colas. Everyone contributed and came out with whatever tasted better to them, and shared them with the world. The same thing happens with open source. They take a project that they find relevant, tailor it to their needs, and then share the work. Linux is a testament that the open-source model product can be successful and better than any closed source product.
The crux of the matter when it comes to intellectual property and sharing, in my opinion, is in the replicability cost and the return on investment. Before computers, it was much more difficult to replicate something. Now, it is just a matter of Ctrl+C – Ctrl+V. Also, anyone that invests resources (the main one being Time), that person/company, logically, expects a return on their investment (I’m excluding benevolence for now). Because of this paradigm shift, where everyone has computers and they can share digital information with virtually no cost, the way software is created will also change. That change is well underway. Now, the model on the return on investment needs to change.
The biggest expenditure in software creation is human brainpower. The really efficient and creative brains cost a lot. Office space, food, and other relevant costs to facilitate brainpower are really low in comparison. Software creation (currently) is a human being activity. The best software comes when many people work on it. I would go as far to say that the more people work on a piece of software the better it will be (of course assuming that there is a perfect structure of collaboration). People have different talents, and that translates to software as well. Some are good in kernel development, some are good in InfoSec, some are good in networking, and others are good UI/UX designers. There is no one person that can do everything; even Superman was a shitty journalist. So when many people work on a problem, they will find the overall best solution. Thus, software creation as a business is fundamentally a human resource endeavour. The current model of software creation is: you invest money in brainpower, come up with a piece of software, sell licences to use that software, use the money from the licences to recoup the investment plus some profit, then repeat.
The problem with that model is that the source code for the software is closed, and you can never be sure that the created software is good or safe enough. Just like with Big Mac sauce and Coca-Cola, we are never really sure what’s in there; maybe there’s still actual Cocaine in Coca-Cola, they’re just not telling us, and maybe there’s micro doses of LSD in Big Mac sauce to make it extra tasty.4 As for Pizza, everyone knows how to make pizza. You can even go crazy with pizza and put pineapple on it. Similarly with software: anyone can create a Linux operating system, you just take the kernel, slap something on top, and there you go. That’s how Android was made. The software creation model needs to take a Red-Hat approach, where the software is free, but you pay for the expertise. Since fundamentally, software creation is a human resource business, then the good and successful companies are successful in acquiring and retaining the best talent of the particular field. This way, it is much easier to pay the experts to implement their tools than to try to do that yourself.
Why would people want to use open-source software, when commercial (closed-source) software is better and more polished and less hassle? That all boils down to trust. The question is, do you trust a private company more than yourself? If yes, then continue using commercial products. If not, then start learning. With commercial products, even if the price is zero (and you are the product), there is a contractual relationship between you as the user and the provider, that is established when you said that you read the agreement and accepted it. It’s not your fault, nobody reads them, because they’re impossible to read. Those agreements usually give you no recourse of action if the provider mishandles your information, and many times they give the provider permission to use your personal information for tracking and advertising purposes.
People that have grown up with a reasonable expectation of privacy have started to become more aware when it comes to personal information, and they are educating themselves on how to solve that problem. The solution is always open-source software and encryption. You either use open-source software yourself, and contribute to projects, or pay for products that have end-to-end and storage encryption, where even the providers do not have access to your information, although they manage it. Either this trend will continue, or privacy will erode; I idealistically believe in the former (hence this blog post).
The way that we use our computers now, and the tools we use, have come to a point where the improvement of the tools is at most incremental, usually just superficial. There are open source alternatives that are good enough. Linux (any version with a GUI) as an operating system is a good enough alternative to Windows and MacOS. LibreOffice is a good enough office suite. Thunderbird is a good enough mail client. NextCloud is a good enough cloud storage solution. Even new tools such as Slack have good enough open source alternatives. If the EU Open Source Strategy wasn’t enough, then the recent Microsoft love for Linux is definitely a strong enough indication that the future is open source. Another strong indicator is the Academy of Motion Pictures Arts and Sciences partnering with the Linux Foundation.
What needs to happen now, is for everyone to wake up and understand that open source is collectively better for everyone. For companies to not believe that they will have a stronger advantage if they withhold the source code of the modifications of open source software. For people to donate to independent open source developers. For software creating companies to switch their business models and focus more on talent rather than licence management. Most importantly, what needs to happen is for governments all over the world to enact laws that mandate that created software that was paid with public funds to be open source. That way, the rising tide will lift all boats, and open source software will be the best tool (for everything) and not just good enough. Software will become better for everyone at the same time. Just like in the beginning of time, people worked together to achieve something greater, we need to work together (on a much larger scale) towards greater software.