Abas versus espaços - qual é o caractere de indentação adequado para tudo, em todas as situações, sempre? [fechadas]

84

Os padrões de codificação para o código hospedado em drupal.org sugerem o uso de dois espaços para recuar o código; outros sites sugerem usar guias para recuar o código.

Qual é o caráter de indentação adequado para tudo e em todas as situações? Por favor, explique a resposta que você dá.

kiamlaluno
fonte
13
FTW padrão do IDE - basta pressionar a tecla tab e ver o que acontece #
28287
Seja o que for que você escolher, ele deve ser usado por toda a equipe, mas não quando se usa tabulação de outros espaços.
Discípulo
11
Tentei editar isso para corrigir a implicação de que tabulações / espaços são a única maneira de recuar o código. A edição foi removida, mas espero que este comentário permaneça: Em vez de caracteres de recuo, por que não usar a margem esquerda? - isso pode ser totalmente automatizado pelo editor e os processadores de texto fazem isso há décadas.
Pgfearo
4
Eu realmente não acho que deveria haver uma resposta "aceita" aqui. O fato de a resposta com menos votos ser realmente a primeira é uma prova disso: por que o solicitante deve ter um poder especial (ou seja, poder colocar sua resposta favorita em primeiro lugar) apenas porque fez a pergunta?
Dean Harding

Respostas:

129

Espaços

Uma guia pode ter um número diferente de colunas, dependendo do seu ambiente, mas um espaço é sempre uma coluna.

Em termos de quantos espaços (ou tabulações) constituem recuo, é mais importante ser consistente em todo o código do que usar qualquer valor específico de parada de tabulação.

usuário8
fonte
42
Seu segundo parágrafo está errado; a resposta é 4!
Daenyth 24/09/10
5
@ Daenyth - talvez se você estiver usando uma linguagem de chaves. A maioria dos Pascal / Delphi usa 2.
Gerry
72
Por que eu deveria ser mandatado para seus 2 ou 4 ESPAÇOS de indentação quando um TAB pode ser configurado dinamicamente e indicar um único nível de indentação?
Jé Queue
3
@MGOwen O argumento do tempo de download para codificação de sites é facilmente resolvido hoje em dia, usando a minificação de fontes na remoção de css / javascript e espaços em branco no HTML. Veja mod_pagespeed para ver o que quero dizer.
Evan Plaice
42
"Uma guia pode ter um número diferente de colunas, dependendo do seu ambiente" Sim, essa é exatamente a vantagem. Todo mundo pode ajustá-lo ao seu gosto e ser feliz.
21711 Andrea
249

Guias

Agora, é claro, a consistência importa mais do que qualquer uma delas, e um bom IDE torna as diferenças desprezíveis. Dito isto, o objetivo deste tópico é ser uma guerra santa, portanto:

Eu prefiro tabs:

  • Eles são um personagem especificamente destinado a indentação
  • Eles permitem que desenvolvedores com preferências diferentes em tamanho de recuo alterem a aparência do código sem alterá-lo (separação de dados e apresentação para a vitória proverbial!)
  • É impossível recuar pela metade algo com guias. Portanto, quando você copia o código de um site que usa 3 espaços no arquivo recuado de 4 espaços, não precisa lidar com o desalinhamento.
Fishtoaster
fonte
12
Que tal copiar esse código recuado com 3 espaços em seu arquivo recuado por tabulação, que você definiu em três espaços? Quando você envia seu código para seus compatriotas, eles se perguntam por que essa função tem um recuo tão ruim!
Wayne Werner
27
Tabs não são originariamente destinados a recuo, eles são destinados para tabulação , e fazer um trabalho terrível para ele ...
Timwi
14
@ Timwi: A Wikipedia parece dizer que eles foram feitos para mover o cursor para o próximo de um conjunto de colunas fixas. Não parece que tabulação foi a principal função. Além disso, eu estava me referindo à era pós-máquina de escrever.
Fishtoaster
40
Além disso, muitos programadores gastam uma quantidade significativa de tempo escrevendo html, css, etc., caso um arquivo com 4 espaços em vez de guias seja 5-15% maior seja realmente significativo. Exemplo: esta página em que você está agora carregou pelo menos 10% mais devagar do que deveria, porque a equipe do SE usava espaços . Verifique você mesmo.
MGOwen
23
Outro benefício dessa abordagem - menos pressionamentos de tecla ao usar as teclas de seta para a navegação esquerda-direita.
Nicole
117

Use as guias para recuar o início da linha, uma guia por nível de recuo e permitir que todos escolham a largura que desejam.

Use espaços se estiver alinhando caracteres em uma linha, para que eles sempre se alinhem, independentemente do tamanho da guia.

E encontre e dê um soco em todos os primeiros autores de software que deixaram essa coisa estúpida se tornar um problema em primeiro lugar.
(Sério, por que isso é discutido? Em seguida, você me dirá que também deseja usar vários caracteres para quebras de linha!)

Peter Boughton
fonte
33
Sim Sim SIM SIM SIM. Cem por cento sim. Isso permite que todos definam sua própria largura de guia, preservando a formatação tabular. Se você está preocupado em manter dentro de 80 colunas (como provavelmente deveria estar!), Basta escolher um tamanho máximo arbitrário de guias esperado (como 4) e manter-se nas margens das guias nessa largura. Honestamente, isso é tão difícil?
Jon Purdy
Sim, mas não use espaços para alinhar em uma linha. Seus colegas podem estar usando uma fonte proporcional para que sua arte ASCII pareça estranha nas telas.
usar o seguinte texto
3
Esta é a única resposta correta aqui
J.Ashworth
76

Guias

  • Para permitir que os erros sejam mais visíveis , é irritante gerenciar micro espaços.
  • são consistentes , eles são usados ​​apenas para indentação, a menos que você esteja comentando errado.
  • são personalizáveis , você pode especificar nas opções do editor qual a sua largura.
  • são mais produtivos , por que digitar 4 espaços quando você pode pressionar 1 guia.
  • tome menos tamanho que vários espaços.
  • ocupe mais espaço que um espaço.
  • leve menos tempo para passar .
  • tendem a funcionar melhor nos IDEs.

Os espaços devem ser usados ​​onde as guias são completamente inúteis.

Mesmo para alinhar parâmetros e comentários, as guias ainda funcionam melhor .

Tom Wijsman
fonte
24
wrt "mais produtivo", pessoalmente eu pressionei TAB e deixei o IDE fazer a conversão para o número apropriado de caracteres de espaço a serem introduzidos. Talvez você precise atualizar: p?
Matthieu M.
3
-1: erros mais visíveis: não é verdade; consistente: dificilmente por causa de personalizável: sim, mas também é uma desvantagem ao mesmo tempo; mais produtivo: não é verdade, praticamente todos os IDs podem converter abas em espaços; menos tamanho: sim, mas prático? não; menos tempo: não com IDE razoável; tendem a funcionar melhor: não em todos, se você usar vários ambientes e ferramentas
MaR
@ MaR: Erros visíveis são verdadeiros, a largura de uma guia é maior. Também ... Python! As guias são consistentes, pois uma única guia é um recuo, enquanto você precisa definir quantos espaços você usará para um recuo. A personalização é uma vantagem. Você está usando guias em primeiro lugar, para que seja mais produtivo. Parece que você não pode mesmo dar um bom raciocínio por isso que é impraticável, aborrecedores que vão diar ...;)
Tamara Wijsman
@ TomWij: Como a guia é maior que o número equivalente de espaços? O Python é praticamente a única linguagem que tem espaço em branco para usar as guias com segurança (mas ainda assim - oferece apenas pouca vantagem em comparação com "inserir espaços"). Tente também outros idiomas, ambientes herdados, diferenças / mesclagens, terminais e sccs para ver por que as guias ainda são utópicas "ideais".
MaR
@MaR: Onde eu declarei 'número equivalente de espaços'? Eu tentei todos esses, abas funcionam perfeitamente neles!
Tamara Wijsman
41

Todos os argumentos para abas são ótimos em teoria. Mas...

Em teoria, prática e teoria são iguais. Na prática, eles não são.

Sim, com guias você pode decidir o seu nível de indentação. E sim, você pode usar uma combinação de guias e espaços para alinhar as coisas. E em um mundo ideal seria

Na realidade, você não pode ver a diferença entre espaços e guias, eles sempre parecem confusos ao mover o código, e visualizar o código em outro programa que possui guias com 8 colunas é um incômodo.

Eu costumava usar guias. Então comecei a trabalhar como parte de uma equipe e a compartilhar código. Eu rapidamente me tornei um defensor dos espaços. Portanto, embora eu possa simpatizar com a utopia das guias, não consigo imaginar não usar espaços.

g.
fonte
6
você pode obter um editor como o Kate, que apresenta guias com um caractere 'fantasma' - eu posso ver facilmente guias versus espaços ao codificar.
HorusKol
8
Todo editor tem uma opção "show whitespace" agora e o Visual Studio tem uma opção 'tabify'
Chris S
2
Bom argumento. Foi por isso que desisti de tentar convencer as pessoas de que as guias são mais lógicas. Até os programadores que deveriam estar acostumados a abstrair o pensamento parecem confundir tabulações e espaços ("se parece com quatro espaços, então devem ser quatro espaços!"). O prego no caixão para mim foi que parece impossível configurar o Emacs para recuar apenas com abas.
Martin Vilcans
3
+1 A utopia das guias é ótima, mas toda vez que movo o código entre editores com diferentes larguras de guias, o código é desarrumado e desalinhado. É muito fácil fazer silenciosamente a coisa errada com as guias.
Mankarse
Também costumava usar guias, mas estava com problemas com alguns IDEs que não podiam inserir espaços para linhas de continuação e odiava substituir todas as guias inseridas automaticamente por espaços (o Visual Studio era um deles). Então, eu apenas fiquei com espaços. Além disso, os espaços permitem que você use recuos de tamanho médio para coisas como public:nas declarações de classe C ++, para que elas fiquem mais bonitas (especialmente nas classes aninhadas).
Szx
31

Algumas opiniões relevantes que podem ser interessantes:

Fishtoaster
fonte
105
Só porque você é famoso não faz você corrigir.
Jé Queue
@ Xepoch: você leu a lógica deles :)?
Matthieu M.
5
@ Matthew M., sim, eu li cada um, mas ainda não concordo. Também não gosto de azeitonas, mas não me faz mal porque os outros gostam. Acho que é ridículo que as pessoas não usar a guia de recuo, mas é por isso que eles chamam CS Holy Wars ...
Jé Queue
2
@ Xepoch: sim, acho que todo mundo tem direito à opinião :) Acho que Guido apontou a questão principal: misturar guias e espaços é ruim, porque ambos aparecem como "espaço em branco" para o usuário.
Matthieu M.
3
@ Fishtoaster: Quando você diz que Joel diz espaços, o link não deveria ser uma citação real de Joel? O link vai apenas para o fórum JoelOnSoftware, onde algumas pessoas (provavelmente não falando por Joel) discutem abas versus espaços.
Andreas Magnusson
23

Guias para a vitória.

Joel Barsotti
fonte
20

Eu absolutamente. ódio. 4. espaços.

Por quê? Principalmente porque estou cansado de navegar no meu código com um teclado e ter que pressionar constantemente left left left leftpara passar por um recuo. Isso nasceu das versões anteriores do Notepad ++ e até do bloco de notas simples do Windows, onde não havia um botão de formatação. Eu tinha tantos problemas quando as pessoas só usavam 3 quando eu usava 4 em qualquer outro lugar, entre outras coisas.

A outra razão é que o caractere de tabulação existe especificamente para indentação e só foi adotado posteriormente para navegação. Por que estamos fazendo space space space spacequando um simples tabfuncionaria? Por que os IDE devem lidar com 2-5 códigos e formatos espaçados corretamente quando uma guia simples e uma opção de preferência funcionariam?

Infelizmente sou minoria.

TheLQ
fonte
31
Você é ineficiente na navegação pelo código do teclado. Você deve usar CTRL + ESQUERDA e CTRL + DIREITA para pular o espaço em branco e os tokens. Então o recuo não importaria.
usar o seguinte comando
7
De onde vem esse equívoco de que "existem guias especificamente para indentação"? As guias são chamadas de guias (tabuladores) porque foram inventadas para tabulação, não recuo , e elas fazem um trabalho terrível em ambas.
Timwi
7
@ Lorenzo: Você é ineficiente na navegação pelo código do teclado. Deve-se usar we b(ou ee ge) para passar através de espaços em branco e os símbolos: P
R. Fernandes Martinho
6
Em prol da advocacia diabólica: não impeça códigos mal formatados nos editores que você considera inferiores. Use guias.
Jon Purdy
11
@ Timwi: desculpe necro, mas a tecla tab do computador NÃO foi inventada para tabulação. A versão TYPEWRITER dessa chave era, mas quando os teclados evoluíram para uso com computadores, a tecla Tab era usada para recuar mais do que tabulação, e o termo "tab" havia se tornado sinônimo de recuo. As guias para COMPUTADORES devem recuar e é somente por convenção que o nome da chave corresponde ao da máquina de escrever. Seu argumento é semelhante a afirmar que a chave de computador retorno tinha a intenção de iniciar uma nova linha e mova o cursor para o lado esquerdo, porque isso é o que era em uma máquina de escrever :)
Beofett
12

Pessoalmente, gosto de usar guias em tudo, pois cada desenvolvedor pode controlar a quantidade de indentação por guia. Dessa forma, você obtém flexibilidade na exibição.

Dito isto, eu geralmente imitamos qualquer estilo de codificação que esteja no arquivo para começar (já que passo muito tempo realizando trabalhos de manutenção).

Brandon
fonte
3
Isso é interrompido assim que você começa a recuar por algo diferente de aninhamento de instrução. Por exemplo, se você deseja alinhar argumentos de função na mesma coluna, um por linha. É possível misturando guias e espaços, mas é muito entediante.
finnw em 03/09
2
Não é nada entediante, pois significa que você pode percorrer a maior parte do caminho até lá e usar apenas alguns espaços, em vez de precisar digitar dezenas de espaços apenas para chegar à coluna da direita.
Jordan Reiter
11
@finnw você assume que todos estão usando uma fonte monoespaçada - em 2012, um número significativo de desenvolvedores usa proporcionalmente. Se você tiver caracteres que não sejam espaços em branco à esquerda do seu primeiro argumento, não há como garantir que os argumentos nas linhas subseqüentes serão alinhados para todos.
usar o seguinte código
Você nunca tentou escrever HAML, não é?
alt
2
Detesto dizer isso, mas não consigo imaginar programar em uma fonte de largura variável. A pura maldade dos anões se apóia nos padrões, abas versus espaços, tudo ... estou apenas ficando velho? (O que acontece quando você receber uma mensagem de erro com uma linha e um número de coluna?)
lunchmeat317
10

Não acho que exista recuo adequado (pelo menos não sem uma guerra menor).

Pessoalmente, gosto de quatro espaços. Eles me permitem ler código muito mais rápido e têm a mesma aparência em todos os editores - até o Vi.

Josip Medved
fonte
9
O vi (ou melhor, o vim) é um dos melhores editores para trabalhar com guias, além de poder definir a largura da guia e expandir automaticamente para espaços (como a maioria dos editores), você também tem a softtabstopopção e os comandos retabe retab!.
finnw
Os bebês realmente morreriam se disséssemos 4 espaços, em todos os lugares, sempre, sem escolha - e seguíssemos em frente?
MGOwen
2
Quatro espaços não têm a mesma aparência em todos os lugares. Agora, mais programadores estão escolhendo fontes proporcionais em seu IDE para uma experiência de codificação mais agradável e produtiva. Quatro espaços podem parecer um pequeno recuo nessas situações.
usar o seguinte código
8

Espaços, porque quando você alinha comentários à direita do código, listas de parâmetros de funções ou expressões complexas de várias linhas ou coisas dessa natureza, deseja que seu belo trabalho apareça certo para todos . Se você usar guias e permitir que as pessoas definam seus tabstops de maneira diferente, elas quebrarão o alinhamento para todos, exceto os casos mais simples de recuo de código.

Além disso, é óbvio que todos no mundo devem usar o vim, o que torna trivial recuar, desassossegar e navegar por "tab stops", mesmo em arquivos com recuo de espaço.

hobbs
fonte
Essa é uma característica muito boa de muitos editores - a capacidade de percorrer rapidamente montes e montes de espaços.
Christian Mann
18
Parece que você está desenhando arte ASCII em vez de codificar.
Rm6:
3
Eu acrescentaria: as guias não devem ser usadas para alinhamento. Se você é usuário da guia e deseja alinhar, primeiro digite a quantidade correta de guias para indentação e ENTÃO a quantidade correta de espaços para alinhamento. Somente então você verá o código formatado na guia em todos os usuários e editores.
MaR
6

As guias são a escolha natural e ortodoxa, pois são usadas por definição para indentação.

Infelizmente, as guias são implementadas de maneira desigual, portanto, a única solução do mundo real são 4 espaços.

Wizard79
fonte
8
Desde quando as guias (tabuladores) são usadas para indentação "por definição"? Pela sua própria definição, eles foram inventados para tabulação (embora eles também façam um trabalho terrível).
Timwi
2
Tecnicamente, a tecla de retorno foi inventada para mover a cabeça da máquina de escrever para a frente da linha, enquanto a mudança para a próxima linha foi realizada girando o rolo. Mais tarde, a tecla de retorno também avançaria automaticamente o rolo. Você não vê pessoas sendo desligadas na tecla Enter / Retornar. A tecla Tab foi claramente adicionada aos computadores para executar o recuo. É um analógico digital da tab tab, que eu tinha na minha velha máquina de escrever não elétrica. As paradas de tabulação podem ser definidas para mover o rolo para qualquer posição que você escolher, quase idêntica à função atual da tecla tab no recuo.
Jordan Reiter
@JordanReiter RE: "Você não vê as pessoas desligando a tecla Enter / Retorno.": Você nunca enfrentou CR (representa mover a cabeça da máquina de escrever para a frente da linha) / LF (representa girar o rolo para a próxima linha) questões?
MaxNanasy
11
Sim, mas isso é realmente um problema de sistema operacional, não de teclado. Não importa em que computador você esteja, espere pressionar a tecla Enter ou a tecla Return para levá-lo ao próximo link. Você não usa uma tecla para emitir um avanço de linha e outra para emitir um retorno de carro.
Re
4

Você obviamente precisa de uma abordagem combinada.

Se você está compartilhando código com outros desenvolvedores, precisa padronizar e, como isso é impossível (koff koff), você precisa fazer com que todos façam quatro espaços.

Então você precisa de um editor inteligente o suficiente para não ser estúpido quanto a isso, para saber que ele deve tratar uma linha com quatro espaços na frente como se fosse um recuo. Qualquer IDE moderno ou editor de programadores pode fazer o fluxo automático de código com espaços em vez de guias.

Dan Ray
fonte
4

Por que alguém não pode implementar isso:

  • código é armazenado em um formato compacto benéfico para o sistema em questão
  • como cada desenvolvedor abre o código, ele é formatado exatamente como ele deseja
  • quando eles terminarem, de volta ao formato compacto

Todo mundo está feliz, pois todos vêem seu formato 'próprio'

Isso é tão difícil?

alho adolf
fonte
2
Porque eu não tenho tempo livre suficiente para consertar todos os editores e IDEs existentes que as pessoas usam e - mesmo que eu fiz - convencer todos a atualizar seria ainda mais difícil.
Peter Boughton
Tenho certeza de que eles poderiam incorporá-lo ao SVN ou encontrar outra maneira de deixar as ferramentas finais fora dele.
adolf garlic
13
Soa como abas. Cada desenvolvedor abre o arquivo e obtém a largura de indentação que deseja.
Rmac
11
Você já pode configurar o RCS ou CVS para usar o indentprograma.
Jé Queue
3
e é prudente usar travessão para forçar o recuo / code foramtting padronização para que devs com idéias engraçadas de espaçamento não se responsabilizou / anotada para todas aquelas alterações de formatação
Tim Williscroft
3

Espaços ou guias - o que Atwood realmente diz é escolher uma coisa e ser consistente em seu projeto. O único santo graal da formatação de código é garantir que seja consistente, para que o psicopata que mantém seu código depois de você não se sinta obrigado a remediar a situação permanentemente.

Dito isto, se você estiver trabalhando em Python ou em qualquer outra linguagem em que espaço em branco seja uma construção de programação real, não consigo imaginar usar abas.

Noah Goodrich
fonte
4
Eu uso guias. Não sei se você fez alguma programação em Python, mas é o recuo relativo que importa. Se a linha 1 tiver x indentações e a linha 2 for x + 1 indentações, serão consideradas mais indentações. Os recuos podem ser espaços duplos, 4 espaços, tabulações, não importa, desde que você seja consistente.
Macha
@Macha - Obrigado pelo feedback. Eu nunca trabalhei no desenvolvimento de Python, mas todos que me disseram que usam espaços, é interessante conhecer alguém que usa abas.
Noah Goodrich
3
Eu uso abas com python no trabalho. É terrível.
rhettg
3

Eu sou um tipo de cara de quatro espaços, as abas simplesmente não são consistentes.

Walter
fonte
5
Como eles "não são consistentes"? Eles sempre são um único caractere que representa um único nível de indentação. Essa é a própria definição de um esquema de indentação consistente. (E que você pode pessoalmente, sem afetar qualquer outra pessoa, tornar visualmente que qualquer maneira que você escolher é uma vantagem .)
Leveza raças em órbita
3

Aparentemente, as guias estragam as coisas no Delphi, então eu não as uso no Delphi.

No entanto, faço todo o resto usando o Emacs e sempre uso guias porque minhas guias vão exatamente para onde eu quero.

Peter Turner
fonte
Você pode fornecer um exemplo disso? Sinceramente, estou curioso porque uso Delphi há 15 anos e nunca vi isso.
GrandmasterB
11
edn.embarcadero.com/article/10280#4.3 Esse é apenas o guia de estilo, mas tivemos alguns erros estranhos que não consigo explicar por causa das guias. Também pode ser devido ao Visual Source Safe. Não sei explicar, é apenas parte da tradição da nossa empresa.
Peter Turner
11
O problema é que os padrões de instalação para (pelo menos) algumas versões do Delphi não correspondem aos idiomas comuns do Delphi. Então você acaba com um código que possui AMBOS.
Gerry
3

A resposta é que não pode haver um único caractere de indentação adequado para cada situação. A formatação usando caracteres é inflexível e pode causar conflitos quando estilos diferentes são usados ​​em uma equipe.

O único método para formatar o código de maneira impecável e flexível com diferentes estilos de formatação é fazê-lo virtualmente, ou seja, sem nenhum caractere de recuo. O único editor de código que conheço que suporta isso é o usado no exemplo abaixo:

Para demonstrar a formatação virtual , a captura de tela abaixo é de um editor XSLT * que usa esse método de indentação (também há um pequeno vídeo aqui ). Cada caractere no XSLT foi destacado em amarelo, para fins ilustrativos, para permitir que os únicos caracteres de tabulação ou espaço no conteúdo sejam vistos claramente. O recuo do código é tratado pelo sistema de renderização do editor, ajustando a margem esquerda (que tem um fundo branco).

insira a descrição da imagem aqui

Os únicos caracteres de espaço à esquerda precedem as linhas Livros , porque esse é o conteúdo literal do texto, não o código; esses caracteres de espaço devem ser preservados.

Com a formatação virtual, você escolhe a largura do recuo para se adequar ao ambiente e ao estilo do recuo sem afetar nenhum caractere no arquivo de origem. Você pode até definir a largura do recuo como 0, se precisar de uma visualização nivelada do código, como mostrado abaixo:

insira a descrição da imagem aqui

Para contrastar isso com a formatação de caracteres de espaço, o mesmo XSLT aberto em um editor sem formatação virtual é transformado pelo formatador automático desse editor para:

insira a descrição da imagem aqui

Os blocos amarelos em branco maiores na captura de tela acima mostram claramente os caracteres de espaço adicionados pelo formatador do editor convencional. Infelizmente, agora eles não podem ser distinguidos do conteúdo real, portanto o XSLT precisaria ser modificado para corrigir esse problema.

Sumário

O XSLT é possivelmente um caso extremo, mas esse princípio é válido para muitas linguagens de programação: Os caracteres devem ser usados ​​para o conteúdo e um método alternativo procurado quando se trata de formatação.

** Divulgação: o XSLT Editor com formatação virtual foi desenvolvido por minha própria empresa *

pgfearo
fonte
11
Infelizmente, você provavelmente está cerca de 50 anos à frente do seu tempo. A idéia francamente absurda de que programas são sequências de caracteres ainda está profundamente enraizada na mente da maioria dos programadores.
Tom Anderson
3

Não mencionado até agora: existem idiomas (Python, Haskell) em que a indentação é importante. Mas 1 caractere conta como 1 caractere, seja um espaço ou uma guia, portanto, o recuo visto pelo compilador pode não ser o mesmo que você vê na tela se você usar as guias.

Portanto, em idiomas como Haskell, os espaços são obrigatórios. Nos Makefiles, os TABS são obrigatórios. Em todos os outros, é uma questão de gosto pessoal e hoje em dia não muito - todo editor decente tem um comando "(guia) para abas para espaços" e "(guia) para abas".

Ingo
fonte
2

Eu costumava usar espaços, mas tenho usado guias recentemente porque é para isso que o Eclipse foi definido quando finalmente notei. Todos os outros desenvolvedores da minha equipe usam o Eclipse, por isso fazia sentido padronizar as guias quando percebemos que já as usávamos há muito tempo e não havia motivo para mudar de espaço. Fiquei surpreso com o quanto isso não é problema.

Definir o tamanho da guia exibido como 3 ou 5 caracteres no IDE simplifica bastante a distinção entre as seções de código que são recuadas por espaços (quase sempre 4 atualmente) e aquelas que são recuadas por tabulação.

Shabbyrobe
fonte
1

Muitos argumentos já foram apresentados, mas ninguém mencionou para onde poderíamos ir no futuro .

Abas nem espaços!

Idealmente, o código deve ser considerado dados e não deve ser armazenado em nenhuma formatação de texto específica. Qualquer desenvolvedor pode aplicar sua própria visão preferida. Além disso, essa visualização não deve se limitar apenas ao texto , mas pode incluir tabelas, seletores de cores e fórmulas matemáticas.

Essa idéia não é exagerada. Foi o editor de programação orientada a linguagem do JetBrain, Meta Programming System (MPS), que primeiro me fez perceber que isso resolve toda a discussão, adicionando simultaneamente muitas possibilidades extras. (Sim, isso é possível com plug-ins de editor, mas trabalhar diretamente com texto adiciona muitas complexidades desnecessárias, em oposição à abordagem adotada pelo MPS.)

Ao contrário de tabulações e espaços, há poucas desvantagens que podem ser mencionadas para trabalhar diretamente em árvores de sintaxe abstratas . Tudo o que é necessário é que a tecnologia amadureça e se torne um produto comercialmente viável. Os primeiros sinais disso estão aparecendo. Amplamente construído sobre o MPS, um editor de ações comerciais, Realaxy foi criado.

Eu adoraria ver um dos grandes jogadores pular no conceito dessa tecnologia e ver o que acontece!

Steven Jeuris
fonte
0

Nem é melhor, nem é pior. A única coisa importante é ser consistente.

Se você é um time único, escolha o que quiser pessoalmente. Considere qual é o comportamento padrão do seu editor favorito, mas escolha o que quiser.

Se você estiver em uma equipe, faça o que a equipe faz. Período.

Nos meus vários trabalhos, usei dois espaços, quatro espaços, oito espaços, tabulações, espaços e tabulações, acho que também posso ter usado um espaço. Eu digo ao meu editor o que fazer, então não penso mais nisso, o editor elabora os detalhes.

A única outra coisa é ter certeza de escolher um editor inteligente. Emacs ou vi? Agora que é uma guerra santa, estou disposto a lutar :-)

Bryan Oakley
fonte