Cheap to rewrite, expensive to get right: the "FastQC-compatible" trap
A wave of AI-assisted rewrites is coming to bioinformatics. Decades-old tools written in Perl, Java, and C are being reimplemented in Rust and Go, often by an LLM in an afternoon. The rewrites.bio manifesto puts it well: "The question is not whether it will happen, but whether it will happen well." Because — and this is the whole point — cheap code is not the same as correct code.
Here is the thesis of this post: in the age of cheap AI-assisted rewrites, writing the code is no longer the hard part. The hard, still-valuable part is the engineering judgment around it — sound architecture, verified quality, and the discipline of spec- (SDD) and test-driven development (TDD) — plus the honesty to report what you actually built. A rewrite is not a translation to a new language; it is a validation contract. We recently shipped a streaming FastQC in polars-bio, and along the way benchmarked RastQC, a Rust reimplementation of FastQC. RastQC turns out to be a clean worked example of what happens when a rewrite skips those principles.