Espaços vs. Abas: Uma de 20 Anos de Debate Reacendeu pelo Google Golang
Geeks foram escolhidos os lados durante os últimos 16 anos — deve programadores travessão de seus códigos, usando espaços ou tabulações? Mas agora a infamously trivial flame war foi dada uma nova proeminência por um estudo do Google — possivelmente inspirado pelo diálogo em um episódio recente do Vale do Silício da HBO.
“verdade seja dita, eu tenho uma ligeira preferência por tabs. Mas isso é só porque sou anal e porque prefiro precisão.”
” bem, não para começar uma luta aqui, mas se você realmente se importa com a precisão, você não usaria espaços? Mas seja como for, uma vez que passa pelo compilador, é a mesma coisa, certo…?”
“se é tudo o mesmo, por que não usar apenas tabs?”
” Porque podia parecer diferente nos computadores de outras pessoas.”
” Tabs create smaller file size, all right…? Quero dizer, porque não usar a ” Vim “em vez do “Emacs”?”
” I Do use Vim over Emacs.”
” Oh, Deus nos ajude!”
Finally this year-right before the Labor Day weekend-Google developer advocate decided to weigh in. “Nós vamos analisar um bilhão de arquivos entre 14 linguagens de programação para decidir qual está no topo.”Eles compilaram arquivos do top 400.000 repositórios GitHub, olhando apenas arquivos de código escritos nas línguas superiores-e sua tabela mostrou que os espaços eram de longe o método mais popular de indenting, em todas as línguas. Exceto Go E C.
“confirmado, Go é a língua do futuro”, brincou um comentarista no Reddit.
“ele também formata automaticamente o seu código fonte”, contrariou outro programador. “Uso espaços e cospe tabs!”
e no Twitter, um desenvolvedor brincou com o ensaio só havia criado outra controvérsia. “A nova discussão é agora ‘o que diabos está errado com IR?'”
pelo menos um engenheiro Canadense aplaudiu o esforço que o Google fez para resolver a questão.
https://t.co/wuMz1gLwXT é assim que se resolve o argumento am: data.
— Ian Fosbery (@MisterZia) setembro 8, 2016
mas no final, o Google não conseguiu trazer a paz ao mundo dos desenvolvedores.
para ser claro: todos aqueles que usam espaços em vez de tabulações para indentação estão irremediavelmente errados.Deixa-me ver o teu código da maneira que eu quiser.
período.— Iñaki Baz Castillo (@IBC) setembro 14, 2016
quando alguém se referiu a Castillo para a análise do Google, ele simplesmente acrescentou: “Eu sabia disso. E sim, estão todos 100% errados.”
“What is this madness,” tuitou o engenheiro de nuvens Ed Morgan.”Madness everyone knows tabs are better!”replied a London-based NetApp maintainer.
“isto é nojento”, tuitou um web designer freelance no Reino Unido
e não terminou lá. O post do Google logo se tornou viral, desenhando 1.620 comentários sobre o Reddit, e também aparecendo em Gizmodo, Slashdot e Hacker News. “Depois de mais de 20 anos ouvindo o debate tabs-vs-espaços e considerando todos os pontos legítimos que ambos os lados têm, muitos fizeram a seguinte observação e é o que mais ressoa comigo”, escreveu um programador no Hacker News.
” In an ideal perfect world, _all_ of programmers and _all_ text editor tools would use tabs specifically for indentation and spaces specifically for alignment. Mas, nós não vivemos nesse mundo perfeitamente coordenado para que os espaços mantenham a maior fidelidade — à custa dos programadores não serem capazes de personalizar instantaneamente a indentação a partir de larguras de 2,4,6,8.”
os geeks têm realmente discutido sobre isso por mais de 20 anos? Parece que sim. Já estava sendo descrito como um “argumento interminável” por Jamie Zawinski, um dos programadores do navegador Netscape — back em 2000. His post explained how to configure two Linux text editors (Emacs and Vi) to change the tabs to various widths. (“Então vá em frente e untabify!”)
Alegremente nós rolou e, em 2004, um post sobre o Microsoft Developer Network teve o mesmo problema, observando que algumas pessoas combinam espaços e tabulações, e argumentando que eles realmente implantados em uma quarta posição: a codificação de ferramentas deve ser configurável para exibição de cada usuário preferencial vista, ao salvar o código em conformidade com o acordado conjunto de regras. Mas nem todos tinham uma mente tão aberta. Em 2009, Jeff Atwood, um dos co-fundadores da Stack Overflow, escreveu um post no blog chamado Death to The Space Infiels!. Ele pressiona pela sua posição citando o amado código do livro de 1984 completo.”Nossos estudos apoiam a afirmação de que o conhecimento de planos de programação e regras do discurso de programação podem ter um impacto significativo na compreensão do programa… não é apenas uma questão de estética que os programas devem ser escritos em um estilo particular… programadores têm fortes expectativas de que outros programadores irão seguir essas regras do discurso. Se as regras são violadas, então a utilidade proporcionada pelas expectativas que os programadores construíram ao longo do tempo é efetivamente anulada.”
and Atwood cites more experiments — one from the early 1970s-which found that information is retained better when it’s arranged in a meaningful order. “So yes,” Atwood conclui, ” absurd as it may sound, fighting over whitespace characters and other seemingly trivial issues of code layout is actually justified. Dentro da razão, claro-quando feito abertamente, de uma forma justa e consensual de construção, e sem esfaquear seus companheiros de equipe no rosto ao longo do caminho.”
quatro anos mais tarde, a questão apareceu no coração da nação geek — em uma discussão sobre o fluxo de pilha.
“espaços”, lê-se um argumento. “Uma página pode ser um número diferente de colunas dependendo do seu ambiente, mas um espaço é sempre uma coluna.”
“Tabs,” reads the counter argument. “São um personagem especificamente destinado à indentação. Eles permitem que desenvolvedores com diferentes preferências em tamanho de indentação mudem a aparência do código sem alterar o código ”
então lá!
mas os tabs parte da página finalmente atinge uma nota conciliatória. “É claro que a consistência importa mais do que qualquer um, e uma boa IDE torna as diferenças insignificantes.”Mas porquê estragar um bom argumento? “Dito isto, o ponto deste tópico é ser uma guerra santa, então …”
e Jeff Atwood parece concordar – com um ponto. Em 2009, ele escreveu ” não importa que estilos de codificação você escolhe. O que importa é que você, e todos os outros na sua equipa, adere a essas convenções e as usa de forma consistente.”Mas não resistiu a acrescentar mais uma frase.
” que disse, apenas um idiota usaria tabs para formatar seu código.”
- os cientistas de Stanford criam uma forma de digitar sem mãos lendo sinais cerebrais.
- A NASA compartilha algumas imagens espetaculares de Marte.
- A América nomeia o seu primeiro chefe federal de segurança da informação.A Amazon quer invadir o seu centro comercial e a sua casa!
- o Raspberry Pi celebra a sua 10 milionésima venda.John le Carre finalmente publica a história de sua própria vida agitada.
- Yuval Noah Harari’s” brief history of humankind ” followed up with a speculative history of tomorrow.Nicholas Carr olha para o mundo que fizemos, e Escreve: “a Utopia é assustadora.”
em seu blog, Carr pergunta se podemos aplicar os padrões da empresa de mídia ao Facebook? Lembrando o discurso de Steve Jobs “Courage” — como alguns usuários do Reddit zombam da configuração do novo iPhone somente com fio.