近日,关于CRLF(回车换行)这一程序员们耳熟能详的概念,再次引发了广泛的讨论。CRLF由CR(r,回车)和LF(n,换行)组成,分别用于将光标移动到当前行的最左侧和下移一行。还有一种新行(NL,newline)的概念,它结合了这两者的功能。CRLF主要是为了兼容不同操作系统的文件格式,Windows系统通常采用CRLF作为换行符,而Unix/Linux和macOS则只使用LF。
SQLite数据库的创始人D. Richard Hipp近期提出,CRLF已经过时,应被废除。他认为,CRLF的起源可追溯至70年前的机械电传打字机时代,在现代计算机环境中已无实际用途。他指出,在多数编程语言和现代机器中,仅使用LF即可表示新行,CR大多数情况下已无必要。
Hipp的这一观点迅速在程序员群体中引发了共鸣,但也有不少人持反对意见。有人认为,CRLF在跨平台文本文件处理中常引发混乱,尤其是在编程时解析这些文件。然而,也有人认为处理不同或混合的行结尾并非复杂问题,不应因个别人的便利而改变现有标准。还有观点指出,真正的问题在于设计不良的Unix工具和Git,它们在处理行结尾时存在问题。
面对激烈的讨论,Hipp最终撤回了自己的提议。他承认,尽管自己的想法在理论上近乎成功,但现实中的软件依赖情况比他预想的要复杂得多。