it-swarm.dev

Orantılı yazı tiplerini tercih eden var mı?

programlama tarzı wikipedia makalesi okuyordu ve dikey hizalanmış koda karşı bir argüman bir şey fark ettim:

Tek aralıklı yazı tipine güvenme; sekmeli biçimlendirme düzenleyicinin sabit genişlikte bir yazı tipi kullandığını varsayar. Modern kod editörlerinin çoğu oransal yazı tiplerini destekler ve programcı okunabilirlik için oransal yazı tipi kullanmayı tercih edebilir .

Dürüst olmak gerekirse, orantılı yazı tipini tercih eden bir programcıyla tanıştığımı sanmıyorum. Bunları kullanmak için gerçekten iyi nedenler de düşünemiyorum. Neden birisi orantılı yazı tipini tercih eder?

53
Jason Baker

Orantılı yazı tiplerine karşı ortak noktalar yorumlandı.

  • Kodu, orantılı yazı tipleriyle dikey olarak tam olarak hizalayamazsınız. Yani, eğer olabilir herkes elastik tabstops , ama ne yazık ki, kod kullanarak dikey olarak kodu orantılı yazı tipleri ile tam olarak hizalayın ...
  • Bazı orantılı yazı tipleri, bazı karakter gruplarını ayırt etmeyi zorlaştırır. (örneğin, mrnm). Bununla birlikte, tüm programlama fontları da mükemmel değildir: Courier New özdeş 'O' ve '0' ve özdeş '1' ve 'l'.
  • Bazı IDE'lerin sabit genişlikli yazı tipleri için zayıf desteği vardır ( aforementioned Visual Studio veya Python'un IDLE gibi). Bazı bağlamlarda, sadece birini kullanamazsınız. (örn. terminaller.)
  • Kodlama için orantılı bir yazı tipi seçmek sizi sonsuz kutsal savaşlara götürecektir. Ancak burada klavye ve sandalye arasında sorun var.

Orantılı yazı tiplerini destekleyen noktalar

  • Bazı karakterler diğerlerinden daha geniştir. m veya n ile aynı alanda i değerini sıkıştırmak zorunda kalmak iyi, okunabilir bir tek aralıklı yazı tipi tasarlamak için zorlayıcı .
  • Harfler arasındaki boşluk artırıldı. Yanlış yazılmış yazı tipi aralığı örneği için bu Proggy Clear ekran görüntüsü içindeki rnW ve Ill değerlerini karşılaştırın.
  • Çoğu programcı yazı tipinde italik veya kalın yazı yoktur. Bu, etkili sözdizimi vurgulamanın kullanılmasını zorlaştırır.
  • Dikey hizalama yine de bir solucan konservesi. Sekmeler mi yoksa boşluklar mı yoksa sekmeler ve boşluklar mı?

Şahsen, hem 'Ubuntu' font ve WenQuanYi Zen Hei Mono'yu zevkle kullanıyorum ve kendimi diğerini tercih edemiyorum. :)

Ubuntu
WenQuanYi Zen Hei Mono
Ubuntu 10 ve WenQuanYi Zen Hei Mono 9 karşılaştırıldı. Bana sorarsan, burada net bir kazanan yok.

Bununla birlikte, fontlar yemek gibidir. Bazıları iyi yuvarlak, bazıları sıcak ve baharatlı gibi - tek bir doğru yazı tipi yok, ya da hepimiz bunu şimdi kullanardık. Seçim için Yay!

47
badp

Kodlama için tek aralıktan başka yazı tiplerinin kullanılmasını neredeyse imkansız kılan bir neden vardır, ancak diğer cevaplarda belirtilmemiş: dikdörtgen seçimler.

Sıradan metinlerle çalışırken genellikle çok yararlı olmayan ve çok bilinmeyen bu özellik, geliştiriciler için gereklidir. Çok sayıda senaryo hayal edebilirsiniz: kaldırılıyor // _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Birkaç metni seçip silebilirsiniz.

Bir örnek verelim:

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,
}

Bu eski kodda, her zaman güncel bir veriye sahip olabilmek için yığın Exchange derecelendirmelerini Yığın Değişimi web sitelerinden kendileri yükleyecek bir yöntemle değiştirmek istiyorum. MyReputation özelliğini yeniden düzenlemeye başladım ve şimdi başlangıçtaki kapsamı kaldırmak istiyorum. Dört değil, 84 SE web sitemin hepsinin olduğunu hayal edin.

Tek aralıklı yazı tipi olan Konsoloslar kullanılırken neler olduğu aşağıda açıklanmıştır. Backspace'e basıyorum ve hepsi bu, gerçekten yararlı bir şey yapmak için kalan zamanı harcayabilirim.

The image shows that with Consolas, the rectangle selects reputation property.

Ve burada aynı şey Segoe UI . Ah!

The image shows that with Segoe UI, some reputation properties are selected only partially, while on other lines, the beginning of rating property is selected.

30
Arseni Mourzenko

Orantılı bir yazı tipi kullanıyordum, çünkü noktalama işaretlerini ayırt etmenin daha kolay olduğunu düşünüyorum, ancak zamanla vazgeçtim çünkü başka kimse yapmıyor ve herkes bilinçli olarak mono aralıklı yazı tiplerini kabul ediyor (wikipedia makalesinde belirtildiği gibi, sekmeli yapmaya çalışıyor) biçimlendirme, yorumlarda ascii sanatı vb.).

Artı, Visual Studio'daki sorunlar , Microsoft'un düzeltmek istemediği, temel olarak iyi tasarlanmış orantılı yazı tiplerini zaten kullanmanın imkansız olmasını sağlar.

15
Dean Harding

Şahsen umrumda değil. Sekmelerimi hizaladığınız ve yazı tipini okunaklı tuttuğunuz sürece, tek boşluklu, orantılı veya başka bir duvar boşluğu kullanıp kullanmadığım umurumda değildi. Sekmelerimi boşluklarla değiştirmeye başlamayın, benimle hiç kavga etmeyeceksiniz.

9
Aeo

Orantılı bir yazı tipi kullanıyorum (Arial şimdiye kadar bulduğum en iyisi, Verdana yakın bir ikincilik) ve dürüst olmak gerekirse hala insanların sabit genişlikli yazı tipleri kullandığından şaşkınım; neden böyle okunabilirliği feda etmek istersiniz? Sekmeli biçimlendirmenin istenip istenmediğini anlayabiliyordum, ancak yazı tipine bakılmaksızın bir bakım kabusu yarattığı için değil.

6
rwallace

Kısa çizgileri ve çok fazla açık alanı olan diller için tek aralıklı yazı tiplerini tercih ederim. Değişken genişlikli yazı tiplerinin uzun satırlarınız ve yoğun sözdiziminiz olduğunda okunabilirliği artırabildiğini görüyorum.

Orantılı yazı tiplerinin çoğunda sorun, bunların programlama için tasarlanmamış olmasıdır. Bu sayfa olan bazı yazı tiplerini gösterir.

Trim font

4
user287424

Bjarne Stroustrup'un kitabında C++ Programlama Dili , kod için propotianely aralıklı fontlar kullanıldığını hatırlıyorum. (Web üzerinde örnek sayfa bulamıyorum)

Kesin nedenleri hatırlamıyorum, ama o ve başka bir değişiklik (sanırım C++ dilinin kendisi) bu ( yeni bir giriş olarak söz düşünüyorum kitap.

Şahsen, sabit alanlı olanları tercih ederim. Consolas benim favorim.

4
Nivas

Pharo gibi küçük konuşma ortamları orantılı yazı tipleri kullanır ve dil stili nedeniyle orada çok iyi görünür. Ancak Go gibi C tarzı dillerde veya Erlang gibi diğer dillerde veya Python Tek aralıklı yazı tiplerini tercih ederim.

2
themue

Eclipse için iyi, okunabilir bir yazı tipi bulmak için biraz zaman harcadım ve XP Verdana'yı bir süre kullandım. Consolas bunu programlama için gerçekten mükemmel olduğu için çözdü.

Bunlar benim bulgularım:

  • Orantılı yazı tiplerinin çoğu düzyazı ve yalnızca küçük noktalama işaretleri için tasarlanmıştır (bu da genellikle bir veya nadiren iki karakterdir). C dil ailesi çok noktalama işaretine sahiptir, bu da - bence - iyi görünmüyor ve gerekenden daha zor okunuyor.
  • Değişken uzunluktaki karakterler satır uzunluğunun değiştiği anlamına gelir. Bu, ok düğmelerini kullanarak gezinirken imlecin nerede biteceğini tahmin etmeyi imkansız hale getirir. Bunu sinir bozucu buldum.
  • Dikey boşluklar da önemlidir. Bu normalde kolayca geçersiz kılınabilecek bir şey değildir ve çoğu oransal yazı tipi satırlar arasında istediğimden daha az yer tutar.
  • Çok az IDE, orantılı yazı tipleriyle test edilir. Bu, imleci yanlış konuma koymak, yanlış karakterleri yeniden boyamak ve benzerleri gibi ince hatalara yer açar.

Bu yüzden benim için sorun değmez olduğunu buldum.


Hizalama ve diğer mizanpajlar hakkında not: Eclipse'i her kayıttaki her dosyayı otomatik olarak biçimlendirecek şekilde ayarladım, böylece tüm süslü mizanpajlar otomatik olarak sıfırlanır. Eclipse, birden çok boşluk yerine sekmeler kullanır ve bunlar orantılı yazı tipleriyle bile doğru şekilde konumlandırılabilir. Bu nedenle biçimlendirici düzenleri can birbirinin üzerinde olabilir, ancak buna sahip olmayan standart biçimlendirici yapılandırmasını kullanırız.

Adli analiz yaparken, her tasarrufta herkes için otomatik biçimlendirmenin uygulanmasının kaynak kontrol sistemindeki yanlış pozitifleri en aza indirdiğine inanıyorum.

2
user1249

Asla, asla, çünkü Tek Aralıklı yazı tipleri farklı özellikleri karşılaştırmama izin veriyor.

karşılaştırın:

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

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

name3 = ["Jonathan", "Littell", 1967, "Nesir"]

Kime:

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

Orantılı yazı tipleri eşdeğer nitelikleri tam olarak üst üste yerleştiremez.

0
Adam Matan

Orantılı yazı tiplerinin daha güzel olduğunu düşünürken, bazılarında, özellikle sans-serif yazı tiplerinde, "I" ile "l" arasındaki farkı görmek imkansızdır. Bekle, bu değişkene tekrar ne isim verdim?

0
Billjk