Печальное состояние «разделителей записей» или «разделителей строк» является наследием мрачных эпох компьютеров.
Теперь мы считаем само собой разумеющимся, что все, что мы хотим представить, является в некотором роде структурированными данными и соответствует различным абстракциям, которые определяют строки, файлы, протоколы, сообщения, разметку, что угодно.
Но однажды это было не совсем так. В приложения встроены управляющие символы и обработка для конкретного устройства. Системы с мертвым мозгом, которые требовали как CR, так и LF, просто не имели абстракции для разделителей записей или ограничителей строки. CR был необходим для того, чтобы телетайп или видеодисплей вернулись в первый столбец, а LF (сегодня, NL, тот же код) был необходим, чтобы заставить его перейти к следующей строке. Я предполагаю, что идея сделать что-то кроме сброса необработанных данных на устройство была слишком сложной.
Unix и Mac фактически указали абстракцию для конца строки, представьте это. К сожалению, они указали разные. (Unix, гм, пришел первым.) И, естественно, они использовали управляющий код, который уже был «близок» к SOP
Поскольку почти все наше операционное программное обеспечение сегодня является потомком операционной системы Unix, Mac или MS, мы застряли в неразберихе с окончанием строки.
\n
обычно представлен переводом строки, но это не обязательно перевод строки.