EN
Back to the archive

The encyclopedia · Software & IT · Technical decision · 1970s–2005

CSV won data exchange by being plain text every spreadsheet already spoke

Plain-text comma rows were used for decades before RFC 4180 (2005) formalized them; Python calls CSV the most common spreadsheet import/export format.

IETF · spreadsheet and database vendors

The solution

Tabular data had to move between mainframes, spreadsheets and databases long before the web, and everyone solved it the same cheap way: rows of values separated by commas, stored as plain text. The practice spread so widely that decades passed without any formal definition of what a CSV file actually was.

In October 2005 the IETF published RFC 4180, 'Common Format and MIME Type for Comma-Separated Values (CSV) Files', formalizing the de facto practice and registering the text/csv MIME type. It did not invent a better format — it wrote down the one everyone already used, so the standard cost nothing to adopt.

The proof of the design is in the tools. Python's standard library describes CSV as 'the most common import and export format for spreadsheets and databases', implemented by every spreadsheet on the market. Because a CSV file is readable in any editor, its lifetime outlasts every tool that writes it.

Why it worked

  • Plain text is readable by any tool — editors, scripts, mainframes, phones.
  • Every spreadsheet already had export and import for it.
  • The text/csv MIME type made it safe to attach and process.
  • Formalizing existing practice (RFC 4180) beat inventing a new format.
What it achievedPlain text with commas needs no special readerneat

What can be applied

The format that wins interchange is the one whose reading cost is zero: any editor, any script, any spreadsheet can produce and consume plain text, so adoption needs no installs, licenses or training.

Aftermath

RFC 4180 gave CSV a common definition and MIME type, but the format's dominance was already settled: Python's documentation still calls it the most common import/export format for spreadsheets and databases, and CSV remains the default way tabular data moves between systems.

Sources

spotted an error? The archive wants to know.

Related cases