January 25, 2020

The future of Open Source licenses

There are two major Open Sources licenses available, the MIT License and the GPL license. The advantage of both licenses is, that the user get access to the sourcecode. He can read the code and he can compile the binary file from scratch. The disadvantage is that problems are upraising if the end user forks an existing software project. Let us go into the details.

In the easiest case, the enduser is interested to download, read and execute existing sourecode. This is possible with the MIT License and the GPL license very well. Both licenses are written for exactly this purpose. The created code can spread freely over the internet and the costs for the end user is low.

The bottleneck is visible if the end user tries to do more with the sourcecode than only execute it on his computer. This is called forking. Forking means, to build on top of the sourcecode a new program. In the domain of software engineering, a library is linked into the own program and then the new software is distributed. If the end users is planning to do such things, he will run into a lot of trouble.

This is the case of the MIT License and the GPL license as well. The reason is, that every piece of code was written by a person, and the person holds the copyright on this code. Suppose, the idea is to use the libc library in the own project. The libc library is copyright protected. That means, a person in the world holds the copyright. And what is allowed and what is forbidden with the code is defined by this person. In case of the libc, the LGPLv2.1 license is valid https://en.wikipedia.org/wiki/GNU_C_Library Other library are available under a MIT license. What will happen in any case is, that after the library was used in a new project, the original author will check if the new project is fulfilling the license. That means, the enduser is not really free, but he has to negotiate with the license holder.

Suppose, the enduser is not interested in doing so. Suppose the idea is to fork an existing project and do not talk to the original author. Unfurtunately, such a software license is not available. No matter if the project was licensed under MIT, GPL or anything else, in all the cases, the copyright is reserved for the original author. The reason is, that it is a demanding task to write software. If the sourcecode contains of 100k lines of code, many manhour were invested in the past. And the copyright is protecting this invested time.

The only option for the end user to become independent from the original author and the Open Source license is to reinvent the code from scratch. That means, the user has to program it's own libc library from scratch which doesn't use the original sourcecode. That's the reason why the SCO vs. Linux case was openend a long time ago. Reprogramming software from scratch is the only option if somebody needs completely freedom from the original author.

The problem is, that even with modern software development tools like compilers and well documented sourcecode it's a demanding task to reprogram a software project from scratch. In a science fiction movie, the programmer would start a code generator which will produce it's own version of the Linux kernel. That means, the code generator gers some constraints as input and it will produce software from scratch. The software is different from existing sourcecode, so it's not copyright protected. This gives a hint how the future of Open Source will look like.

Today's licenses like the GPL license are protecting fixed code stored in files. The more advanced technique is to develop code generators who are able to produce unlimited amount of code. The generated code is new and it's not protected by the copyright law at all. This can be imagined as an advanced level generator in the Mario AI challenge. A level generator is able to produce a meaningful map from scratch which is different from any level created before. This newly generated game-map isn't protected by a software license. The problem with the Linux kernel, the glib library and most other Open Source projects is, that tha code wasn't generated automatically but it was typed in manually, and therefore it's possible for the original author to protect the code with a software license.