Live data from Hacker News

The Great Newline Schism

codinghorror.com

1–10 of 13 posts

Re: The Great Newline Schism

#6
Am I getting too old and grumpy or are the kids today getting too young and clueless? For the sake of Odin, it's Monday - even the Sumerians had problems with incompatible newline markers depending on the type of clay used to make the tablet. This is certainly not news and I sincerely hope it doesn't qualify as hacker either.

Re: The Great Newline Schism

#8
post #6

Am I getting too old and grumpy or are the kids today getting too young and clueless? For the sake of Odin, it's Monday - even the Sumerians had problems with incompatible newline markers depending on the type of clay used to make the tablet. This is certainly not news and I sincerely hope it doesn't qualify as hacker either.

I share your grumpiness. But given the number of otherwise-smart people I've had to explain this to: yes, this is something that needs to be explained to the median reader of Hacker News. Too many developers in the modern world work only in abstractions and don't have any grounding in the way bytes are laid out in files.

Re: The Great Newline Schism

#9
post #5

Nothing to see here, just Microsoft continuing stubbornly to do the wrong thing

Serious question.

Are they doing the wrong thing? Is there a standard that says the only line ending is \n.

Is the Mac also doing the wrong thing then but using just \r?

Re: The Great Newline Schism

#10
post #5

Nothing to see here, just Microsoft continuing stubbornly to do the wrong thing

Now, see, that's the kind of ignorance the article was trying to treat. It's very much not microsoft's fault. Early teletypes had two command bytes: "\n" (newline) would advance the paper, and "\r" (carriage return) would move the type head (on a typewriter, the paper carriage -- thus the name) back to the start of the line. If you wanted to do both, you had to send both.

So if you have a text file to print, you'll either need to include both command bytes or else have some "terminal driver" software do the translation for you from a single "end of line" marker. This feature was a Unix innovation. It didn't exist in other contemporary systems (VMS, for instance, from which CP/M and MS-DOS stole lots of other ideas).

So the problem was that Gary Kildall, in 1977, failed to recognize the great idea Unix had and cloned VMS behavior instead (and Bill Gates likewise cloned CP/M instead of Unix). And due to backwards compatibility pressure we're still living with the result. But it's clearly not a case of someone having made the "wrong choice".

Post reply on HN