Alguém prefere fontes proporcionais? [fechadas]

46

Eu estava lendo o artigo da Wikipédia sobre o estilo de programação e notei algo em um argumento contra um código alinhado verticalmente:

Reliance on mono-spaced font; tabular formatting assumes that the editor uses a fixed-width font. Most modern code editors support proportional fonts, and the programmer may prefer to use a proportional font for readability.

Para ser honesto, acho que nunca conheci um programador que preferisse uma fonte proporcional. Nem posso pensar em nenhuma boa razão para usá-los. Por que alguém preferiria uma fonte proporcional?

    
por Jason Baker 20.09.2010 / 09:44
fonte

11 respostas

43

Pontos comuns contra fontes proporcionais, comentados.

  • Você não pode alinhar com precisão o código verticalmente com fontes proporcionais. Quero dizer, você poderia alinhar precisamente o código verticalmente com fontes proporcionais, se todos estivessem usando guias de impressão elásticas , mas, infelizmente, ...
  • Algumas fontes proporcionais dificultam a distinção de alguns grupos de caracteres. (por exemplo, mrnm). Nem todas as fontes de programação são perfeitas, no entanto: Courier New tem idênticos 'O' e '0' e idênticos '1' e ' l '.
  • Alguns IDEs têm suporte insuficiente para fontes de largura não fixa (como acima mencionado Visual Studio ou IDLE do Python). Em alguns contextos, também, você simplesmente não pode usar um. (por exemplo, terminais.)
  • A escolha de uma fonte proporcional para codificação o levará a intermináveis guerras santas. Aqui, no entanto, o problema existe entre o teclado e a cadeira.

Pontos em favor de fontes proporcionais

Pessoalmente, tenho usado a fonte 'Ubuntu' e o Zen Hei Mono da WenQuanYi com prazer e me vejo incapaz preferir um ao outro. :)



Ubuntu 10 e WenQuanYi Zen Hei Mono 9, comparado. Não há um vencedor claro aqui, se você me perguntar.

Dito isto, fontes são como comida. Alguns gostam deles bem arredondados, alguns gostam deles quentes e picantes - não há uma fonte certa, ou todos nós estaríamos usando isso agora. Yay por escolha!

    
por 18.11.2010 / 16:03
fonte
29

Existe uma razão que torna praticamente impossível usar fontes que não sejam monoespaçadas para codificação, mas não foi mencionada em outras respostas: seleções retangulares .

Esse recurso, muitas vezes não muito útil e pouco conhecido ao trabalhar com texto comum, é essencial para os desenvolvedores. Você pode imaginar uma infinidade de cenários: removendo // comentários em várias linhas, adicionando parênteses ou outros caracteres, etc. Isso é ainda mais valioso com suporte avançado de seleções retangulares, como no Visual Studio 2010, onde você pode não apenas selecionar e remova o texto, mas selecione e substitua.

Vamos dar um exemplo:

private IEnumerable<SELove> StackExchangeRocks()
{
    var howILoveSEWebsites = new []
    {
        new SELove { SiteName = "Stack Overflow", MyReputation = 5269,  MyRating = Rating.Outstanding, },
        new SELove { SiteName = "Programmers",    MyReputation = 16937, MyRating = Rating.Outstanding, },
        new SELove { SiteName = "Super User",     MyReputation = 650,   MyRating = Rating.QuiteGood,   },
        new SELove { SiteName = "Server Fault",   MyReputation = 489,   MyRating = Rating.Good,        },
        // Initialize other websites here.
    };

    return howILoveSEWebsites.OrderByDescending(c => c.MyRating);
}

private class SELove
{
    public string SiteName { get; set; }
    public int MyReputation { get; set; }
    public Rating MyRating { get; set; }
}

private enum Rating
{
    Outstanding,
    Good,
    QuiteGood,
}

Neste código legado, desejo substituir a classificação interna por um método que carregará minha classificação dos próprios sites do Stack Exchange, podendo sempre ter dados atualizados. Eu comecei a refatorar a propriedade MyReputation , e agora eu quero remover a inicialização, no escopo. Imagine que eu não tenha quatro, mas todos os sites da 84 SE.

Veja o que acontece ao usar Consolas , uma fonte monoespaçada. Eu pressiono Backspace, e isso é tudo, eu posso gastar o tempo restante para fazer algo realmente útil.

EaquiamesmacoisacomSegoeUI.Ai!

    
por 25.09.2011 / 00:02
fonte
16

Eu costumava usar uma fonte proporcional, principalmente porque acho que a pontuação é realmente mais fácil de diferenciar, mas com o tempo eu desisti porque ninguém mais faz isso e todo mundo inconscientemente assume fontes mono espaçadas (como o artigo da wikipedia menciona, tentando para fazer formatação tabular, arte ascii em comentários e assim por diante).

Além disso, issues no Visual Studio , que a Microsoft não quer consertar, basicamente torna impossível usar fontes proporcionais bem projetadas de qualquer maneira.

    
por 20.09.2010 / 11:36
fonte
8

Pessoalmente não me importo. Contanto que você mantenha minhas guias alinhadas e a fonte legível, eu não poderia me importar menos se eu usar espaçamento monoespaçado, proporcional ou algum outro espaço entre as paredes. Apenas não comece a substituir minhas guias por espaços, e você não terá nenhuma discussão comigo.

    
por 18.11.2010 / 16:56
fonte
6

Eu uso uma fonte proporcional (Arial é o melhor que eu encontrei até agora, Verdana um vice-campeão) e honestamente eu ainda estou confuso que as pessoas usam fontes de largura fixa; Por que você quer sacrificar a legibilidade assim? Eu poderia entender se a formatação tabular era desejável, mas não é, já que cria um pesadelo de manutenção, independentemente da fonte.

    
por 30.12.2010 / 16:01
fonte
4

Eu me lembro no livro de Bjarne Stroustrup A Linguagem de Programação C ++ , fontes espaçadas propotianamente foi usada para código. (Não consigo encontrar páginas de amostra na Web)

Não me lembro das razões exatas, mas acho que ele mencionou isso e uma outra alteração (eu acho que a própria linguagem C ++) como uma nova introdução nesse livro.

Pessoalmente, prefiro os de espaço fixo. Consolas é o meu favorito.

    
por 20.09.2010 / 11:57
fonte
4

Para idiomas com linhas curtas e muito espaço aberto, prefiro fontes monoespaçadas. Acho que fontes de largura variável podem melhorar a legibilidade quando você tem linhas longas e sintaxe densa.

O problema com as fontes mais proporcionais é que elas não foram projetadas para programação. Esta página mostra algumas fontes que foram.

    
por 24.09.2011 / 23:51
fonte
2

Ambientes Smalltalk, como o Pharo, usam fontes proporcionais e, devido ao estilo da linguagem, parecem muito bons lá. Mas em linguagens no estilo C, como Go ou outras, como Erlang ou Python, prefiro fontes monoespaçadas.

    
por 20.09.2010 / 11:28
fonte
2

Eu passei algum tempo procurando uma fonte boa e legível para o Eclipse há algum tempo, e no XP usei o Verdana por algum tempo. Consolas resolveu isso porque é realmente excelente para programação.

Estas são minhas descobertas:

  • A maioria das fontes proporcionais é projetada para prosa e apenas pouca pontuação (que geralmente é um ou raramente dois caracteres). A família de línguas C tem lotes de pontuação, o que simplesmente não parece - na minha opinião - bom e é mais difícil de ler do que o necessário.
  • Os caracteres de comprimento variável significam que o comprimento das linhas varia. Isso torna quase impossível adivinhar onde o cursor terminará ao navegar usando os botões de seta. Eu achei isso chato.
  • O espaçamento vertical também é importante. Isso normalmente não é algo que pode ser facilmente ignorado, e fontes mais proporcionais têm menos espaço entre as linhas do que eu gostaria.
  • Muito poucos IDE são testados com fontes proporcionais. Isso abre espaço para bugs sutis, como colocar o cursor no local errado, repintar incorretamente os caracteres e afins.

Por isso, descobri que não valeu a pena para mim.

Nota sobre o alinhamento e outros layouts: Configurei o Eclipse para formatar automaticamente cada arquivo a cada salvamento, para que todos os layouts de fantasia sejam redefinidos automaticamente. O Eclipse usa guias em vez de vários espaços e estes podem ser posicionados corretamente mesmo com fontes proporcionais. Por isso, os layouts dos formatadores podem ser um sobre o outro, mas usamos a configuração padrão do formatador que não tem isso.

Acredito que a imposição de formatação automática para todos em todas as salvaguardas minimiza os falsos positivos no sistema de controle de origem, ao fazer a análise forense.

    
por 09.04.2012 / 13:57
fonte
0

Nunca, nunca, porque as fontes monoespaçadas permitem comparar atributos diferentes.

Comparar:

name1 = ["William", "Shakespear", 1564, "Peotry"]

name2 = ["John", "Locke", 1632, "Filosofia"]

nome3 = ["Jonathan", "Littell", 1967, "Prosa"]

Para:

name1=["William",  "Shakespear", 1564, "Peotry"     ]
name2=["John",     "Locke",      1632, "Philosophy" ]
name3=["Jonathan", "Littell",    1967, "Prose"      ]

As fontes proporcionais simplesmente não podem colocar atributos equivalentes exatamente um acima do outro.

    
por 28.02.2012 / 14:06
fonte
0

Embora eu ache que as fontes proporcionais são mais bonitas, em algumas delas, especialmente as fontes sem serifa, é impossível ver a diferença entre um "eu" e um "l". Espere, o que eu nomeei essa variável novamente?

    
por 09.04.2012 / 15:07
fonte