O limite de 80 caracteres ainda é relevante em tempos de monitores widescreen? [fechadas]

56

em um monitor widescreen, é possível ver facilmente mais de 80 caracteres por vez, sem barras de rolagem. até linus torvalds vê o limite de 80 caracteres como desatualizado .

então, o limite de 80 caracteres ainda é relevante em tempos de monitores widescreen?

lesmana
fonte
11
Há uma boa razão para manter as linhas curtas, por exemplo, no Eclipse. Isso permite que você imprima seus programas em uma impressora normal em uma fonte legível sem quebra de linha.
Em que contexto? Se você está perguntando em um contexto de programação específico, eu votaria para reabrir.
Nicole
A quebra de linha do Visual Studio está desfeita, portanto, a maioria dos usuários a desabilita. Em vez disso, eles colocam quebras de linha manualmente. Isso parece terrível para qualquer pessoa com uma largura de tela diferente. visualstudio.uservoice.com/forums/121579-visual-studio/…
Coronel Panic

Respostas:

28

Ainda existem vários motivos para aderir a um limite de 80 caracteres (ou, um limite de 74 caracteres é ainda melhor; ele permite que o código permaneça com menos de 80 colunas, mesmo quando marcadores diff e citações de email forem adicionadas, se você revisar o código em mailing lists).

Mesmo na era dos monitores widescreen, eu gosto de ter várias janelas abertas lado a lado, mostrando diferentes partes do código. Por exemplo, eu normalmente tenho um navegador da Web e e-mail abertos em uma tela e dois arquivos e um terminal abertos lado a lado em um segundo monitor. Se você possui linhas com mais de 80 colunas, é necessário lidar com o editor que as agrupa (o que é feio e dificulta a navegação pelo código) ou alarga as janelas para que não se encaixe na tela em uma vez.

Mesmo que você não edite normalmente dessa maneira, se alguma vez usar uma ferramenta de comparação lado a lado, apreciará arquivos com comprimentos de linha razoáveis, o que facilitará sua visualização.

Há também um problema de densidade de código. Eu gosto de ter muito contexto ao ler código. É muito, muito mais rápido olhar para cima e para baixo em uma janela do que para rolar. Se você possui linhas muito longas, também costuma ter linhas que variam muito em comprimento, levando a muito espaço desperdiçado na tela e podendo ajustar menos código na tela em um determinado momento geral.

E, finalmente, se você tiver linhas muito longas, isso geralmente significa que você tem linhas muito complicadas, indendações profundas ou que possui identificadores muito longos. Tudo isso pode ser um problema. Linhas complicadas provavelmente estão fazendo muito; se você pode dividi-lo em várias linhas mais simples, provavelmente deveria. Recuo profundo significa que você provavelmente está aninhando muitos loops e condicionais, o que pode tornar seu código confuso; considerando a refatoração em várias funções. E se seus identificadores forem muito longos, pode dificultar a leitura do seu código. As pessoas geralmente reconhecem as palavras como unidades individuais; eles não lêem todos os caracteres, um por um, mas observam a forma geral da palavra. Identificadores longos são mais difíceis de distinguir dessa maneira e, geralmente, se forem longos, contêm informações redundantes ou repetitivas.

Agora, embora ainda seja uma boa prática manter o código abaixo de 80 colunas, essa não é uma daquelas regras que precisam ser seguidas religiosamente, contorcendo-se para fazer com que algumas linhas se ajustem quando não o fazem. Sugiro que você tente manter todo o seu código em 80 colunas, mas quando ele simplesmente não se encaixar, não se preocupe muito.

Brian Campbell
fonte
3
Acordado. No entanto, identificadores longos às vezes são incentivados (por diretrizes de codificação como "usar nomes significativos" ou "evitar abreviações enigmáticas") ou necessários (como std::vector<...>::const_iterator), embora no último caso, as coisas geralmente possam ser atenuadas pelos typedefs.
Musiphil
Ótimas razões. Não tenho certeza de que o comprimento exato da linha seja importante, desde que sua equipe (ou lista de discussão?) Concorde com isso. Pessoalmente, aceito a sugestão do tio Bob de nunca exceder 120 caracteres.
Allan
11
@musiphil Sim, foi por isso que incluí o último parágrafo. Corri para linhas em C ++, onde simplesmente não podia ajustar o nome da classe, o nome do método e o tipo de retorno em uma linha de 80 colunas ao declarar o método. Em vez de fazer uma quebra de linha realmente estranha, é melhor simplesmente quebrar a regra de 80 colunas (ou 100 colunas) para essa linha.
Brian Campbell
46

Se eu mantiver minhas linhas com menos de 100 caracteres, posso ter duas janelas do editor lado a lado em um monitor widescreen. É muito útil ter o arquivo de cabeçalho da classe e a implementação visíveis ao mesmo tempo ou ter um código de um lado que chama o código do outro. E, se eu mantiver as linhas curtas, não preciso de uma barra de rolagem horizontal nas janelas do editor, o que me dará mais espaço vertical.

80 caracteres podem estar desatualizados, mas há algum mérito em manter as coisas dentro da razão.

Niall C.
fonte
11
Com +1, abro frequentemente vários arquivos de origem lado a lado no Vim ou em outros editores. Com uma fonte suficientemente pequena e uma margem direita razoavelmente estreita, posso obter rapidamente uma boa visão geral do projeto e até abrir muita documentação.
greyfade
4
80 caracteres ainda são relevantes, porque muitas pessoas optam por ter seus terminais e editores tão largos; portanto, se você se limitar a 80, será amigável com essas pessoas, em vez de exigir que elas reorganizem todas as janelas ou lidem com quebra de linha ou rolagem horizontal.
Brian Campbell
11
80 caracteres ainda é razoável; ir além desse tempo incentiva o código aninhado demais (em vez de refatorar!) e ter muitas janelas lado a lado é excepcionalmente útil. Adicionar outro monitor apenas aumenta o número de janelas que você pode ver de uma vez!
Donal Fellows
11
80 é amigável para o VMS, talvez. Perdoem a minha nova forma de pensar a idade, mas devemos estender o limite, sempre que possível e mantê-lo sempre que necessário ..
Ross
29

Acho que o monitor não tem nada a ver com isso - pelo menos não mais.

Se você não pode codificar uma linha com 80 caracteres, provavelmente é um sinal de código incorreto. Expressões muito complexas. Recuo muito profundo. etc. Você deve parar e repensar o que está fazendo.

Mas se você tiver certeza de que o código exigiu mais de 80 linhas, vá em frente e faça-o. Eu acho que é melhor ter um código que ultrapasse os 80 caracteres do que adicionar alterações idiomáticas apenas para torná-lo menor.

Eu pessoalmente odeio esse tipo de coisa:

ret = my_function(parameter1, \
                  parameter2, \
                  parameter3, parameter4);

Em vez de simplesmente:

ret = my_function(parameter1, parameter2, parameter3, parameter4);
Cesar Canassa
fonte
5
Certamente, se a linha 3 no primeiro exemplo não for muito longa, a linha 2 pode ser combinada na linha 1, o que a torna muito mais legível. (Que língua requer novas linhas escapou entre parênteses?)
11
Ahh, isso é apenas um pseudo-código que escrevi. Mas acho que C exige isso.
Cesar Canassa
4
Somente nas definições de macro de várias linhas, que são (ou devem ser) raras. Isso afeta significativamente a escolha do comprimento máximo da linha (manter essas barras invertidas não é divertido), por isso estou curioso para saber por que você o mostra. Parece ser um homem de palha ?
2
Se eu tiver o problema de quebrar uma linha em uma chamada de função, colocaria cada parâmetro em sua própria linha, recuado por um nível.
starblue
20

Para codificação?

Certamente sim. Um ser humano normal não consegue ler muito bem. Com poucas colunas, você move menos os olhos, concentra-se melhor e atrasa o cansaço. É um ganho mínimo, mas importante.

Maniero
fonte
3
Embora eu ache o código muito diferente da prosa, é cansativo ler código que periodicamente (ou seja, a prosa geralmente seria muito mais consistente) estende as linhas para mais de 120 colunas.
6

Sim, existem razões para limitar o comprimento da linha de código:

  1. Embora nossas telas tenham se ampliado, às vezes você precisa imprimir seu código. Se apenas por esse motivo .
  2. Os espectadores com dificuldade exibem linhas com uma divisão vertical - isso se torna mais difícil se as linhas tiverem o tamanho que uma tela ampla permitir.

Dito isto, 80 é um pouco demais. Mas, ainda assim, algumas limitações provavelmente são uma boa idéia como princípio de design.

Eu diria que longas filas extras não devem ser proibidas, porque ocasionalmente são necessárias. Mas se a maioria das funções estiver visível apenas em uma tela de 30 ", o código terá alguns problemas.

Assaf Lavie
fonte
5

É arbitrário, mas há um limite não arbitrário para o que é fácil de ler. Acho que colunas de texto super amplas são muito difíceis de digitalizar e ler, independentemente de serem códigos ou prosa. Além disso, como muitas outras respostas apontaram, não é como se esse código fosse a única coisa na tela. É ótimo ter duas ou mais janelas de código ativadas ao mesmo tempo e ajustá-las em um monitor de tela ampla.

jerwood
fonte
3

Provavelmente não é relevante escolher exatamente um limite de 80 caracteres; o que mudaria se o limite fosse 85, por exemplo?

É verdade que os monitores usados ​​hoje em dia têm resoluções mais altas, mas em um editor de texto / IDE, nem todo o espaço é ocupado na exibição de texto; no editor eu uso mostra no lado esquerdo a lista dos arquivos incluídos no projeto.

A resolução usada em um netbook ou notebook não é a mesma usada em monitores; provavelmente faz sentido usar um limite de caracteres que não crie "problemas" para ninguém.

kiamlaluno
fonte
5
80 caracteres era o limite máximo do número de colunas no cartão perfurado!
ChrisF
5
Não importa qual é o padrão, mas se todo mundo trabalha no mesmo padrão, isso facilita a vida.
Skilldrick
2

Realmente depende do ambiente de desenvolvimento.

Por exemplo, em uma grande corporação com milhares de desenvolvedores, provavelmente há centenas de pessoas que, ao longo da vida de um produto, terão que examinar uma parte de seu código. Com tantas pessoas, é provável que existam alguns que, por qualquer motivo (hardware mais antigo, netbooks, etc.) estão operando a 800x600 ou menos. Há algum valor em acomodá-los.

Na minha empresa de 25 pessoas, porém, eu digo que estrague tudo. Todos nós estamos usando monitores modernos duplos com a resolução máxima - 120-140 ou mais é a orientação informal.

Fishtoaster
fonte
2

Ter algum limite certamente faz sentido. Mas o limite de 80 caracteres é muito restritivo. Eu prefiro algo como limite de 96 caracteres. É largo o suficiente para a maior parte do código com o qual tenho de lidar e é estreito o suficiente para que dois arquivos possam ser colocados lado a lado para diferenciar (em uma tela ampla).

Acredito que a legibilidade do código supera todas as outras preocupações. E com 96 caracteres por código de linha pode ser muito mais legível do que com 80.

Não acredito que a maioria das pessoas defina seus terminais com 80 caracteres de largura, não que as impressoras tenham que quebrar linhas com mais de 80 caracteres. Não é um limite difícil, como costumava ser no passado (distante). Você pode definir facilmente o terminal e a largura da impressora para 100 caracteres.

alexeiz
fonte
1

Não, não é mais relevante:

  • A maioria das fontes usadas em aplicativos e na Web não tem largura fixa. Em outras palavras, 80 caracteres! = 80 caracteres.
  • Como você disse, as larguras da tela mudaram - 80 caracteres não são um limite sensato.

80 caracteres era realmente uma diretriz para fontes de largura fixa em um ambiente de console.

Claro, se você ainda estiver usando uma fonte de largura fixa em um ambiente de console ... então, com certeza, 80 caracteres são sensatos :)

Damovisa
fonte
3
Tenho certeza de que ele estava se referindo ao uso de um limite de 80 caracteres no código-fonte, que é quase universalmente exibido em fontes monoespaçadas.
Fishtoaster 03/09/10
11
Hmm ... nesse caso ... ainda não, mas por outras razões :)
Damovisa
11
80 caracteres era o limite máximo do número de colunas no cartão perfurado!
ChrisF
0

Se você usar um editor em uma GUI, os 80 caracteres por linha são irrelevantes, pois a maioria dos editores decentes - por exemplo, o Notepad ++ - possui um botão para alternar a quebra de linha. Com isso, não deve ser um problema, mesmo ao visualizar o código em uma janela fina.

Lajos Meszaros
fonte