How much code each one carries

The libraries are comparable in size. The deployment differs by twenty orders of magnitude, and the interfaces differ by everything.

v3 revised 2026-09-15 Column format with imagery; types and copies read side by side. v2 ›

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.

Lifeone calling convention
Computingthousands of them
Distinct types — the library
> 227,000,000Protein sequencesUniProtKB. A real, versioned, citable count — though most entries are computationally predicted variants of the same families.
≈ 420,000,000GitHub repositoriesInflated by exactly the same mechanism: most are forks, coursework and abandoned experiments.
tens of millionsDistinct gene clustersHow many depends entirely on the clustering identity threshold chosen.
≈ 3,000,000npm packagesThe honest comparator — registries, not repository totals.
≈ 20,000Protein-coding genesIn one human genome. Astonishingly little code for the result.
≈ 900,000PyPI projectsMore published Python packages than a human has genes, by a factor of forty-five.
4 · 20 · 1Bases, amino acids, codon tableOne interface, shared by every domain of life. A gene from any organism can be expressed in any other.
thousandsRuntimes, ABIs, package formatsMutually unintelligible. This is the difference that matters — not the counts above it.
Running copies — the deployment
4–6 × 10³⁰Genome copiesOne per cell. Every cell carries a complete installation of the whole library.
no counterpart at this scale — nothing in software is installed 10³⁰ times
≈ 10⁷ per cellRibosomesThe runtime, replicated per process rather than shared. Biology does not have a single point of failure here either.
≈ 10¹⁰–10¹¹Web pages indexedThe nearest thing to a population of running documents — and an estimate of an unbounded set.
10⁵–10⁶ per cellmRNA transcriptsThe working set: made, used and destroyed continuously. Nothing is kept that is not being paid for.
unknownDatabase recordsLeft unknown deliberately. Global totals circulate widely and trace back to vendor marketing rather than measurement.
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.
What these figures count
counts
Distinct types in the first band, running instances in the second. 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 count. GitHub's total comes from secondary aggregators. Gene-cluster counts depend on the clustering threshold. Web-page counts estimate an unbounded set. One row is 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 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. 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