Pourquoi 80 caractères sont-ils la limite "standard" pour la largeur de code? Pourquoi 80 et non 79, 81 ou 100? Quelle est l'origine de cette valeur particulière?
Pourquoi 80 caractères sont-ils la limite "standard" pour la largeur de code? Pourquoi 80 et non 79, 81 ou 100? Quelle est l'origine de cette valeur particulière?
Réponses:
Vous pouvez remercier la carte perforée IBM pour cette limite - elle comportait 80 colonnes:
Comme Oded mentionné, cette norme de codage commune est le résultat de 1928 de l'IBM 80 colonne format carte perforée , car de nombreuses normes de codage remontent à une époque où les programmes ont été écrits sur des cartes perforées, une carte / ligne à la fois, et même la transition Les écrans plus larges n'ont pas modifié le fait que le code devient plus difficile à lire plus il devient large.
De la page wikipedia sur les cartes perforées :
Impact culturel
- L'un des héritages du format de carte perforée à 80 colonnes est qu'un affichage courant de 80 caractères par ligne était un choix courant dans la conception de terminaux basés sur des caractères. Depuis novembre 2011, certaines valeurs par défaut d'interface de caractère, telles que la largeur de la fenêtre d'invite de commande dans Microsoft Windows, sont toujours définies sur 80 colonnes et certains formats de fichier, tels que FITS, utilisent encore des images de carte de 80 caractères.
Maintenant, la question est de savoir pourquoi IBM a choisi 80 cartes de colonne en 1928, alors qu'Herman Hollerith utilisait auparavant des cartes de 24 et 45 colonnes .
Bien que je ne puisse pas trouver de réponse définitive, je suppose 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 largeur de plateau d'environ 9 pouces, ce qui correspond à la standardisation des formats de papier d'environ 8 "à 8,5" (voir Pourquoi le format de papier standard aux États-Unis est-il de 8 ½ "x 11 "? et l’ histoire de la norme papier ISO216 A ).
Ajoutez un pas typique de machine à écrire de 10 à 12 caractères par pouce, ce qui donnerait des documents d'une largeur comprise entre 72 et 90 caractères, en fonction de la taille des marges.
Ainsi, 80 caractères par ligne auraient représenté un bon compromis entre le pas de trou (petits trous rectangulaires par rapport aux plus ronds) et la longueur de la ligne, tout en conservant la même taille de carte.
Incidemment, 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 des imprimantes classiques à lignes larges jadis, à une impression A4 en format paysage et à la largeur de ligne typique conservée dans une fenêtre d’éditeur d’Eclipse (maximisée sur un écran 1920x1200) après l’Explorateur de packages et Les vues d'ensemble sont prises en compte.
Même dans ce cas, je préfère toujours un code de 80 caractères, car cela facilite la comparaison de trois révisions d’un fichier côte à côte sans défilement latéral (toujours incorrect) ni de lignes d’emballage (qui détruisent le formatage du code). Avec un code large de 80 caractères, un écran large de 240 caractères (1920 pixels de 8 pixels par caractère) suffit pour afficher une fusion complète à trois voies (ancêtre commun, branche locale et branche distante) sur un seul écran.
Je dirais que c'est aussi parce que les anciens terminaux étaient (principalement) de 80x24 caractères: À l'époque des terminaux 80x24 ...
MODIFIER:
Pour répondre plus précisément à la question, 80 caractères constituent la limite actuelle "universellement acceptée" de largeur de code dans les éditeurs, car les formats 80x24 et 80x25 étaient les modes d'affichage les plus courants dans les premiers terminaux d'E / S et les ordinateurs personnels ( VT52 - merci à Sandman4).
Cette limite est toujours valable et, à mon avis, importante à mon avis pour deux raisons principales: la géométrie par défaut attribuée par de nombreuses distributions Linux aux fenêtres de terminaux nouvellement apparues est toujours de 80x24 et beaucoup de personnes les utilisent telles quelles , sans redimensionnement. De plus, les programmeurs noyaux, temps réel et intégrés travaillent souvent dans un environnement "sans tête" sans aucun gestionnaire de fenêtres. Là encore, 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 programmeur noyau, temps réel ou intégré, vous devez vous forcer à respecter cette limite, juste pour être un peu plus "amical" envers tout programmeur qui devrait lire votre code.
Bien que ce ne soit probablement pas la raison initiale de la limite de 80 caractères, une des raisons pour laquelle elle a été largement acceptée est simplement la lecture de l'ergonomie :
Ceci est largement connu et accepté en typographie. La recommandation standard (pour le texte de livres, etc.) est d'utiliser environ 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 permettre les expressions longues occasionnelles (et des éléments tels que les marqueurs de marges et les numéros de ligne). Il est donc judicieux de définir une limite supérieure de 70 à 80.
Cela explique probablement pourquoi la limite de 80 caractères a été prise en charge par de nombreux autres systèmes.
Une question connexe est "pourquoi la colonne 80 a-t-elle persisté". Même les réponses sur cette page sont approximativement de 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 voudrais réclamer la lisibilité - pour la prose et le code. Nos esprits peuvent seulement absorber autant d'informations en un seul morceau. J'utilise toujours le marqueur 80 colonnes dans mon éditeur de code pour me rappeler quand une déclaration devient trop longue et trop obscure. Cela me laisse également beaucoup d’écran à l’écran pour le navigateur et les fenêtres d’appui IDE. Longue vie à 80 colonnes - comme guide, pas comme règle.
Une autre limite de longueur de ligne courante dans les jours de polices à espacement fixe était de 72 caractères. Exemples: code Fortran, courrier, nouvelles.
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 déposez un jeu de cartes, vous pouvez ramasser les cartes dans n’importe quel ordre, aligner les coins supérieurs gauche (qui ont toujours une coupe en diagonale) et utiliser une machine à trier les cartes pour les remettre en ordre.
Une autre raison de la limite de 72 caractères est que les polices courantes ont une hauteur de 10 points et une largeur de 6 points (1/12 "). Une page au format A4 ou large de 8,5" peut contenir 72 caractères dans une colonne de 6 "de large tout en laissant une marge pour les marges. de plus d'un pouce.
Personnellement, je m'en tiens à "à propos de la colonne 80" pour ma fin de ligne car plus loin que cela provoque un wrapping ou une perte de code lorsque vous l'imprimez.
Les cartes perforées sont également héritées, mais je ne pense pas que les imprimantes laser ou le papier 8,5 x 11 pouces étaient configurés pour respecter les limites des cartes perforées.
Faites défiler dans les papiers des imprimantes étaient de format lettre ou 15 "de large.
Il s’agissait des imprimantes à 80 cps pour la copie sur 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).
Une des raisons pour lesquelles les cartes à 80 colonnes peuvent être associées au «perforateur manuel» qui était probablement utilisé avant les machines à perforer les cartes électroniques. C’est celui que j’avais utilisé au début des années 70 sur un site principal ICL System 4-50. Il fallait percer une section de trois? poinçons couteaux dans le chariot en même temps.