近日,關于CRLF(回車換行)這一程序員們耳熟能詳的概念,再次引發(fā)了廣泛的討論。CRLF由CR(r,回車)和LF(n,換行)組成,分別用于將光標移動到當前行的最左側和下移一行。還有一種新行(NL,newline)的概念,它結合了這兩者的功能。CRLF主要是為了兼容不同操作系統的文件格式,Windows系統通常采用CRLF作為換行符,而Unix/Linux和macOS則只使用LF。
SQLite數據庫的創(chuàng)始人D. Richard Hipp近期提出,CRLF已經過時,應被廢除。他認為,CRLF的起源可追溯至70年前的機械電傳打字機時代,在現代計算機環(huán)境中已無實際用途。他指出,在多數編程語言和現代機器中,僅使用LF即可表示新行,CR大多數情況下已無必要。
Hipp的這一觀點迅速在程序員群體中引發(fā)了共鳴,但也有不少人持反對意見。有人認為,CRLF在跨平臺文本文件處理中常引發(fā)混亂,尤其是在編程時解析這些文件。然而,也有人認為處理不同或混合的行結尾并非復雜問題,不應因個別人的便利而改變現有標準。還有觀點指出,真正的問題在于設計不良的Unix工具和Git,它們在處理行結尾時存在問題。
面對激烈的討論,Hipp最終撤回了自己的提議。他承認,盡管自己的想法在理論上近乎成功,但現實中的軟件依賴情況比他預想的要復雜得多。