別の質問、垂直タブとは何ですか?、垂直タブ文字が最初に使用された目的を説明します。
しかし、Cや他の多くのプログラミング言語で、そもそもU+000B VERTICAL TAB
エスケープシーケンス()を割り当てるのに十分重要であると考えられたのはなぜですか?'\v'
も参照してください:これについて不平を言う人がいます。
別の質問、垂直タブとは何ですか?、垂直タブ文字が最初に使用された目的を説明します。
しかし、Cや他の多くのプログラミング言語で、そもそもU+000B VERTICAL TAB
エスケープシーケンス()を割り当てるのに十分重要であると考えられたのはなぜですか?'\v'
も参照してください:これについて不平を言う人がいます。
正解:テレタイプ
区切り文字と関係があります。私の両親はビッグデータを扱い、多くの放送局とFortune500は80年代までパンチカードを使用していました。ほとんどの言語は元々、画面ではなくテレタイプマシンで入力および使用するように設計されていたことを忘れないでください。プリンタは、今日のようにドキュメントを印刷するためだけのものではありませんでした。モニターは全くありませんでした。プリントアウトはディスプレイでした。
それを念頭に置いて、垂直タブは非常に便利でした。テレタイプ後でも、私の両親は、変更された部分だけを上書きすることで、フォームのレンダリングを高速化するために使用しました。当時はテキストのみの表示でも遅すぎたからです!
楽しいビデオ:https ://www.youtube.com/watch?v = qv5b1Xowxdk
しかし、もっと重要なことは、現代のオペレーティングシステムには、垂直タブだけでなく、テレタイプマシンの遺物がたくさんあるということです。私たちは彼らにとても慣れているので、人々はもはや彼らのことを考えさえしませんが、彼らはそれほど奇妙ではありません。70年代からコーディングしていない限り、多くの人がこれらの規則がどこから来ているのか理解していないと思います。
コードまたは電子メールを80列でテキストラップしますか?
IBMのパンチカードは80文字幅だったからです。
Windowsビットマップなどのボトムアップエンコーディングをサポートするグラフィックス、または下隅に原点があるグラフィックスライブラリを使用していますか?
テレタイプマシンが下から上にスクロールしたためです。
\ nを使用して新しいテキスト行を示しますか?
\ nは、テレタイプで使用される前の手動タイプライターからの改行を表します。
Linuxで/dev/ ttyに書き込んで、友達にメッセージを送ったことがありますか?
TTYはテレタイプの略です。
車輪の再発明の代わりに既存のライブラリを使用するように誰かに言ったことはありますか?ライブラリやフレームワークを自分で使用したことがありますか?
それが古いコードがぶら下がっている方法だからです。確かに、メリットは害を上回りますが、ライブラリの上に構築されたライブラリは、この忍び寄る依存関係につながります。元のライブラリがなくなってから長い間、互換性のあるものはすべて、その規則が存続するようになります。 ...そして...そして...
これらのテレタイプの規則は、オペレーティングシステム自体にしっかりと定着しているので、誰かがオペレーティングシステムを最初から作成するまで、これが常に続くことを完全に期待しています。なぜC言語がそれらを採用したのかは疑問の余地がありません。Cは、LISP、Forth、COBOL、FORTRAN、Pascal、さらにはBASICのずっと後に登場したことを忘れないでください。
PSベル文字を区切り文字として使用することは、非常識なことでした。グラインドグラインドグラインドBEEPグラインドグラインドBEEEEEEPグラインドチュカチュカBEEPグラインドチュカグラインドグラインドBEEEP。ウィズズクランチ。グラインドグラインドビープ...
Cが作成されたとき、垂直タブ文字とベル文字は、ASCIIとEBCDICの間で移植されるコード内の区切り文字として十分に役立つことが期待されていた可能性があり、コードはそれらを表記するための読み取り可能でポータブルな方法を提供する必要がありました。書くことはできますが
#define QVTAB "\ 013" printf( "Field1" QVTAB "Field2");
Cの初期の方言では、そのような使用法は合法ではないと思います。さらに、そのような使用法が許可されている場合でも、引用符で囲まれたバージョンの文字に特別なマクロを使用することは、おそらく少し醜いと考えられていたでしょう。そのようなことがprintfポータブルタイプのフォーマット指定子で必要になることは知っていますが、それはそれがきれいだという意味ではありません。
考慮すべきもう1つのことは、Cは、今後数十年にわたって人々が使用するプログラミング言語になるように設計されていなかったことです。それはいくつかの差し迫ったニーズを解決するために設計されました。K&Rは、1970年代以降、誰かがVTABキャラクターを欲しがるかどうかを気にしませんでした。彼らの直接の顧客が彼らを利用するのであれば、それは彼らを含める完全に正当な理由でした。