ti-enxame.com

Você encontra idiomas com os requisitos de indentação pesados?

Pensamentos sobre estes? Python é um exemplo, e não, isso não é uma faca contra Python Eu gosto do idioma.

Quais idiomas têm um requisito de indentação?

1
Chris

Em makefiles, é chato. No Python, acho muito aprego e torna a sintaxe muito mais limpo. Eu acho que a coisa que torna melhor em python é que nenhum caractere especial é necessário, o único requisito é que você seja consistente. Você deve estar fazendo isso de qualquer maneira, então você não recebe nenhum custo adicionado por seguindo isso.

32
Daenyth

Em geral, eu sou contra os recursos de escravidão e disciplina que são voltados para torná-lo difícil escrever um código ruim. No entanto, não acho que a indentação forçada do Python se encaixa neste molde. O compilador/intérprete precisa saber onde os blocos começam e terminam de alguma forma, e sobre o único humano - maneira legível de denotar isso é com recuo. Portanto, usando o recuo para denotá-lo ao compilador/intérprete também é um bom exemplo de seco.

Usando aparelhos encaracolados para o compilador/intérprete, além de indentação para os seres humanos é como escrever um código de outra forma inescrutável, mas comentário excessivamente. A informação é especificada uma vez para o compilador/intérprete, novamente para os seres humanos. Tem que ser mantido em sincronia manualmente e se torna quase impossível de entender se ficar fora de sincronia.

21
dsimcha

Eu gosto da regra de indentação do Python.

Eu disse isso nesse lugar e irei repetir aqui, quem reclama sobre Python A este respeito deve ser solicitado a manter o código-fonte mal recuado. Se você entende o quão doloroso é ler através desse tipo de código fonte , você apreciaria esta regra.

6
grokus

Eu não gosto muito desse tipo de exigência de linguagem.

Eu acho que python é uma grande língua, mas isso está me mantendo longe disso!

Para aqueles queixam-se de código formatado não ou mau, vou dizer: use um formatador de código!

Eu acho que essa restrição é mais invasiva do que uma regra sobre ter parêntese, usando "." ou '->' para acesso a membros ou usando um ';' ou um '.' para terminar uma linha.

6
Guillaume

Fortran antiquado e COBOL tinham requisitos de indentação com base no layout de cartão de soco, que eu achei irritante. Os requisitos de indentação não parecem me incomodar desde que eu possa usar todas as colunas, mas ter que ter cuidado para iniciar uma linha na coluna 7 porque 6 é para a continuação da linha é desajeitada.

5
David Thornley

Haskell Do Notação é uma espécie de equilíbrio agradável aqui. Se você quer fazer indentation baseado, você pode fazê-lo. Se você quer fazer semicolons, você pode fazê-lo. Não é a estrutura do bloco desde que é uma linguagem diferente, mas a ideia de "usar o que lhe agrada, porque isso não é realmente um detalhe importante" é um que eu gosto.

2
anon

Você pede idiomas que reforçam a indentação. Python e fazer foram mencionados. Outro é a linguagem esotérica espaço em branco .

O Fortran também foi mencionado em outras respostas - as primeiras versões exigiam que o código inicie em colunas específicas (ou além, por isso não é precisamente a mesma).

É a minha compreensão que o Haskell também imformação de indentação, de acordo com essa parte da sua especificação: " Um contexto aninhado deve ser mais recuado do que o contexto incluído (n> m). Se não, , e o compilador deve indicar um erro de layout. "

1
Bryan Oakley

Isso parece-me puramente uma questão de preferência.

Eu pessoalmente não gosto de espaço em branco significativo pelos seguintes motivos:

  • Mentalmente, o espaço em branco para mim é um "no-op". Eu não gosto do fato de que ele muda de comportamento.
  • As abas e espaços parecem iguais em um editor, mas podem ter diferentes significados se o espaço em branco for significativo. Nojento!
  • Eu gosto da liberdade de formatar meu código no entanto eu gosto. Preocupar-se se isso mudará a semântica do programa não é útil.
  • Eu acho que delimitadores de bloco visíveis, sejam eles {} em C/Java ou () em Lisp, são densas pistas visuais adicionais úteis quanto à estrutura do código.
1
mikera

Nao tem almoço gratis; Algo deve ser usado para um delimitador. Como usamos o espaçamento de qualquer maneira, usando os caracteres EOL, espaço e tabulação faz sentido e reduz a desordem.

0
Jeremy

Não. Eu raramente fico mordido por requisitos de indentação (talvez porque sou um adesivo para detalhes). Eu recuaria meu código de qualquer maneira, então não é um problema. (A única vez que tem sido um problema é com alguns antigos Python código estou trabalhando; os desenvolvedores anteriores escreveram com guias de 2 espaços (ick!), Então os desenvolvedores mais recentes criaram alguns arquivos Com 4 guias de 4 espaços, e eu tenho meu editor definido para guias de 4 espaços, portanto, a indentação é uma dor nos arquivos mais antigos.) Eu nunca tive um problema com isso em Haskell. É um pouco irritante Makefiles, mas eu não diria que é "incômodo".

0
mipadi