it-swarm-id.com

Adakah yang lebih suka font proporsional?

Saya sedang membaca artikel wikipedia tentang gaya pemrograman dan melihat sesuatu dalam argumen terhadap kode yang selaras secara vertikal:

Ketergantungan pada font satu spasi; pemformatan tabular mengasumsikan bahwa editor menggunakan font dengan lebar tetap. Kebanyakan editor kode modern mendukung font proporsional, dan programmer mungkin lebih suka menggunakan font proporsional untuk keterbacaan .

Sejujurnya, saya tidak berpikir saya pernah bertemu seorang programmer yang lebih suka font proporsional. Saya juga tidak bisa memikirkan alasan bagus untuk menggunakannya. Mengapa seseorang lebih menyukai font proporsional?

53
Jason Baker

Poin umum terhadap font proporsional, dikomentari.

  • Anda tidak dapat dengan tepat menyelaraskan kode secara vertikal dengan font proporsional. Maksud saya, Anda bisa tepatnya menyelaraskan kode secara vertikal dengan font proporsional, jika semua orang menggunakan elastis tabstops , tapi sayangnya ...
  • Beberapa font proporsional mempersulit membedakan beberapa grup karakter. (mis., mrnm). Namun tidak semua font pemrograman sempurna: Courier New memiliki identik 'O' dan '0' dan identik '1' dan 'l'.
  • Beberapa IDE memiliki dukungan yang buruk untuk font yang tidak tetap-lebar (seperti tersebut di atas Visual Studio atau IDLE Python). Dalam beberapa konteks, Anda tidak bisa menggunakannya. (mis., terminal.)
  • Memilih font proporsional untuk pengkodean akan membuat Anda dalam perang suci yang tak ada habisnya. Namun, di sini ada masalah antara keyboard dan kursi.

Poin yang mendukung font proporsional

Secara pribadi, saya telah menggunakan keduanya font 'Ubuntu' dan WenQuanYi Zen Hei Mono dengan senang hati dan mendapati diri saya tidak dapat memilih satu sama lain. :)

Ubuntu
WenQuanYi Zen Hei Mono
Ubuntu 10 dan WenQuanYi Zen Hei Mono 9, dibandingkan. Tidak ada pemenang yang jelas di sini, jika Anda bertanya kepada saya.

Yang mengatakan, font seperti makanan. Beberapa seperti mereka yang bulat, beberapa seperti mereka panas dan pedas - tidak ada font yang tepat, atau kita semua akan menggunakannya sekarang. Yay untuk pilihan!

47
badp

Ada alasan yang membuatnya hampir mustahil untuk menggunakan font selain monospace untuk pengkodean, tetapi tidak disebutkan dalam jawaban lain: pilihan persegi panjang.

Fitur ini, seringkali tidak terlalu berguna dan tidak terlalu dikenal ketika bekerja dengan teks biasa, sangat penting bagi pengembang. Anda dapat membayangkan banyak skenario: menghapus // komentar pada beberapa baris, menambahkan tanda kurung atau karakter lain, dll. Ini bahkan lebih berharga dengan dukungan lanjutan dari pilihan persegi panjang, seperti pada Visual Studio 2010, di mana Anda tidak hanya dapat memilih dan menghapus teks, tetapi memilih dan menggantinya.

Mari kita ambil contoh:

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

Dalam kode lawas ini, saya ingin mengganti peringkat dalam kode dengan metode yang akan memuat peringkat saya dari situs web Stack Exchange sendiri, karena selalu dapat memiliki data terbaru. Saya mulai memperbaiki properti MyReputation, dan sekarang saya ingin menghapus inisialisasi, dalam cakupan. Bayangkan bahwa saya belum memiliki empat, tetapi semua 84 situs web SE.

Inilah yang terjadi ketika menggunakan Consolas , font monospace. Saya menekan Backspace, dan hanya itu, saya dapat menghabiskan waktu yang tersisa untuk melakukan sesuatu yang benar-benar bermanfaat.

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

Dan di sini hal yang sama dengan Segoe UI . Aduh!

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

Saya dulu menggunakan font proporsional, kebanyakan karena saya menemukan tanda baca sebenarnya lebih mudah untuk dibedakan, tetapi seiring waktu saya menyerah karena tidak ada orang lain yang melakukannya dan semua orang tanpa sadar menganggap font spasi mono (seperti yang disebutkan dalam artikel wikipedia, mencoba melakukan tabular memformat, seni ascii di komentar dan sebagainya).

Plus, masalah dalam Visual Studio , yang tidak ingin diperbaiki Microsoft, pada dasarnya membuatnya mustahil untuk menggunakan font proporsional yang dirancang dengan baik.

15
Dean Harding

Secara pribadi saya tidak peduli. Selama Anda menjaga tab saya selaras dan font dapat terbaca, saya tidak peduli apakah saya menggunakan monospace, proporsional, atau spasi lain di luar tembok. Hanya saja, jangan mulai mengganti tab saya dengan spasi, dan Anda tidak akan bertengkar dengan saya.

9
Aeo

Saya menggunakan font proporsional (Arial adalah yang terbaik yang saya temukan sejauh ini, Verdana adalah runner-up dekat) dan jujur ​​saya masih bingung bahwa orang menggunakan font dengan lebar tetap; mengapa Anda ingin mengorbankan keterbacaan seperti itu? Saya bisa mengerti jika pemformatan tabular diinginkan, tetapi tidak, karena itu menciptakan mimpi buruk pemeliharaan terlepas dari font.

6
rwallace

Untuk bahasa yang memiliki garis pendek dan banyak ruang terbuka, saya lebih suka font monospace. Saya menemukan bahwa font lebar variabel dapat meningkatkan keterbacaan di mana Anda memiliki garis panjang dan sintaks yang padat.

Masalah dengan font yang paling proporsional adalah font tersebut tidak dirancang untuk pemrograman. Halaman ini menunjukkan beberapa font yang tadinya.

Trim font

4
user287424

Saya ingat dalam buku Bjarne Stroustrup Bahasa Pemrograman C++ , font dengan spasi propotianitely digunakan untuk kode. (Saya tidak dapat menemukan halaman sampel di web)

Saya tidak ingat alasan pastinya, tetapi saya pikir dia menyebutkan ini dan satu sama lain perubahan (saya pikir bahasa C++ itu sendiri) sebagai perkenalan baru dalam hal itu Book.

Secara pribadi, saya lebih suka ruang tetap. Consolas adalah favorit saya.

4
Nivas

Lingkungan Smalltalk seperti Pharo menggunakan font proporsional dan karena gaya bahasa itu terlihat sangat bagus di sana. Tetapi dalam bahasa C-style seperti Go atau yang lain seperti Erlang atau Python Saya lebih suka font monospace.

2
themue

Saya menghabiskan beberapa waktu untuk menemukan font Eclipse yang bagus dan dapat dibaca beberapa waktu lalu, dan di bawah XP Saya menggunakan Verdana untuk beberapa waktu. Consolas menyatakan itu karena sangat bagus untuk pemrograman.

Ini adalah temuan saya:

  • Sebagian besar font proporsional dirancang untuk prosa dan hanya sedikit tanda baca (yang biasanya satu atau jarang dua karakter). Keluarga bahasa C memiliki banyak tanda baca, yang sama sekali tidak - menurut saya - terlihat bagus dan lebih sulit dibaca daripada yang diperlukan.
  • Karakter panjang variabel berarti bahwa panjang garis bervariasi. Ini membuatnya hampir mustahil untuk menebak di mana kursor akan berakhir ketika menavigasi menggunakan tombol panah. Saya menemukan ini menjengkelkan.
  • Penspasian jarak vertikal juga penting. Ini biasanya bukan sesuatu yang bisa diganti dengan mudah, dan sebagian besar font proporsional memiliki ruang lebih sedikit di antara baris daripada yang saya inginkan.
  • Sangat sedikit IDE yang diuji dengan font proporsional. Ini membuat ruang untuk bug halus seperti menempatkan kursor di lokasi yang salah, karakter pengecatan yang salah, dan sejenisnya.

Oleh karena itu saya menemukan bahwa itu tidak sepadan dengan masalah bagi saya.


Catatan tentang perataan dan tata letak lainnya: Saya telah mengatur Eclipse untuk memformat setiap file secara otomatis pada setiap penyimpanan, sehingga semua tata letak yang mewah secara otomatis diatur ulang. Eclipse menggunakan tab alih-alih beberapa spasi dan ini dapat diposisikan dengan benar bahkan dengan font proporsional. Karenanya tata letak formatter dapat saling melebihi satu sama lain, tetapi kami menggunakan konfigurasi formatter standar yang tidak memilikinya.

Saya percaya bahwa penerapan pemformatan otomatis untuk semua orang di setiap penyimpanan meminimalkan positif palsu dalam sistem kontrol sumber, ketika melakukan analisis forensik.

2
user1249

Tidak pernah, karena font Monospaced memungkinkan saya untuk membandingkan atribut yang berbeda.

Bandingkan:

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

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

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

Kepada:

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

Font proporsional tidak dapat menempatkan atribut yang sama persis satu di atas yang lain.

0
Adam Matan

Walaupun saya merasa bahwa font proporsional lebih cantik, pada beberapa dari mereka, terutama font sans-serif, tidak mungkin untuk melihat perbedaan antara "aku" dan "l". Tunggu, apa yang saya beri nama variabel itu lagi?

0
Billjk