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