The lyrical article on open software, in The Hindu, by Rahul Dé, professor at IIM, Bangalore, (editorial page, “Like poetry for software,” February 2, 2013) is of interest for several reasons. He compares the work of the great poet, Ghalib, with the computer code written by modern open-source programmers.
Open source programmers have been in the forefront of the evolution of new, and often original, software suites for years and have very often contributed immensely to the development of crucial techniques and code. Their development of simpler techniques — which deviate from the accepted norms and very often extend the features and transparency of the free code available for programming — has been of immense value. It has been possible to envisage the replacement of clunky, formal and intricate languages by simpler and more intuitive codes. For example, programming has progressed from machine code to the languages of C or C++, which were already much more accessible. The invention of a comprehensive and intuitive language like Python, has led to a spate of elegant codes for many practical calculations for computers. Even if these codes sacrifice speed in favour of an input phraseology adapted to easy comprehension, they make coding much easier and more transparent. And of course, the rapid increase in the speed of processors has diminished the disadvantages due to the extra time required for a more prolix code.
The process of coding mathematical and graphical operations takes on the features of a computer game, and it is no surprise that innumerable talented programmers have seized the opportunity to try their hand at coding new “languages” or operating systems, supplementing the earliest ones based on clunky machine code.
Prof. Dé waxes lyrical about the advantages of open source programmers who supplement and develop suites of code for calculations, graphics and other applications of computers, and often distribute them for free.
Solution lies in combination
As a working scientist has a limited amount of time to explore new options in tackling the physics of the problem under study, often the crux, one is obliged to make choices between suites of programs of nearly equal functionality. As an example, calculations in quantum mechanics can be carried out by using an open-source program known as Sympy, or by using the traditional suites, Maple or Mathematica. Sympy is recent open source. It is based on Python, has a fairly simple code, and is still developing. Maple, on the other hand, originally developed by the University of Waterloo in Canada, is a commercial venture, and the code is easily available for a moderate fee. It has the advantages of completeness, reliability, and a dedicated service group, which updates it every year.
The service, or advice, obtainable from open-source programmers is often limited, dependent on their time and resources, and is, in the final analysis, a gratuitous act of friendship depending on the inclinations of the author. Standardisation is not imposed, and open source programmers are not obliged to follow any rigid code of compatibility to the detriment of an active scientist who just wants the results of the calculation.
For these reasons, the best solution for the development of new and exciting software would seem to be a combination of two procedures — one, a commercial development and availability for a fee, supplemented by a stream of new and experimental programs, written by dedicated open source enthusiasts, compatible, at some point, with the convenient suites from professional, salaried, programmers.
After all, the new programs on symbolic calculations grew out of the earlier ones developed commercially. The old time-honoured sequence is exemplified by the historical trajectory of Linus Torvalds, the creator of the operating system Linux, who finally moved from Finland to the United States, and continued the development there. Open source programmers are sometimes not enthusiastic about programming for tasks, judged routine by them, but nevertheless essential for the working scientist, like the statistical analysis and detailed graphical tools for data treatment.
In short, while appreciating the author’s enthusiasm for the poetic impulses of unattached programmers, who, according to him, like Ghalib in Persian, weave suites of elegant programs in C or C++, we, professional scientists, engaged in science, not coding, might consider that waiting for commercially certified and tested software may sometimes be worth the expenses involved, especially since the price of scientific programming is diminishing steadily.
Open source programs are an important interactive supplement to standardised commercial suites for immediate use. And, after all, any intellectual work, well done, shares the poetic elegance of the verses of Ghalib.
(Dr. Radhakrishna has worked on solid state physics in Paris and in the U.S.)