A barcode stores data in one dimension (bar widths); a QR code stores it in two (a grid of modules). That single difference drives everything else: capacity, scanners, durability, and where each one belongs.
A practical 1D barcode like Code 128 carries 10–25 characters before it becomes unprintably wide. A QR code carries up to ~3 KB — 7,089 digits or 4,296 alphanumeric characters — in a square that stays compact because data grows in two dimensions. That is why a URL fits comfortably in a QR but would make an absurd 1D barcode.
Classic laser scanners read only 1D barcodes — they sweep a line. Camera-based imagers (including every modern smartphone) read both. This is the deciding factor in retail: checkout infrastructure was built around lasers, which is why products still carry EAN/UPC, and why the GS1 Sunrise 2027 transition to 2D at point of sale is a multi-year program rather than a switch-flip.
QR codes include Reed–Solomon error correction: at level H, up to ~30% of the symbol can be destroyed and it still scans — that is what makes logo-in-QR possible. A 1D barcode has only a check digit; a scratch through the bars typically kills it, though its redundancy along the bar height means a partial tear across the top often survives.
Retail checkout: EAN/UPC (1D) today, with 2D arriving via Sunrise 2027. Marketing, menus, WiFi, contact sharing: QR — consumers scan with phones. Internal inventory: Code 128 if you use laser scanners, QR or Data Matrix if you scan with phones. Tiny items: Data Matrix. Try both in our barcode and QR generators — both are free.