2024.11.07 16:30

SQLite之父炮轟程式設計師熟悉的換行字元「CR LF」已經過時,應當被廢除

ADVERTISEMENT

對於程式設計師而言,提到CRLF換行字元,其中CR(Carriage Return)表示游標回到起始點(\r),LF(Line Feed)表示游標移往下一行(\n)。

 

ADVERTISEMENT

CRLF 的存在主要是為了相容不同作業系統的檔案格式,通常Windows使用CRLF作為分行符號,而Unix/Linux和macOS只使用LF。

近日SQLite資料庫的創始人D. Richard Hipp提出,CRLF已經過時,應當被廢除。

Hipp認為,CRLF的起源可以追溯到70年前的機械打字機時代,而現代電腦環境中早已不再需要這樣的字元組合。

ADVERTISEMENT

他指出,在大多數程式語言和現代電腦中,僅使用LF即可表示新行,而CR在大多數情況下已無實際用途。

Hipp甚至提出了四點建議,包括停止使用不必要的CR字元、更改Unicode中U+000a的名稱為「newline」而非「linefeed」等。

此觀點一出,引發了諸多程式設計師強烈的共鳴,同時也有不少人持不同的看法。

ADVERTISEMENT

有人認為CRLF在跨平台文字檔處理中常常引發混亂,尤其是在程式時解析這些檔案時。

但同時也有觀點認為,處理不同或混合的行結尾並不是一個複雜的問題,不應該因為個別人的便利而改變現有的標準協議。

還有觀點指出,真正的問題在於那些設計不良的Unix工具和Git,它們在處理文字行列結尾時本身就有問題。

ADVERTISEMENT

面對眾多混亂的討論,Hipp最終撤回了自己的提議,他承認,儘管自己的想法在理論上幾乎沒錯,但現實中的軟體依賴情況比他預想的要複雜得多。

 

ADVERTISEMENT