SQLite之父砲轟回車換行:CRLF已經過時應當廢除
對於程式設計師而言,CRLF(回車換行)肯定不陌生,其中CR (r,回車) 是將遊標移到目前行的最左側,而和LF (n,換行)則是將遊標下移一行。另外還有新行(NL,NewLine),它是指將遊標下移一行,並移動到目前行的最左邊。
CRLF 的存在主要是為了相容於不同作業系統的檔案格式,通常Windows使用CRLF作為換行符,而Unix/Linux和macOS只使用LF。
近日SQLite資料庫的創辦人D. Richard Hipp提出,CRLF已經過時,應當廢除。
Hipp認為,CRLF的起源可以追溯到70年前的機械電傳打字機時代,而現代電腦環境中早已不再需要這樣的字元組合。
他指出,在大多數程式語言和現代機器中,僅使用LF即可表示新行,而CR在大多數情況下已無實際用途。
Hipp甚至提出了四點建議,包括停止使用不必要的CR字元、更改Unicode中U+000a的名稱為”newline”而非”linefeed”等。
此觀點一出,引發了許多程式設計師強烈的共鳴,同時也有不少人持不同的看法。
有人認為CRLF在跨平台文字檔案處理中常常引發混亂,尤其是在程式設計時解析這些檔案時。
但同時也有觀點認為,處理不同或混合的行結尾並不是一個複雜的問題,不應該因為個別人的便利而改變現有的標準。
也有觀點指出,真正的問題在於那些設計不良的Unix工具和Git,它們在處理行結尾時有問題。
面對討論Hipp最終撤回了自己的提議,他承認,儘管自己的想法在理論上幾乎成功,但現實中的軟體依賴情況比他預想的要複雜得多。