arthurnardy.dev

Personnal website of Arthur Nardy, software developer, mainly specialised on business problems implying complex systems, data processing, and applied mathematics

Free or open-source softwares are not free (of charge)


“Could you please find a free libary doing this stuff ? Paying for this was not planned and we are too short on the budget”.

A recent experience, motivated me to write down a simple note about free stuff in software engineering.

First of all, let’s remind the reader : a software developer writes a source-code. This source-code will be given to another software, called compiler. The compiler will make out of the source-code a compiled code ready to be run on a computer. This is incredibly simplified, but globally it’s true.

Source-codes are intellectual works. As intellectuals works, source-codes property is regulated by copyright law (because we have considered source-codes closer to books) and not patent law (because we have not considered it was a good thing to limit replication of ideas). This is once again roughly simplified, but broadly it’s not false.

In the vast ecosystem of software engineering, we count an unlimited number of licences, which try to answer a huge amount of questions :

  • Does the licence define the rules for source-code, or compiled (executable) code, or both ?
  • How does the licence apply to non-profressional persons, charity business, or for-profit organizations ?
  • Is the source-code open to be read only, or also to be copy-pasted, or none of that ?
  • Can we fork the source code ?
  • Is a retribution expected from the licence issuer or not ?
  • Does the software come with any warranty ?
  • If the software is used in another project, is there any restriction on the kind of licence the project can have ?
  • … etc …

It is widely common, and well regarded in the developer’s community, to share softwares a developer wrote for a personal project. It is even more well regarded for a company to share source-code it paid for internally. Sharing culture is part of the culture in software industry : we all agree to consider sharing of idea as highly valuable both for human kind and for business. But it’s good for business to a certain extent. Everybody needs to earn his bread with a competitve advantage. The leak of Twitch was not a valid open-source move. Open-source also implies a certain number of purely economic problems, regarding incentives, as the recent situations in open-source movement let appear.

The aftermath of this sharing-culture, is the propensity for humans to seek for the easiest and cheapest solution, to the point to turn into freeloaders. Anybody is susceptible to perpetrate freeloading, even the writer of these lines. Beyond the moral judgment, it is better to ask ourselves “How does freeloading come to be a problem in software engineering ?”. It becomes a problem when the underpaid or unpaid developer who maintened thanklessly the software project your company saved time and money on, gives everything up. Sooner or later the string breaks. Internet is full of stories of this kind, and internet is full of stories about libraries thanklessly maintained to make the whole internet infrastructure keep going.

A image is worth a thousand words – masterpiece of XKCD

With this introduction, the table is set to answer the customer’s question : “Could you please find a free library doing this stuff ? Paying for this was not planned and we are too short on the budget”.

There is no “free of charge” library doing the stuff. The question looks more like “do you pay cash or cheque ?” than “Do you want it expensive or free ?”. You have caricaturally two possibilities.

  • You periodically exchange money for a software with a proprietary licence granting you rights to use a software with guaranteed outcome in the short term. The sum of the payment will help the provider to offer a valid future to competent developers and help it maintaining a team. Here you pay by cash.
  • You choose to use an open-source code coming with no warranty, written by people who did not have your use cases in mind and firstly and mainly wrote the software for their own usage. This source code will certainly needs to come with some adapation to your project and will need proper periodic maintenance by your developer’s team all along the future. It means building and keeping knowledge of the technology implied in your team. Here you pay by cheque.

Both solutions come with pros and cons according to your context, but for sure, none of them is free of charge. Forget about it !

A image is worth a thousand words — meme found randomly on the internet from unknown source

Furthermore, I contextualized the topic with a reminder on the complexity of software copyrights licence, and the implicit necessity to read them carefully.
Let’s imagine you found a developer who looked across the net and found you a compiled code ready to use, free of charge. Let’s imagine this developer did not read carefully the licence agreement, neither the hiearchy, nor you the final customer. It would be a pity to discover several months later that the compiled code was a free software under GNU General Public License, meaning the most copyleft licence on Earth, which forces you to disclose all your source-code as open source software itself. It would be also a pity if it did happen already.

You could also imagine, you found a developer who looked across the net, and found you a compiled code ready to use, free of charge. You did not bother about cybersecurity and assumed too quickly the free software was safe, so did the developer, so did his hierarchy. It would be a pity to discover several weeks later, the little free and open source library the developer used had actually a security flaw, allowing a cyberpirat to steal personnal data from millions of your customers. It would be also a pity if it did happen already.
Everybody says a open-source software is a software where everybody can throw a glance and therefore anybody can not hide a flaw contrary to closed-source softwares. Software companies pay regularly expensive security audit from pretty rare cybersecurity experts, where any open-source software could be audited for free. It makes perfectly sense, does it ? Well, I am way too much ironic maybe. Actually it makes sense for very popular open-source codes from mainstream products, but security flaws live a very long life most part of the time. Less mainstream is the source code you need for your project, higher is the risk associated with.

A image is worth a thousand words — meme found randomly on the internet from unknown source

In conclusion, do not beg (too much) for software stuff “free of charge”. Software problems are solved by clever investments, never less investments. As the proverb says : “Pay peanuts, get monkeys !”.


Social Media Auto Publish Powered By : XYZScripts.com