Genes are biology's packages: named, reusable units of function that get called, composed,
copied between organisms and occasionally deprecated. That makes this the closest
like-for-like in the series — provided you separate how many distinct things exist from
how many copies are running, because the two answers are twenty orders of magnitude
apart.
Distinct types vs running copies
10⁸ vs 10³⁰
Both substrates hold on the order of hundreds of millions of distinct
modules. Biology then runs 10³⁰ copies of them; we run vastly fewer. The
library sizes are comparable. The deployment is not.
Distinct types
Life
Computing
> 227,000,000protein sequences in UniProtKB
≈ 420,000,000GitHub repositories — mostly forks, coursework and abandoned experiments
tens of millionsdistinct gene clusters in global catalogues
≈ 3,000,000npm packages
≈ 20,000protein-coding genes in one human genome
≈ 900,000PyPI projects
4nucleotide bases; 20 amino acids; one codon table, shared by all life
thousandsmutually unintelligible runtimes, ABIs and package formats
Running copies
Life
Computing
4–6 × 10³⁰genome copies — one per cell, each a complete installation
—no counterpart at this scale: nothing in software is installed 10³⁰ times
≈ 10⁷ribosomes per cell — the runtime, replicated per process
≈ 10¹⁰–10¹¹web pages indexed — the closest thing to a population of running documents
10⁵–10⁶mRNA transcripts per cell — the working set, made and destroyed continuously
unknowndatabase records worldwide. No credible global figure exists; vendor totals are marketing
3.1 × 10⁹ bpone human genome ≈ 750 MB uncompressed
—left unpaired deliberately: "how much data exists" has no sourceable answer, only press releases
What these tables count
- counts
- Distinct types above, running instances below. Every cell carries a complete genome; every
node_modules carries its dependencies. Conflating the two is the commonest error in comparisons like this, and it moves the answer by twenty orders of magnitude. - excludes
- Repository counts are not package counts. The honest software comparator is the registries — a few million — not GitHub's 420 million.
- uncertainty
- UniProtKB is a real, versioned, citable count. GitHub's total comes from secondary aggregators. Gene-cluster counts depend entirely on the clustering identity threshold chosen. Web-page counts are estimates of an unbounded set. Two rows are marked unknown rather than filled with a number that would not survive being asked where it came from.
- the trap
- UniProtKB's 227 million is not 227 million designs — most entries are computationally predicted variants of the same families, much as most GitHub repos are forks. Both numbers are inflated by the same mechanism, which is the one honest thing about pairing them.
One ABI, four billion years
The human genome is about 3.1 billion base pairs and roughly 20,000 protein-coding genes —
astonishingly little code for the result. The compression is not in the source. It is that
everything speaks the same interface.
Any gene from any organism can, in principle, be expressed in any other, because the codon
table is shared. Horizontal gene transfer is not a hack, it is a supported feature, and it
is why antibiotic resistance crosses between species in months rather than epochs.
Software has no equivalent. Our registries are comparable in size to biology's and far
less composable, because every package is written against one of thousands of mutually
unintelligible runtimes. That is the gap worth closing, and it is exactly what an agent
economy needs before work can be distributed across organisations rather than inside one.
Sources
- UniProtKB > 227 million sequences. UniProt, Nucleic Acids Research
- PyPI project count. pypi.org
- GitHub repository totals ≈ 420 million, from secondary aggregators rather than an audited GitHub figure. Octoverse is the better primary source. overview
- Human genome: ~3.1 × 10⁹ base pairs, ~20,000 protein-coding genes — GRCh38 / GENCODE consensus.
- Ribosome and transcript counts per cell are standard cell-biology orders of magnitude and vary by cell type and growth state.
- Two rows are deliberately marked unknown. Global database-record and total-data figures circulate widely and trace back to vendor marketing rather than measurement.