The CSV originates from the early seventies (Defined in IBM Fortran 77), it was introduced to give a better data transfer with less errors in punch cards as the previously used fixed length format was prone to errors in case of one or more missing spaces.
The format is described in IBM DB2 administrative guide: Load, Import and Export file formats
ref: https://www.columbia.edu/sec/acis/db2/db2d0/db2d053.htm
The format is recently defined in RFC 4180, and needs to follow these guidelines to be compliant
What is the RFC 4180 CSV file?
RFC 4180 defines a standard dialect for CSV, that specifies delimiters, quoting, and line breaks. As well as resolving these historical variations in CSV, RFC 4180 also resolves other potential inconsistencies, such as requiring the same number of fields on each line.
Ref: https://www.ietf.org/rfc/rfc4180.txt
The suggestions for a standard in RFC 4180 is later enchanced by W3C in 2015
The file type is used by all major players in the industry. Major changes are not easily applied.
A CSV file doesn't need to rely on commas as the separator between elements. The delimiter can be a semicolon, space, or some other character, though the comma is most common.
Eg in countries wich uses comma as decimal separator the semicolon is used as delimiter between elements.
This is why the escape character is not needed.
foo,bar,foo\\,bar
, the last comma would be a field separator."
into the cell. Quotes also allow you to put new lines more read-ably. When writting the parser if you are going to implement one you may as well implement both it does not add much complexity.