— Joe Philip Ninan
Genre : Opinion
Editor’s note : This was written many years ago when Crescendo “only accepted entries in .doc format.” Today, we accept any articles that are in an editable format, unlike .pdf.
Contrary to what the title might wrongly imply, this article is not about our great Crescendo magazine. It is more about a general attitude which seems to be growing unnoticed in our society. Our scientific community’s greatest pride is in accepting only those results which are provable and reproducible no matter how abstract or brilliant a theory or experiment is. Yet, some modern age abstractions seem to have defeated many researches from upholding those values.
Whether you like it or not, digital computers have become an indispensable part of scientific research. Their uses range from doing actual science to writing papers and making presentations. They amplify human creativity and abilities, helping our mankind do things which we couldn’t have done before. In early days, computer algorithms were much simpler, everybody using a computer knew how they worked. Thanks to the exponential development in algorithms and machine hardware, this is no longer true. In fact probably not even possible in our finite mortal life time. Slowly, things started getting complicated, and many people lost interest in knowing the details of the code somebody else wrote. The text processing industry didn’t care how the word possessors worked, as long as it gave an output they wanted. Even if they wanted to, it wouldn’t be practical. Some CEOs also realised that not being nice and closing the source codes which they had developed, standing on shoulders of giants from the past, will make them exponentially richer. They came up with a new family of “use only” license agreements, which allows them the right to sell products that consumers cannot peek into.
Luckily, the world also had some great thinkers (www.gnu.org), who realised that the industry is losing its status as an open collaborative science and moving towards a more closed magic industry. They started the free software movement, to free the algorithms which were born free in human minds, so that others can build on them like any other proofs in mathematics. All of modern science’s achievements were built by “standing on shoulders of giants.” In the end, algorithms are logical deductions like any other mathematical proofs, and they deserve all the respect any general logical mathematical deduction enjoys.
People have different opinions on whether the public should use free software or proprietary software. Every citizen has the fundamental right to do whatever they want and make decisions as long as they don’t affect anybody else. But, when it comes to the usage of closed proprietary software in obtaining scientific results, it is a completely different problem.
What is surprising is not that people use closed source proprietary software for research, but the attitude of not bothering about that is more worrisome. Every one of us will be gripped by a painful uncomfortable feeling, when we have to use a well known result, whose proof we don’t know. Especially when there is a time constraint, we might console ourselves by telling our consciousness that the experts in those fields have already verified it. If anybody is doubtful, they can always look up the proofs and be satisfied. When using closed source software, this feeling is surprisingly missing in our society. Somehow the marketing of software companies has made the software feel like some kind of a godly abstract entity: we no longer feel uncomfortable when we let an unknown algorithm flip transistors in our computer and print out results.
Even if we try to remind our colleagues that good science relies on its openness, understandability and reproducibility of every tiny step, the following are the common responses. Let me enumerate:
Response 1 :
We use it, because everybody else uses this particular software.
Reproducibility and openness is more important than convenience. Science was never about the majority. If we find a flaw in how people conduct experiments, we rectify it. We don’t repeat the same mistake just because everybody in the scientific community does.
Response 2 :
We don’t want to waste time looking at trivial stuff, which coders have implemented.
We are researchers, it is in our blood to demand to see how B is deduced from A. We may not choose to look into codes of every algorithm we use because of various practical reasons – but it should be done with the same uncomfortable feeling of not looking up a proof of a well known result before using it, hoping anybody can go back and verify it since all the science knowledge of humanity is out there in the open. Needless to point out, this is not possible with a closed source proprietary software. No one in the scientific community is ever going to be able to go back and verify. Just like how, in science, we don’t accept any knowledge as part of science unless every tiny step in it is proved and made accessible to anyone willing to reproduce the result, we should not have any tiny gaps and cracks between our hypothesis and result due to a software which cannot be verified by others. Whether we will choose to look at the code or not is a different question. Believing in closed codes is simply not science.
Response 3 :
But we do not have an option. There is no free software alternative for our work.
Ideal answer :
Throughout the history of science, whenever a tool was lacking for a scientific endeavour, we built it. So we should do the same.
Practical answer :
Depending on which field of science you are working on, it might be possible that there exists only one proprietary software in the world, which can do what you want to do. I am not going to suggest that we should stop the greater goal of scientific research just because of this issue. However, we should at least try to promote free software alternatives by using them in whatever tiny part they can contribute. And we should not indulge ourselves in the wrong illusion of doing perfect science by forgetting that our results stand on the shaky pillars of some magic program which nobody in the scientific community can verify.
Response 4 :
How will programmers survive if they don’t make their code proprietary?
Mathematicians do not survive by selling only the final results of their proof, while keeping the proof proprietary. Algorithms are nothing but a sequence of logical deductions. How will we react if some university announces tomorrow, “From now onwards we will sell our scientific results only with an end user license agreement in which you agree never to share the formula, nor seek how the results are proved”? Will the scientific community accept that?
If the present trend continues, it wouldn’t be surprising to see hardware manufacturers also starting to come up with a license agreement stating “The consumer has only the right to use it, sharing or peeking inside the instrument is immoral and illegal”!! We will see people proudly driving cars with every nut and bolt of the bonnet riveted, phones and laptops permanently locked by design, charging adapters designed with encrypted authentication, defectively designed digital players and so on… Oh, wait, don’t we already see them around…
P. S. This article is being sent to Crescendo magazine in a universal open standard format. No proprietary software was used or harmed in the production of this document.