プログラマーにとって、CRLF (キャリッジ リターンとライン フィード) は確かによく知られています。 CR (r、キャリッジ リターン) はカーソルを現在の行の左端に移動し、LF (n、ライン フィード) はカーソルを 1 行下に移動します。新しい行 (NL、NewLine) もあります。これは、カーソルを 1 行下に、現在の行の左端に移動することを指します。
CRLF は主に、さまざまなオペレーティング システムのファイル形式と互換性を持たせるために存在します。通常、Windows では改行文字として CRLF が使用されますが、Unix/Linux および macOS では LF のみが使用されます。
最近、SQLite データベースの創設者である D. Richard Hipp は、CRLF は時代遅れであり廃止されるべきであると提案しました。
ヒップ氏は、CRLF の起源は 70 年前の機械式テレタイプ機械の時代にまで遡ることができ、そのような文字の組み合わせは現代のコンピューター環境ではもはや必要ではないと考えています。
同氏は、ほとんどのプログラミング言語や最新のマシンでは改行を表すために LF のみが使用され、CR はほとんどの場合実際には役に立たないと指摘しています。
Hipp 氏は、不必要な CR 文字の使用をやめること、Unicode の U+000a の名前を「改行」ではなく「改行」に変更することなど、4 つの提案も行いました。
この見解が発表されるとすぐに、多くのプログラマーの間で強い共鳴を呼び起こし、異なる見解を持つ人も多くいました。
CRLF は、特にプログラミング時にこれらのファイルを解析するときに、クロスプラットフォームのテキスト ファイル処理で混乱を引き起こすことが多いと考える人もいます。
しかし、異なる行末や混在した行末への対応は複雑な問題ではなく、個人の都合で既存の規格を変更すべきではないという見方もある。
また、本当の問題は設計が不十分な Unix ツールや Git にあり、行末の処理に問題があると主張する人もいます。
この議論に直面して、ヒップ氏は最終的に自分の提案を撤回し、自分のアイデアは理論的にはほぼ成功したが、ソフトウェアの依存関係の現実は予想よりはるかに複雑だったことを認めた。