web-dev-qa-db-ja.com

80文字がコード幅の「標準」の制限であるのはなぜですか?

80文字がコード幅の「標準」制限であるのはなぜですか? 80、79、81、100ではないのはなぜですか?この特定の価値の起源は何ですか?

592
fredley

この制限についてIBM パンチカード に感謝することができます-80列でした:

IBM punch card

748
Oded

奇数 で述べたように、この一般的なコーディング標準は、IBMの1928 80カラムパンチカードフォーマット の結果です。カード、一度に1つのカード/行、さらに広い画面への移行でさえ、コードが広くなるほどコードが読みにくくなるという事実は変わりませんでした。

パンチカード sのウィキペディアのページから:

文化的影響

  • 80カラムのパンチカード形式の遺産は、文字ベースの端末の設計では、1行あたり80文字の表示が一般的な選択であったことです。 2011年11月の時点で、Microsoft Windowsのコマンドプロンプトウィンドウの幅などの一部の文字インターフェイスのデフォルトは80カラムに設定されたままで、FITSなどの一部のファイル形式は引き続き80文字のカード画像を使用します。

Herman Hollerith が以前に使用されていた1928年に、なぜIBMが80-カラムカードを選択したのか 24および45カラムカード

私は決定的な答えを見つけることができませんが、その選択は当時のタイプライターの一般的な 1行あたりの文字数 の数に基づいていたのではないかと思います。

ほとんどの 歴史的なタイプライター 私が見た プラテン 幅は約9インチであり、これは用紙サイズを約8 "-8.5"幅に標準化することに対応します( なぜUS 8½ "x 11"の標準用紙サイズなのか および ISO216の歴史Aシリーズ紙の標準 )。

1インチあたり10〜12文字の一般的なタイプライターピッチを追加すると、マージンのサイズに応じて、72〜90文字の幅のドキュメントが作成されます。

そのため、1行あたり80文字であれば、同じカードサイズを維持しながら、穴のピッチ(小さな長方形の穴と大きな穴の穴)と行の長さの間の適切な妥協点を表すことになります。


ちなみに、どこでもコーディング標準で80文字の線幅を指定しているわけではありません。私が作業している場所には、標準的なwideline printers の幅に対応する132文字の制限があります。パッケージエクスプローラーとアウトラインビューを考慮した後、Eclipseのエディターウィンドウに残っているA4プリントアウトと典型的な線幅(1920x1200画面で最大化)。

それでも、横にスクロールしたり(常に悪い)行を折り返したり(コードのフォーマットを壊したり)したりすることなく、ファイルの3つのリビジョンを並べて比較することが容易になるため、80文字幅のコードを使用します。 80文字幅のコードでは、完全な ウェイマージ (共通の祖先、ローカルブランチ、リモートブランチ)を快適に表示するには、240文字のワイドスクリーン(1文字あたり8ピクセルで1920ピクセル)が必要です1つの画面で。

258
Mark Booth

古い端末のサイズが(ほとんど)80x24文字だったのもその理由だと思います: 80x24端末の時代に戻って...

編集:

より正確かつ完全に質問に答えるために、80 x 24および80 x 25フォーマットが初期のI/O端末およびパーソナルコンピューター( VT52 -Sandman4に感謝)。

この制限は依然として有効であり、2つの主な理由から何とか重要なIMHOです:多くのLinuxディストリビューションが新しく生成されたターミナルウィンドウに割り当てるデフォルトのジオメトリは依然として80x24であり、多くの人がそのまま使用しますas-is、サイズ変更なし。さらに、カーネル、リアルタイム、および組み込みのプログラマーは、ウィンドウマネージャーのない「ヘッドレス」環境で作業することがよくあります。この場合も、デフォルトの画面解像度は多くの場合80x24(または80x25)であり、このような状況では、このデフォルト設定を変更するのが難しい場合さえあります。

したがって、カーネル、リアルタイム、または組み込みのプログラマーである場合は、コードを読み取る必要があるプログラマーに対して少し「友好的に」なるように、この制限を尊重するように強制する必要があります。

63
Avio

おそらく80文字の制限の元の理由ではないかもしれませんが、広く受け入れられた理由は、単に人間工学を読んでいるです。

  • 行が短すぎると、読みながら1つの行から次の行に常にジャンプする必要があるため、テキストが読みにくくなります。
  • 行が長すぎる場合、次の行の先頭に戻るときに「行を失う」ため、行のジャンプが難しくなります(これは行間を大きくすることで軽減できますが、これもスペースを浪費します)。

これは広く知られ、タイポグラフィで受け入れられています。標準的な推奨事項(本などのテキストの場合)は、1行あたり40〜90文字、および理想的には約60(たとえば WikipediaMarkus Itkonen:タイポグラフィと読みやすさ を参照)。

1行あたり60文字を目標とする場合、長い式(およびマージンマーカーや行番号など)に対応するために上限を明らかに少し高くする必要があるため、上限を70〜80にすると意味があります。

これはおそらく、80文字の制限が他の多くのシステムに引き継がれた理由を説明しています。

55
sleske

関連する質問は、「なぜ80列が保持されるのか」です。このページの応答でさえ、ほぼその幅です。 80列の歴史的な理由には同意しますが、問題は、なぜ標準が存続したのかです。私は読みやすさを主張します-散文とコードについて。私たちの心は、一片で多くの情報を吸収することができます。コードエディターで80列のマーカーを引き続き使用して、ステートメントが長くなりすぎてわかりにくくなったことを通知します。また、ブラウザ用の十分な画面の不動産と、サポートするIDE windows。Long live 80 column-ガイドとしてのルールではありません。

28
Paul Marrington

固定ピッチフォントの時代におけるもう1つの一般的な行の長さの制限は、72文字でした。例:Fortranコード、メール、ニュース。

1つの理由は、パンチカードの73〜80列がシリアル番号用に予約されていることが多かったためです。なぜシリアル番号なのですか?カードデッキを落とした場合は、カードを任意の順序で拾い、左上隅(常に斜めにカットされていた)を並べ、カード分類機を使用して順番に戻すことができます。

72文字の制限のもう1つの理由は、一般的なフォントの高さが10ポイント、幅が6ポイント(1/12 ")であったことです。A4または8.5"の幅のページでは、6 "幅の列に72文字を保持でき、余白の余地がありますインチ以上の。

12
Larry Tesler

私は自分で行の終わりを「約80桁」に固執します。これを超えると、印刷したときにコードが折り返されたり、コードが失われたりするためです。

パンチカードのレガシーもありますが、レーザープリンターや8.5x11インチの用紙がパンチカードの制限に準拠するように設定されていないと思います。

7
CMike

プリンター用紙をスクロールすると、レターサイズまたは15インチ幅になります。

これは、コードまたはレポートのハードコピー用の80 cpsラインプリンターであり、後でEpsonは132 cps圧縮印刷をサポートします(圧縮印刷用のエスケープコード\ 015)。

4
Rony

80列のカードの理由の1つは、おそらく電子カードパンチマシンの前に使用されていた「ハンドパンチ」に関連している可能性があります。 ICLシステム4-50メインフレームコンピュータサイトで70年代前半に使用したものです。 1つは3つのセクションをパンチする必要がありましたか?キャリッジのナイフを同時に打ちます。

1
Ray Denton