I spent three years running inbound at an Amazon sort center, and I've watched barcodes fail in ways that textbook comparisons never cover. Here's what actually matters when you're choosing between Code 128 and Code 39.

The Real Difference: Bar Width Count

Code 128 uses four different bar widths. Code 39 uses two (narrow and wide). That's the entire game — everything else follows from this one design decision.

// Code 39: Simple wide/narrow ratio

const CODE39_BAR_WIDTHS = { narrow: 1, wide: 2.5 };