Por que o espaço em branco é grande? [fechadas]

111

Trafegar espaços em branco é um problema suficiente para programadores que editores como o Emacs têm funções especiais que os destacam ou eliminam automaticamente, e muitos padrões de codificação exigem que você elimine todas as instâncias do mesmo. Não sei bem por que. Posso pensar em uma razão prática para evitar espaços em branco desnecessários, e é que, se as pessoas não tiverem cuidado em evitá-las, podem alterá-las entre os commits e, em seguida, obtermos diffs poluídos com linhas aparentemente inalteradas, apenas porque alguém removeu adicionou um espaço.

Isso já parece um bom motivo para evitá-lo, mas eu quero ver se há mais do que isso. Então, por que o espaço em branco é tão grande?

    
por EpsilonVector 24.11.2011 / 18:56
fonte

8 respostas

75

Razões que são importantes para mim:

  • Quando eu pressiono a tecla "End", espero que o cursor vá para o final da linha (dependendo do editor que estou usando e como ele está configurado) e espero poder começar a digitar corretamente longe. Se o cursor chegar lá e eu tiver que deletar 3 ou 4 caracteres, é irritante. Especialmente se for inconsistente em todo o (s) arquivo (s).

  • Quando eu tenho literais de string que abrangem várias linhas, o espaço em branco à direita pode fazer com que a string de saída pareça incorreta quando usada.

Apesar de não ser estritamente programado, o espaço em branco pode atrapalhar seriamente a entrada de dados, se houver rastreio / início em um arquivo que será analisado e usado como entrada para outra coisa. Isso acontece mais quando um arquivo de entrada limpo e gerado fica sujo por alguém editá-lo no Excel ou algo assim e, em seguida, o espaço em branco à direita (e outros problemas de formatação) podem aparecer.

    
por 24.11.2011 / 19:14
fonte
28

Eu realmente odeio perder o espaço em branco, mas a razão exata é um pouco vaga.

Eu acho que a origem desse sentimento não está na programação, mas no campo de editoração eletrônica. Você já recebeu um documento digitado por alguém que precisava ser digitado em uma publicação? Em todas as publicações modernas, especialmente quando se usa colunas, é costume que as frases se sequenciem dentro de um parágrafo, não iniciando uma nova linha para cada sentença. Bem, quando há um espaço em branco, é preciso muito mais esforço para acertar (muitas pesquisas e ações de substituição que eliminam espaços duplos, etc ...).

Outras razões (na programação), não são boas razões, eu sei, mas elas incomodam minha psique subconsciente de maneira tão intensa que me obrigam a eliminá-la:

  • É necessário mais espaço de armazenamento do que o necessário
  • O analisador terá que pular um caractere extra sem um bom motivo ao compilar
  • Alguns editores podem adicionar uma linha extra em branco quando o WordWrap está ativado e espaço à direita não se encaixa

Sim, sim eu sei! Eu sei, estas são razões de lixo. Eu não sou perfeccionista, mas ... bem, talvez eu seja?

A última razão que posso pensar é o movimento inconsistente do cursor. Parece que o cursor está pendurado no ar no final de uma linha, cada passo à direita pode fazer com que ele caia ou flutuar mais até um grau desconhecido, apenas parece instável (como aqueles blocos invisíveis ou que desaparecem onde Super Mario costumava pular).

Provavelmente eu possa ser diagnosticado com fobia de espaço de fuga?

    
por 24.11.2011 / 19:50
fonte
20

Muitas dessas respostas quase tocam no motivo pelo qual é ruim para mim, mas basicamente: "quebra" os editores de texto. Minha experiência é com o vim.

O Vim é projetado para que ações comuns mapeiem as letras de forma tão clara que você nem precisa pensar em qual letra ou combinação de teclas deve ser atingida. Várias teclas de atalho permitem que o cursor salte ao redor do texto tão rapidamente que são necessárias apenas algumas teclas para chegar onde você quiser. Mesmo coisas como dobrar blocos de código é rápido, já que você pode pressionar END ou $ para pular para o final da linha, onde o cursor deve se sobrepor {or} ou (ou) ou algo assim - não há necessidade de quebrar o fluxo de pensamento ter uma ideia na tela.

Mas depois vem alguns espaços em branco, e os movimentos do cursor não são mais previsíveis. Seu processo de digitação está sendo interrompido porque algo que você não pode ver está afetando onde o cursor vai, então você tem que quebrar sua linha de pensamento para enviá-lo onde deveria estar.

Já percebeu como as pessoas ficam irritadas quando estão realmente focadas em uma tarefa e alguém as interrompe? Sim, encontrar espaço em branco quando menos se espera é exatamente assim.

Como um sidenote, eu também notei que as pessoas que não se importam com o espaço em branco são aquelas que usam o mouse para navegação, e tendem a ser mais lentas por causa disso ...

    
por 24.11.2011 / 23:28
fonte
17

Surpreendentemente, a resposta mais óbvia está faltando: o espaço em branco pode e dificultará a localização de bugs.

A situação mais óbvia é strings multilinhas. Python, JavaScript e Bash são alguns exemplos das linguagens que podem ser afetadas por isso:

print("Hello\·
····World")

produz:

  File "demo.py", line 1
    print("Hello\
                 ^
SyntaxError: EOL while scanning string literal

que é de alguma forma enigmática e difícil de resolver se o editor não estiver configurado para exibir caracteres de espaços em branco.

Embora o destaque da sintaxe possa ajudar a evitar esses casos, é ainda mais fácil não ter o problema em primeiro lugar, não deixando espaço em branco no final das linhas. É por isso que alguns verificadores de estilo levantam um aviso quando encontram espaço em branco, e alguns editores os cortam automaticamente.

Ilustração:odestaquedasintaxepodeajudaraevitarespaçosembrancofinaisemsituaçõesemqueissopodelevarabugs,masnãoconfieapenasnele.

Outrocontexto,mencionadoresumidamenteem uma resposta anterior , são dados armazenados em arquivos.

Por exemplo, arquivos CSV que contêm espaços em branco podem causar inconsistência de dados, que também é muito difícil de detectar: analisadores compatíveis com padrões cortarão o espaço em branco (o padrão indica que espaços em branco iniciais ou finais são irrelevantes, a menos que sejam delimitados por aspas duplas ), mas alguns analisadores podem se comportar mal e manter o espaço em branco como parte de um valor.

Outros formatos personalizados podem considerar especificamente que o espaço em branco é a parte do valor, levando a situações consistentes, mas ainda difíceis de depurar.

    
por 23.09.2015 / 16:36
fonte
14

Recentemente, passei um dia procurando por um bug que acabou sendo um rastro inesperado espaço em branco nos dados.

    
por 24.11.2011 / 19:22
fonte
8

Quando eu seleciono o código fonte do programa para copiá-lo e colá-lo (ou excluí-lo), acho um pouco irritante ver todo o espaço em branco extra irregular no final das linhas: já que tenho que ler o código enquanto estou selecionando-o, o espaço branco à direita é um ruído desnecessário. Exemplo (os pontos representam o espaço em branco):

if (fp)........
{....
    fclose(fp);.
}
else
{.....
    prinft("File is NULL\n");
}..

Este exemplo é artificial, mas eu vi muitos códigos parecidos com isso.

    
por 24.11.2011 / 19:42
fonte
7

Além do problema óbvio que quebra a análise em certos casos? Como outro anunciante observou, isso pode causar erros sutis e difíceis de rastrear. O espaço em branco nem sempre é insignificante. Em alguns casos, o espaço em branco à direita pode alterar significativamente o significado de uma linha de código ou dados.

Na maioria dos casos, o espaço em branco existe para formatar o código para leitores humanos. Espaço em branco à direita pode indicar várias coisas, incluindo:

  • Uma declaração incompleta;
  • Um comentário ausente;
  • Uma edição equivocada; ou
  • Edição malfeita.

Dois deles podem resultar em um funtioning incorreto, e outro pode dificultar a compreensão do código.

    
por 25.11.2011 / 07:09
fonte
4

Existem linguagens de programação que são sensíveis ao espaço em branco final. Por exemplo, um script TCL dará um erro se houver um espaço em branco no final de uma linha.

    
por 23.09.2015 / 13:27
fonte