A cultural difference doesn't mean that American stomachs can't digest sushi or that Japanese stomachs can't digest Big Macs, and it doesn't mean that there aren't lots of Americans who eat sushi or Japanese who eat burgers, but it does mean that Americans getting off the plane for the first time in Tokyo are confronted with an overwhelming feeling that this place is strange, dammit, and no amount of philosophizing about how underneath we're all the same, we all love and work and sing and die will overcome the fact that Americans and Japanese can never really get comfortable with each others' toilet arrangements.

When Raymond points out that the CSV format is inferior to the /etc/passwd format, he's trying to score points for Unix against Windows, but, you know what? He's right. /etc/passwd is easier to parse than CSV, and if you read this book, you'll know why, and you'll be a better programmer.

When Raymond points out that the CSV format is inferior to the /etc/passwd format, he's trying to score points for Unix against Windows, but, you know what? He's right. /etc/passwd is easier to parse than CSV, and if you read this book, you'll know why, and you'll be a better programmer.

I'm curious. Anyone know the answer?

CSV doesn't let you escape the separator. This turns out to be more complex to parse.

When Raymond points out that the CSV format is inferior to the /etc/passwd format, he's trying to score points for Unix against Windows, but, you know what? He's right. /etc/passwd is easier to parse than CSV, and if you read this book, you'll know why, and you'll be a better programmer.

I'm curious. Anyone know the answer?

CSV doesn't let you escape the separator. This turns out to be more complex to parse.

Interesting. I would naively assume that would make it easier to parse: a comma is a separator, end of story, no thinking required. I am probably missing some details though.

Yes. The unstated assumption in the argument is that you cannot rule out the separator being included in a field and must be able to handle it. Both standards include conventions for this purpose; the one used by CSV results in greater parsing complexity. The counter-argument would be that it's easier to understand and read.

Interesting. I've only ever seen /etc/passwd separated by commas._________________Here's another unfortunate pack of mutants who ought to be penciled in for a sudden visit from the angel of death.
-- Carlin

The most powerful optimization technique in any programmer's toolbox is to do nothing.

This very Zen advice is true for several reasons. One is the exponential effect of Moore's Law — the smartest, cheapest, and often fastest way to collect performance gains is to wait a few months for your target hardware to become more capable. Given the cost ratio between hardware and programmer time, there are almost always better things to do with your time than to optimize a working system.

Is not true in that old sense since hardware is not getting faster, but more parallel, so the Amdahl's Law is more and more relevant._________________“If You Meet the Buddha on the Road, Kill Him”

The principle of using a delimiter is the principle of using a delimiter, but the way they are used in /etc/passwd and CSV are quite different in terms of escaping (i.e., in terms of handling the case where the character selected as the identifier shows up in the content of one of the fields). The difference makes the logic required to parse the CSV format more complex and less efficient.

The most powerful optimization technique in any programmer's toolbox is to do nothing.

This very Zen advice is true for several reasons. One is the exponential effect of Moore's Law — the smartest, cheapest, and often fastest way to collect performance gains is to wait a few months for your target hardware to become more capable. Given the cost ratio between hardware and programmer time, there are almost always better things to do with your time than to optimize a working system.

Is not true in that old sense since hardware is not getting faster, but more parallel, so the Amdahl's Law is more and more relevant.