web-dev-qa-db-fra.com

Pourquoi 80 caractères sont-ils la limite «standard» pour la largeur du code?

Pourquoi 80 caractères sont-ils la limite "standard" pour la largeur du code? Pourquoi 80 et non 79, 81 ou 100? Quelle est l'origine de cette valeur particulière?

592
fredley

Vous pouvez remercier IBM carte perforée pour cette limite - elle avait 80 colonnes:

IBM punch card

748
Oded

Comme oded mentionné, cette norme de codage commune est le résultat du IBM 1928 format de carte perforée à 80 colonnes , car de nombreuses normes de codage remontent à une époque où les programmes étaient écrits sur punch cartes, une carte/ligne à la fois, et même la transition vers des écrans plus larges n'a pas changé le fait que le code devient plus difficile à lire plus il devient large.

De la page wikipedia sur carte perforée s:

Impact culturel

  • Un héritage du format de carte perforée à 80 colonnes est qu'un affichage de 80 caractères par ligne était un choix courant dans la conception de terminaux basés sur des caractères. En novembre 2011, certains paramètres par défaut de l'interface de caractères, tels que la largeur de la fenêtre d'invite de commandes dans Microsoft Windows, restent définis sur 80 colonnes et certains formats de fichier, tels que FITS, utilisent toujours des images de carte de 80 caractères.

Maintenant, la question est de savoir pourquoi IBM a choisi 80 cartes à colonnes en 1928, alors que Herman Hollerith avait précédemment utilisé cartes à 24 et 45 colonnes ?

Bien que je ne trouve pas de réponse définitive, je soupçonne que le choix était basé sur le nombre typique de caractères par ligne de machines à écrire de l'époque.

La plupart des machines à écrire historiques que j'ai vues avaient une platine largeur d'environ 9 pouces, ce qui correspond à la standardisation des formats de papier à environ 8 "-8,5" de large (voir Pourquoi le format de papier standard aux États-Unis est-il de 8 ½ "x 11"? et Histoire d'ISO216 Série A standard papier ).

Ajoutez un pas de machine à écrire typique de 10 à 12 caractères par pouce et cela conduirait à des documents d'une largeur comprise entre 72 et 90 caractères, selon la taille des marges.

En tant que tel, 80 caractères par ligne auraient représenté un bon compromis entre le pas du trou (petits trous rectangulaires vs trous ronds plus grands) et la longueur de la ligne, tout en conservant la même taille de carte.


Par ailleurs, pas partout spécifie une largeur de ligne de 80 caractères dans leurs normes de codage. Là où je travaille a une limite de 132 caractères, ce qui correspond à la largeur typique large imprimantes ligne d'autrefois, un paysage de 12 pt Impression A4 et la largeur de ligne typique restant dans une fenêtre d'éditeur d'Eclipse (maximisée sur un écran 1920x1200) après prise en compte des vues Explorateur de packages et Contour.

Malgré tout, je préfère toujours un code de 80 caractères car il facilite la comparaison de trois révisions d'un fichier côte à côte sans défilement latéral (toujours mauvais) ou encapsulation des lignes (ce qui détruit la mise en forme du code). Avec un code de 80 caractères, vous n'avez besoin que d'un écran de 240 caractères (1920 pixels à 8 pixels par caractère) pour voir un fusion à trois voies (ancêtre commun, branche locale et branche distante) confortablement sur un seul écran.

258
Mark Booth

Je dirais que c'est aussi parce que les anciens terminaux avaient (principalement) 80x24 caractères: À l'époque des terminaux 80x24 ...

ÉDITER:

Pour répondre plus précisément et plus complètement à la question, 80 caractères est la limite actuelle "universellement acceptée" de la largeur de code à l'intérieur des éditeurs car les formats 80x24 et 80x25 étaient les modes d'écran les plus courants dans les premiers terminaux d'E/S et les ordinateurs personnels ( VT52 - grâce à Sandman4).

Cette limite est toujours valide et en quelque sorte importante à mon humble avis pour deux raisons principales: la géométrie par défaut que de nombreuses distributions Linux attribuent aux fenêtres de terminal nouvellement créées est toujours 80x24 et beaucoup de gens les utilisent telles quelles , sans redimensionnement. De plus, les programmeurs noyau, temps réel et embarqués travaillent souvent dans un environnement "sans tête" sans gestionnaire de fenêtres. Encore une fois, la résolution d'écran par défaut est souvent 80x24 (ou 80x25), et, dans ces situations, il peut même être difficile de modifier ce paramètre par défaut.

Donc, si vous êtes un noyau, un programmeur temps réel ou embarqué, vous devez vous forcer à respecter cette limite, juste pour être un peu plus "amical" envers tout programmeur qui devrait lire votre code.

63
Avio

Bien que ce ne soit probablement pas la raison d'origine de la limite de 80 caractères, une raison pour laquelle elle a été largement acceptée est simplement la lecture de l'ergonomie :

  • Si les lignes sont trop courtes, le texte devient difficile à lire car vous devez constamment passer d'une ligne à l'autre pendant la lecture.
  • Si les lignes sont trop longues, le saut de ligne devient trop difficile car vous "perdez la ligne" en revenant au début de la ligne suivante (cela peut être atténué en ayant un plus grand espacement entre les lignes, mais cela gaspille également de l'espace).

Ceci est largement connu et accepté en typographie. La recommandation standard (pour le texte dans les livres, etc.) est d'utiliser quelque chose de l'ordre de 40-90 caractères par ligne et idéalement environ 60 (voir par exemple Wikipedia , Markus Itkonen: Typographie et lisibilité ).

Si vous visez 60 caractères par ligne, votre limite supérieure doit évidemment être un peu plus élevée pour accueillir l'expression longue occasionnelle (et des choses comme les marqueurs de marges et les numéros de ligne), donc avoir une limite supérieure de 70-80 est logique.

Cela explique probablement pourquoi la limite de 80 caractères a été reprise par de nombreux autres systèmes.

55
sleske

Une question connexe est "pourquoi la colonne 80 a-t-elle persisté". Même les réponses sur cette page ont approximativement cette largeur. Je suis d'accord avec les raisons historiques de 80 colonnes, mais la question est de savoir pourquoi la norme a persisté. Je revendiquerais la lisibilité - pour la prose et le code. Nos esprits ne peuvent absorber que tant d'informations en une seule pièce. J'utilise toujours le marqueur de 80 colonnes dans mon éditeur de code pour me rappeler lorsqu'une instruction devient trop longue et obscure. Cela me laisse également beaucoup d'espace d'écran pour le navigateur et les fenêtres de support IDE. Longue vie à 80 - comme guide et non comme règle.

28
Paul Marrington

Une autre limite de longueur de ligne courante à l'époque des polices à pas fixe était de 72 caractères. Exemples: code Fortran, courrier, actualités.

L'une des raisons était que les colonnes 73 à 80 d'une carte perforée étaient souvent réservées à un numéro de série. Pourquoi un numéro de série? Si vous avez laissé tomber un jeu de cartes, vous pouvez ramasser les cartes dans n'importe quel ordre, aligner les coins supérieurs gauches (qui ont toujours eu une coupe diagonale) et utiliser une machine de tri de cartes pour les remettre en ordre.

Une autre raison de la limite de 72 caractères était que les polices courantes avaient 10 points de haut et 6 points (1/12 ") de large. Une page A4 ou 8,5" de large pouvait contenir 72 caractères dans une colonne de 6 "de large et avait encore de la marge pour les marges de plus d'un pouce.

12
Larry Tesler

Personnellement, je m'en tiens à "environ la colonne 80" pour ma fin de ligne, car au-delà de cela, cela entraîne un emballage ou une perte de code lorsque vous l'imprimez.

Il existe également un héritage de cartes perforées, mais je ne pense pas que les imprimantes laser ou le papier de 8,5 x 11 pouces aient été configurés pour se conformer aux limitations des cartes perforées.

7
CMike

Les papiers de défilement des imprimantes étaient au format Lettres ou 15 "de large.

Il s'agissait des imprimantes en ligne à 80 cps pour la copie papier de codes ou de rapports, et plus tard, Epson prend en charge l'impression condensée à 132 cps (code d'échappement\015 pour l'impression condensée).

4
Rony

L'une des raisons des 80 cartes à colonnes peut être associée au "poinçon à main" qui était probablement utilisé avant les machines à perforer les cartes électroniques. C'est celui que j'ai utilisé au début des années 70 sur un site informatique à châssis principal ICL System 4-50. Il fallait frapper une section de trois? poinçonner des couteaux dans le chariot en même temps.

1
Ray Denton