How much code each one carries

The interesting number is not how many distinct modules exist. It is the ratio between the distinct ones and the running copies.

Version 2 · superseded This is an earlier version, kept so the revision is inspectable. Read the current one ›

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