Why shouldn’t scientists engage not only with programming but, in particular, with scientific software development during their studies? And what, in fact, is the difference between programming and software development?
Software is becoming increasingly important at every stage of research, from planning through data collection and analysis to the publication of results. Most of this software is written by the researchers themselves – who, in most cases, have never formally learnt to code, let alone how to develop software that can be understood and used by others (including their future selves), whilst also meeting the standards of scientific rigour.
A core aspect of all science is reproducibility and, consequently, the ability for others to independently verify the results. For software that plays a crucial role in the scientific knowledge-generation process, this means, first and foremost: readability, clarity and expressiveness of its source code. Researchers are responsible for ensuring that the software they develop is of sufficient quality.
In this first chapter, drawing on the nature of science, seven requirements that scientific software should meet are briefly presented.
These questions are intended to encourage personal reflection on the topic, but no answers are provided.
If I have seen further, it is by standing on ye shoulders of giants. Sir Isaak Newton1)
The spelling “ye” for “the” comes from Old English; strictly speaking, the “y” here is also incorrect – it is actually a Thorn, i.e. the letter “þ”. The spelling with “y”, as an archaic form, has survived to this day in expressions such as “ye olde”.
An annotated and carefully selected list of further reading on the subject. The selection is, by its very nature, subjective.
Addressing the question “What is science?” goes far beyond the scope of this book and is, not without reason, the subject of entire books and dedicated lectures on the philosophy of science (usually within the Faculty of Philosophy). Those interested are recommended to consult relevant primary literature (including Popper, Kuhn and Hacking) and secondary literature (including Poser and Chalmers). For those wishing to explore the historical context of Newton’s quotation in his letter to Hooke in greater depth, Merton’s highly scholarly book of the same name is recommended.
Particularly in experimental physical chemistry and related disciplines, computer-aided data analysis is indeed ubiquitous, but it remains merely a “means to an end”. Two articles addressing the problem that most scientists have never learnt how to write software are listed below. Further details on this will follow in the second part of the motivation.