Science Is Open Software
Science Is Open Software
By Jens Egholm Pedersen | May 24, 2025 | ⏱️ 7 min read
TL;DR: I argue that in the modern era, the practice of science is fundamentally the same thing as creating open-source software.
The Misconception of "Tooling"
For as long as I can remember, I've been asked why software actually matters in a scientific context. Too often, it is viewed as a tedious time sink a mere hurdle to be cleared quickly in the pursuit of the "real" goals: results and academic publications.
However, we must insist on the scientific method, and in the digital age, that necessitates a commitment to open, reproducible software. While this perspective clashes with several current academic norms, it is the only way to ensure better science without driving researchers to the brink of insanity.
What is Science?
According to Wikipedia, science is defined as:
"A systematic discipline that builds and organises knowledge in the form of testable hypotheses and predictions about the universe."
When reviewing a paper, we must ask: Does this work provide predictions that are systematically organized and actually testable?
The Concept of "Inner Models"
In the book The Nature of Explanation, Kenneth James Williams Craik suggests that organisms navigate the world by maintaining "small-scale models" of reality and their own potential actions.
"If the organism carries a 'small-scale model' of external reality... it is able to try out various alternatives... and in every way to react in a much fuller, safer, and more competent manner."
The objective of science is to refine this inner model so that our predictions about the universe become more accurate. If a paper on arXiv fails to help the reader improve their predictive capabilities, it fails the test of being "science."
This is where computational reproducibility becomes vital: Software is the medium through which we encode and distribute these predictive models.
The Requirements of Scientific Validity
To meet the Wikipedia definition, results cannot simply be demonstrated; they must be:
- Systematic
- Testable
If a paper is overly dense or inaccessible, the insights might still exist, but the reader cannot internalize the idea, test it, and integrate it into their own world model.
Reproducibility just duplicating a result. Reproducibility the ability to take a scientific concept, embed it into your own model, modify it, and either expand upon it or discard it based on its predictive power.
The Analogy of the Hidden Equation
Consider this thought experiment: replace the term software model with mathematical model.
| Scenario | Acceptance | Reason |
|---|---|---|
| Physics paper says "Our equations predict " but hides the math. | ❌ Rejected | Impossible to verify or build upon. |
| Computational paper says "Our code predicts " but hides the software. | ❌ Should be Rejected | Impossible to verify or build upon. |
If we hide the methods, we stall progress. Many careers and fields have been hindered by buggy_code.py. Whether it is COVID-19 projections, search algorithms, or lab protocols, we rely on a chain of software dependencies. If we don't verify the implementation, the results are fragile.
The reality is simple: .
Software bugs have already led to numerous retractions (see examples [here], [here], and [here]). While we must trust others to some extent, we need a framework for that trust.
The Two Pillars of Scientific Software
To be useful, software must be:
- Reproducible: It must be executable and modifiable.
- Reliable: The results must be consistently trustworthy.
Modifiability allows us to retrofit code (similar to how we use Hugging Face models) to iterate and improve. Reliability ensures we are building on a foundation of knowledge rather than "flaky" results.
A Vision for the Future of Science
If we treat open-source software as the "scientific method in simulation," the future of research looks radically different:
- Interactive Papers: You read a claim that a drug reduces symptoms by 30%, click a link, and the analysis runs instantly in your browser via a reproducible container.
- Global Collaboration: Climate models are not siloed in one lab. If a researcher in Kenya finds a bug in atmospheric turbulence calculations, the fix is pushed via a
git commitand propagates globally. - Standing on Shoulders: We don't start from scratch; we use code that is not just "readable" but runnable.
- Public Trust: When economic or medical models are transparent and auditable, public confidence increases.
Example of a Reproducible Environment
Instead of a PDF, a researcher might provide a configuration like this:
environment:
python_version: "3.10"
dependencies:
- numpy==1.23.5
- pandas==1.5.3
- scipy==1.9.3
container: "docker://science-image:v1.2"
data_hash: "sha256:a1b2c3d4..."
By making the models themselves the center of the conversation—rather than just the conclusions—we transform science into a living, evolving piece of open software.