Зачем использовать моноширинные шрифты в вашей IDE?

Я видел пару тем о шрифтах на SO, и кажется, что большинство людей используют моноширинные шрифты для задач программирования. Я использую Verdana для программирования в течение нескольких лет, и мне очень нравится улучшенная читаемость, не пропуская ничего, связанного с моноширинами.

Почему вы используете моноширинный шрифт?


person Community    schedule 20.10.2008    source источник
comment
У кого-нибудь есть веские причины не использовать скриптовые шрифты? :)   -  person jammus    schedule 20.10.2008
comment
Лично мне нравится использовать Сан-Франциско (lowendmac.com/backnforth/2k0601.html) для мой ... :)   -  person John Rudy    schedule 20.10.2008
comment
Я думаю, что Trim идет даже дальше, чем Verdana, делая код читабельным. (code.google.com/p/i3project/wiki/Fonts)   -  person user287424    schedule 22.09.2011
comment
По крайней мере, я не единственный еретик, использующий Вердану. :)   -  person Calmarius    schedule 08.10.2011
comment
Откройте это снова. Знание правильного инструмента / техники для работы и причин для этого, безусловно, стоит обсудить.   -  person Thomas Eding    schedule 25.09.2013
comment
Я единственный, кто использует Comic Sans для программирования. :)   -  person You    schedule 27.11.2016


Ответы (15)


В моноширинном шрифте:

  • Строковые литералы одинаковой длины выглядят одинаково.
  • Легче увидеть тонкие знаки препинания, такие как: () {}
  • Похожие символы выглядят по-разному: Il 0O vs Il 0O
  • Вы знаете, будет ли строка переноситься на окно шириной X символов. Это означает, что ваша команда может стандартизировать, скажем, 100 строк символов, и строка всегда будет выглядеть как строка.
person Community    schedule 20.10.2008
comment
Второй и третий пункты на самом деле не так специфичны для моноширинных экранов. Это скорее вопрос о том, какой именно шрифт вы используете, а не о том, моноширинный он или нет. Verdana хорошо справляется с обеими задачами (лучше, чем большинство моноширинных шрифтов, имхо), поэтому я использую его. - person Rik; 20.10.2008
comment
Чтобы исправить каждое из них: Эквивалентные строки выглядят одинаковой ширины, и я задаюсь вопросом, почему вы заботитесь о строках, которые отличаются друг от друга и имеют только длину. Немоноширина не означает, что знаки препинания должны быть тонкими; вы должны использовать другой немоно шрифт. Похожие символы не обязательно выглядят по-разному в моноширине; У SimHei, например, O и 0 идентичны. Это свойство шрифта, а не ширины. Наконец, если ваша команда действительно занимается стандартизацией, вы можете выбрать немоно и стандартизировать, не позволяя этому утекать с экрана. - person bwerks; 22.08.2010

Раньше я даже не рассматривал кодирование пропорциональным шрифтом. Так что в интересах науки я просто переключил своего редактора, чтобы попробовать.

Вот несколько наблюдений после исправления пары простых тикетов:

  • Код кажется чрезвычайно плотным. Большая часть моего кода имеет около 80 столбцов, редко более 100. Пропорциональные шрифты сжимают его до крошечной полоски в левой части моего редактора. Может быть полезно, если у вас мало места на экране, но это кажется излишне компактным.
  • «Текстура» кода теряется. Трудно сказать, на какую структуру я смотрю — это просто большой кусок текста, который нужно читать почти посимвольно.
  • очень легко пропустить оператор ! в if (!foo). (если (!foo), см.!)
  • Знаки препинания прописаны очень плохо. Многие из них трудно отличить друг от друга ({}[]() против {}[]())
  • Некоторые знаки препинания намного крупнее других, что делает акцент там, где он не предназначен ($@% против $@%)
  • Некоторые символы очень узкие, и их очень трудно идентифицировать ('"!;:,. против '"!;:,.)
  • Некоторые цифры и буквы очень похожи (0Oo iIl против 00o iIl)
  • Я чрезвычайно полагаюсь на подсветку синтаксиса, без нее почти невозможно делать такие вещи, как подтверждение сбалансированности кавычек и т. д.
  • Выравнивание (кроме простого отступа) полностью нарушено. Вы можете сделать это, добавив дополнительные пробелы, но из-за пропорционального характера шрифтов строки могут не совпадать точно — код выглядит более беспорядочным.
  • Регулярные выражения… это интересно!

Однако есть и положительные моменты. По общему признанию, я использую его совсем недавно, но, безусловно, есть некоторые аспекты, которые работают немного лучше с пропорциональными шрифтами:

  • "слова" легче читать - орфографические ошибки (например, неправильное написание переменной) бросаются в глаза.
  • Мне удобнее использовать более длинные и описательные имена переменных (может быть, потому, что они лучше сканируются, может быть, потому, что размер текста по горизонтали сжат).
  • Такой код кажется немного легче читать. Моему мозгу легче «обозначать» каждое слово и понимать его значение. Хотя из-за того, что знаки препинания труднее читать, это все еще тяжело, но, возможно, это изменится, если немного времени, чтобы привыкнуть к этому.

Завтра я снова обновлю этот ответ (при условии, что смогу продержаться целый день!)

person Community    schedule 20.10.2008
comment
Хорошая работа! Однако мне интересно, какой шрифт вы использовали, поскольку большинство ваших замечаний о том, что некоторые персонажи выглядят слишком похожими, меня совсем не беспокоят. - person Rik; 20.10.2008
comment
Я начал с Arial, перешел на Calibri. Я попробовал несколько других, но они тоже оказались лучшими, основываясь на 20-секундном крайне ненаучном просмотре моего списка шрифтов и рекомендации Конрада Рудольфа. - person Dan; 21.10.2008
comment
Раньше я даже не рассматривал кодирование пропорциональным шрифтом. Так что в интересах науки я просто переключил своего редактора, чтобы попробовать. Сколько лет вы занимаетесь программированием и привыкли к фиксированной ширине? Здесь у вас есть достойный ответ, но вы не учитываете свою предвзятость (и это было бы трудно сделать без дополнительной работы), что не очень хорошая наука. - person ; 13.07.2010
comment
@Roger: Возможно, это не очень хорошая наука (проведение такого исследования было бы почти невозможно и очень дорого!), Но причины правдоподобны. И сломанный отступ — это труднопреодолимый аргумент (в современных IDE/редакторах; эта проблема решается умным отступом с использованием позиций табуляции, соответствующих семантике). - person Konrad Rudolph; 13.07.2010
comment
@Konrad: Не воспринимайте мой предыдущий комментарий как слишком негативный (теперь я вижу, что вы можете читать мой комментарий таким образом; здесь трудно передать тон), ваши впечатления в этом ответе полезны. Это просто казалось неискренним: например, принимая первое наблюдение, конечно, код кажется плотным, когда у вас есть X лет использования фиксированной ширины и Y минут использования пропорционального. - person ; 13.07.2010
comment
Судя по отступу, это не проблема. Выравнивание несколько lines - это труднопреодолимый аргумент с использованием современных инструментов. , но он используется реже, чем обычный отступ. - person ; 13.07.2010
comment
Пропорциональный шрифт, разработанный специально для программирования, решил бы большинство обычных возражений. На code.google.com/p/i3project/wiki/ есть несколько пропорциональных шрифтов для написания кода. Шрифты - person user287424; 22.09.2011
comment
Какой шрифт вы использовали? - person Eamon Nerbonne; 16.07.2014
comment
слова и правописание не должны быть проблемой, так как в любом случае можно было бы использовать инструменты i18n для манипулирования текстовыми символами ... но я думаю, это помогает? - person Marius; 23.03.2015

Мне нравится выстраивать связанные условные предложения, чтобы было более очевидно, что они сгруппированы. Например:

if ((var1 == FOO) && ((var2 == BAR) ||
                      (var2 == FOOBAR)))

Шрифты переменной ширины усложняют задачу.

person Community    schedule 20.10.2008
comment
Действительная точка. Но у вертикального выравнивания есть проблема: что, если вам нужно что-то изменить в этом операторе if? Вам, вероятно, придется перестроить все вещи. - person Calmarius; 08.10.2011
comment
@Calmarius: сделать его читабельным - часть моего кодирования в течение всего дня, я делаю это бессознательно. Если вы прилагаете усилия для изменения кода, вы также должны прилагать усилия для снижения затрат на обслуживание. - person Sebastian Mach; 27.02.2012
comment
Лучший способ добиться этого — эластичные вкладки, даже если вы придерживаетесь моноширинного шрифта. Не то чтобы это была практичная альтернатива в текущих редакторах... - person Roman Starkov; 28.02.2012
comment
@romkyns: эластичные табуляторы достаточно умны, чтобы выровнять скобку с другой скобкой? - person endolith; 08.02.2013
comment
@endolith Ну, они определенно умнее, чем spaces... :) Вам все еще нужно решить, что вы хотите согласовать с чем; большое преимущество заключается в том, что как только вы это сделаете, все останется согласованным, даже если другие вещи изменятся. - person Roman Starkov; 08.02.2013
comment
@romkyns: Как бы вы расставили скобки в этом случае? - person endolith; 08.02.2013
comment
@endolith Вы должны вставить табуляцию между двумя скобками в первой строке и табуляцию перед открывающей скобкой во второй строке. Теперь это добавит дополнительное пространство между двумя круглыми скобками в строке 1 в ванильной реализации, но вы получите выравнивание, которое сохраняется при редактировании, что мне кажется очень выгодным компромиссом. На самом деле, я бы даже добавил табуляцию после закрывающей скобки в обеих строках. См. скриншот во всей красе шрифта переменной ширины или попробуйте сами. - person Roman Starkov; 10.02.2013

Одна вещь, которую я постоянно вижу здесь, — это обсуждение «выравнивания кода» и отступов. Я хотел бы отметить следующие вещи:

  • восемь пробелов всегда будут в два раза длиннее четырех пробелов в любом шрифте.
  • две вкладки всегда будут в два раза длиннее одной вкладки в любом шрифте.
  • любой идентификатор в одной строке всегда будет такой же ширины в следующей строке... в любом шрифте!
  • конечно, если ваши товарищи по команде используют моноширинное пространство, а вы нет, это будет выглядеть по-другому... но вы должны стандартизировать что-то - что бы это ни было - и если это правда, то это будет выглядеть одинаково для всех. ..в ЛЮБОМ шрифте! Для смеха вы также можете попробовать оставить всех на моноширине и дать половине из них широкоэкранные мониторы... посмотрите, как это получится.
  • Если вы делаете что-то, что основано на выравнивании кода на основе столбцовой позиции этих символов на экране, а не области действия используемых вами идентификаторов, я полагаю, что то, что вы делаете, является хаком. Идентификаторы никогда не должны ограничиваться определенным количеством символов за счет качества их имен. Кроме того... вы же не рисуете ASCII-боксы со звездочками для комментариев в своем коде, не так ли?

Итак, собрав все это вместе, если вы начинаете каждую строку в одном и том же месте, и постоянный интервал имеет одинаковую ширину, а идентификаторы не меняют ширину спонтанно в каждой строке, тогда ваш код действительно выстроится! ... пока что-то не изменилось.

Например:

identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;
  • идентификатор.Метод().Свойство.ToString();
  • идентификатор.Метод().OtherGuy.ToString(); //о нет! смещено!
  • идентификатор.Метод().Суммирование.ВыПолучитеОчко; //...но кого это волнует? это разные свойства!

Единственное, что я признаю, это то, что небуквенно-цифровые символы обычно не очень широкие; к ним относятся )(][}{,:|";',`! и . Однако это можно исправить в редакторе шрифтов... просто сделав их шире. Это не проблема, присущая немоноширинному формату; не было большого спроса на это, и поэтому это еще не сделано.

Таким образом, с личными предпочтениями все в порядке, но я думаю, что нет практических причин предпочитать моноширинное пространство немоноширинному. Вам нравится, как это выглядит? Конечно, сделайте моноширинный. Вы хотите, чтобы на экране помещалось больше вещей? Перейти не моно. Но то, как люди относятся к немонопространству как к ереси, немного преувеличено.

person Community    schedule 30.07.2010
comment
+1 для большего количества вещей на вашем экране. А ASCII-боксы... ...ну, пустая трата времени. - person Calmarius; 08.10.2011
comment
+1; эти моменты на самом деле трудно оценить, пока вы некоторое время не использовали пропорциональный шрифт. - person Roman Starkov; 28.02.2012
comment
+1 за широкое понимание того, что пропорциональные шрифты, разработанные специально для программирования, могут быть сделаны и не обязательно должны быть моноширинными. Если пропорциональные шрифты были более распространены в программировании, может возникнуть новая культура «типографики программирования». Не так обстоит дело с «еретическим» мышлением. - person Timwi; 28.02.2012
comment
На самом деле я попробовал сделать этот пропорциональный программистский шрифт — он не так уж и плох! Редактирование шрифта — это боль, но вам нужно сделать это только один раз. - person bwerks; 02.03.2012
comment
Хотел бы я дважды проголосовать за это ... безуспешно стучал по этим же вопросам над головами коллег-программистов в течение многих лет. - person Paul Go; 10.01.2014
comment
Вы делаете широкие предположения в своих точках: 1) выравнивание должно происходить только в начале строки, 2) выравнивание похожих вызовов на нескольких строках всегда будет на одном и том же объекте идентификатора.Метод (), 3) столбцовая позиция имеет что угодно делать с именами идентификаторов, 4) единственный раз, когда может понадобиться выравнивание в комментариях, это для полей ASCII со звездочками. Извините, -1. - person Droj; 10.02.2014
comment
Я обижаюсь не потому, что вы меня минусовали, а потому, что вы не предлагаете ни малейшего контраргумента. По сути, ты только что пересказал мне мои тезисы, ха. Но да, согласен! Выравнивание имеет значение только до тех пор, пока линии не различаются; выравнивание вызовов методов с разными аргументами НЕ имеет значения, потому что вы не должны ограничивать длину имен ваших переменных; позиция столбца ДЕЙСТВИТЕЛЬНО НЕ имеет ничего общего с именами идентификаторов; и единственный раз, когда вам нужно выравнивание, ЕСТЬ, когда вы балуетесь искусством ascii за копейки компании. - person bwerks; 10.02.2014
comment
Вы находитесь в пустой комнате с компьютером. Существует стандарт кодирования, в котором говорится, что один вызов метода на строку, плавные интерфейсы должны выравниваться по точке. Выхода на север нет. Идти. - person MrDosu; 04.03.2015
comment
Что не так с выравниванием элементов в столбцах, таких как определения перечислений? И что не так с ASCII-графикой? - person rr-; 28.01.2016

Мне стало любопытно в этой теме, потому что многие аргументы в пользу моноширинных шрифтов действительно можно легко опровергнуть с некоторой настройкой. Поэтому я переключил свою IDE на Calibri (потому что у нее приятный круглый вид и она оптимизирована для чтения на экранах для пользовательского интерфейса — идеально). Теперь мне явно приходится использовать табуляции вместо пробелов для отступов (игнорируя все проблемы), а ширины в 4 пробела явно недостаточно, поэтому я переключился на 10.

Сейчас выглядит неплохо. Тем не менее, есть несколько очевидных проблем, которые я мог заметить. Больше может появиться позже, после того, как я некоторое время протестировал эти настройки.

  • Как уже упоминалось, некоторые символы (особенно круглые скобки, точки с запятой) выглядят слишком тонкими. Я хочу это в непрерывном тексте, но не в исходном коде. Думаю, это будет самая большая проблема.
  • Символы плохо выравниваются. В качестве примера рассмотрим следующий код C#:

    var expr = x => x + 1;
    

    Стрелка (=>) выглядит как единица в любом моноширинном шрифте. В других шрифтах это выглядит как два соседних символа. То же самое верно для таких операторов, как >> и т. д.

  • Пространства выглядят крошечными. Я сильно раздвигаю свои исходные коды, чтобы улучшить читабельность. Это сходит на нет при переходе на пропорциональный шрифт. Если бы я мог контролировать ширину пробелов, это определенно помогло бы.
  • Контекстно-зависимый отступ полностью нарушен: в некоторых контекстах недостаточно отступа на фиксированное количество вкладок. Возьмите выражения LINQ, которые могут иметь отступ следующим образом:

    var r = from c in "This, apparently, is a test!"
            where !char.IsPunctuation(c)
            select char.ToUpper(c);
    

    Вы просто не можете сделать это с пропорциональным шрифтом.

В общем, персонажи слишком узкие. Опять же, дополнительный межбуквенный интервал может помочь, и это определенно необходимо в случае пунктуации. Тем не менее, у меня есть ощущение, что все эти настройки, чтобы сделать пропорциональные шрифты более читабельными, просто имитируют то, что моноширинные шрифты естественным образом. Это, безусловно, верно для всех пунктов, упомянутых до сих пор.

person Community    schedule 20.10.2008
comment
На самом деле Calibri немного лучше, чем Arial (это то, с чем я тестировал), хотя у него все еще есть похожие проблемы. - person Dan; 20.10.2008
comment
Я пробовал несколько шрифтов. Calibri и Lucida Sans Unicode кажутся наиболее вероятными кандидатами. Не случайно Lucida Sans Unicode (под псевдонимом «Lucida Grande») является шрифтом пользовательского интерфейса OS X. - person Konrad Rudolph; 20.10.2008
comment
Да, эти двое очень похожи, на самом деле. Calibri выигрывает для меня, так как у него чуть более четкая пунктуация. - person Dan; 20.10.2008
comment
Это может быть только я, но я обнаружил, что расстояние Calibri невероятно непредсказуемо - некоторые пробелы кажутся несуществующими, а другие кажутся огромными. Даже без учета программирования, я отключил его на каждой машине, которую использую. - person bwerks; 31.07.2010
comment
@bwerks: что ты имеешь в виду под «отключить»? Просто не используйте его, если он вам не нравится. Кроме того, когда, кроме как в программировании, вы используете интервалы? Для форматирования? Не надо, это смертный грех. Кроме того, то, что вы наблюдаете, может быть просто результатом плохого алгоритма переноса строк в Microsoft Word, поскольку интервал Calibri всегда одинаков: пробел всегда имеет одинаковую ширину. В частности, на него не влияет кернинг. - person Konrad Rudolph; 01.08.2010
comment
Пользовательский интерфейс Segoe, кажется, имеет достаточно широкий символ пробела из коробки, хотя кто-то, кого я знаю, просто отредактировал свой любимый шрифт, чтобы сделать пространство шире. Не знал, что это можно сделать легко. - person Roman Starkov; 28.02.2012
comment
@romkyns Fontforge очень мощный и, по-видимому, довольно простой в использовании (сам никогда им не пользовался). На самом деле я считаю, что Comic Sans — самый читаемый кодовый шрифт (и я слышал, что есть исследования читабельности, которые показывают, что Comic Sans действительно лучший шрифт просто с точки зрения удобочитаемости). Увы, это тоже некрасиво. Если бы кто-нибудь когда-нибудь разработал более красивую альтернативу (и если бы редакторы кода поддерживали пропорциональные шрифты), это сделало бы меня гораздо более склонным к пропорциональным программным шрифтам. - person Konrad Rudolph; 28.02.2012
comment
@KonradRudolph Fontforge — единственное известное мне бесплатное программное обеспечение для редактирования шрифта, но, к сожалению, оно постоянно дает сбой в Windows 7. Я не уверен, что это можно исправить, очевидно, эта программа была скомпилирована для WinXP или даже Win98. - person Mikhail V; 10.07.2016
comment
@KonradRudolph ой, возьми мои слова обратно, недавно они выпустили новую версию, установили ее сейчас, и она не падает, по крайней мере, до сих пор. Я заинтригован - person Mikhail V; 10.07.2016

Я использую шрифт Comic Sans MS, который выглядит вполне разумно при небольшом размере шрифта (он начинает выглядеть «шутливо» только при размерах заголовков). Это удобно для глаз, но при этом текст остается достаточно маленьким, чтобы разумный объем кода был виден в текстовом окне с несколькими открытыми закрепленными панелями VS.

Вы можете отключить панель обозревателя решений и по-прежнему иметь 100 столбцов текста, читаемых без горизонтальной прокрутки. Более того, я могу открыть панель DXCore Documentor (отображающую отформатированные документы XMLDOC) достаточно широко, чтобы читать, но при этом иметь возможность видеть достаточно текста для документирования документов XML.

person Community    schedule 20.10.2008
comment
О чувак. Почему? Я хотел бы услышать ваше обоснование для этого! - person Dan; 20.10.2008
comment
Использование комиксов для чего угодно :) - person Dan; 20.10.2008
comment
Мое оправдание, ну, остальная часть сообщения. - person James Curran; 20.10.2008
comment
Ваше оправдание в том, что он маленький? Из всех особенностей Comic Sans его малость редко выбирается среди других шрифтов. К тому же ты выглядишь на 12. Если бы я работал с тобой, я бы уже точно посмеялся над тобой за это :) - person Dan; 21.10.2008
comment
@ Дэн, нет, он читабельен, КОГДА он маленький, что часто является приоритетом при выборе шрифта. И смеясь над человеком над его выбором шрифта, вы выглядите на 12. - person James Curran; 21.10.2008
comment
Полностью скумбрия - я только что попробовал это, и это работает. Джеймс, вероятно, обнаружил единственную оставшуюся причину существования Comic Sans — он хорошо читается до 7 пунктов. В следующий раз, когда мне придется рефакторить чужой код с тысячью строковыми методами, я буду использовать этот шрифт. - person Bevan; 10.11.2008
comment
Это вполне может быть читаемо, но я бы все равно не стал признаваться в этом публично :) - person patricksweeney; 06.02.2009
comment
ЭТО было шокирующим опытом! Я все еще не уверен в использовании вспомогательных шрифтов, но Comic Sans действительно пригоден для использования. Я знаю, что это глупый и злоупотребляющий шрифт, который вызывает случайный визуальный ужас и никогда не должен был появиться. Но он работает в небольших масштабах, и его можно использовать. Остальное просто снобизм. Спасибо, Джеймс! - person Dercsár; 25.02.2010
comment
Я использую MS Sans Serif (еще один немоноширинный шрифт), и хотя размер шрифта уменьшается только до 9 пунктов, он умещает такое же количество строк на экране, по 57 строк для каждого шрифта, несмотря на более высокие символы — меньше межстрочного пространства. . Я должен признать, хотя, я бы никогда не дал ему время дня, но это выглядело совсем неплохо. - person bwerks; 31.07.2010
comment
проголосовал только потому, что вы используете комикс. это точно против течения - person sheldonhull; 12.07.2016

Если вы работаете в команде, моноширинные шрифты гарантируют, что код будет четким и правильным для всех, какой моноширинный шрифт они предпочитают использовать.

Ваш код может показаться вам понятным при использовании шрифта переменной ширины, но вряд ли он будет выглядеть так же, если его откроет пользователь с моноширинным шрифтом.

person Community    schedule 20.10.2008

Все, что требуется, — это несколько часов попыток понять, почему поиск ничего не находит, потому что у вас есть 2 пробела вместо 1 в вашем литерале, чтобы понять, что вы должны использовать моноширинные шрифты. Это случилось со мной однажды, когда я пытался исправить агент Lotus Notes, когда дизайнер не использовал моноширинный шрифт. Только когда я вставил код в CodeWright, чтобы распечатать его, стало очевидно, в чем проблема.

person Community    schedule 20.10.2008
comment
Ширина пробела постоянна при использовании пропорционального шрифта, не так ли? - person Calmarius; 08.10.2011
comment
Или вы можете использовать пропорциональный шрифт с более широким пространством. Пропорциональность сама по себе не вызывает проблемы, о которой вы говорите. - person Roman Starkov; 28.02.2012

Моноширинные шрифты значительно упрощают выравнивание кода.

Это особенно верно при работе с командой; все в команде могут использовать разные шрифты, и пока они все моноширинные, все будет выравниваться. Точно так же, если один человек использует множество различных инструментов разработки, все будет выстраиваться, если все они будут моноширинными. Если бы они не были все моноширинными, вам пришлось бы убедиться, что все они используют один и тот же шрифт, а если вы разрабатываете на двух платформах, это может быть сложно.

Фактически, некоторые средства разработки поддерживают только моноширинные шрифты.

Другая причина заключается в том, что моноширинные шрифты имеют более четкие символы. Сравните lIiO0 с lIiO0, и вы поймете, что я имею в виду. Они также значительно облегчают подсчет пробелов.

person Community    schedule 30.10.2009
comment
все будет выровнено - только если ваша команда уладила Единую священную войну табуляций против пробелов и/или имеет единую настройку ширины табуляции. - person Roman Starkov; 28.02.2012
comment
Даже если вы используете отступ табуляции, вы все равно должны использовать пробелы для выравнивания после отступа. - person PeterAllenWebb; 05.05.2015

Я подозреваю, что моноширинные шрифты были предпочтением программистов как пережиток текстовых дней DOS.

С другой стороны, я сам пробовал Verdana и пару других рекомендуемых пропорциональных шрифтов, но не смог справиться с изменением. Мой глаз слишком хорошо натренирован для моноширинного изображения. Языки, насыщенные символами, такие как: C/C++, C#, Perl и т. д., для меня выглядят слишком по-другому. Размещение символов делает код совершенно другим.

person Community    schedule 20.10.2008
comment
Это кажется реальным ответом, я также думаю, что это в основном связано с привычкой/историческими причинами, а остальное - просто ограничения редактора кода или плохие шрифты. - person Mikhail V; 09.07.2016

По характеру кода, а не обычного языка, лучше, чтобы он был правильно выстроен. Кроме того, при редактировании кода иногда требуется заблокировать выбор, копирование и вставку блока. В Visual Studio вы можете сделать выбор блока, используя клавишу ALT во время выбора мышью. Это может быть по-разному в разных редакторах, но я всегда находил этот параметр в редакторе очень важным в некоторых случаях, и он не будет работать очень хорошо, если вы не используете моноширинный шрифт.

person Community    schedule 20.10.2008
comment
Теперь есть новое нажатие клавиши, о котором я никогда раньше не знал. Ваше здоровье. - person Kev; 20.10.2008

Лично я считаю, что моноширинные шрифты легче читать в редакторах кода. Я, конечно, почти слепой. Это может иметь значение. В настоящее время я запускаю шрифт consolas размером 15 пунктов с темным фоном и высококонтрастными буквами.

person Community    schedule 20.10.2008
comment
Consolas на самом деле является моноширинным шрифтом. Очень хороший, при том. Я тоже его использую. - person Joel Mueller; 20.10.2008
comment
+1 для Consolas и Inconsolata на Mac - person the_mandrill; 30.10.2009
comment
@ Джо Мюллер - я понятия не имею, как я это написал. Я имею в виду обратное тому, что я написал. Позвольте мне отредактировать это .... хорошо. :) - person John Kraft; 30.10.2009
comment
Я бы порекомендовал вам попробовать найти хороший немоноширинный шрифт, оптимизированный для кода, и переключиться на светлый фон, прежде чем вы полностью ослепнете, без обид, просто то, что говорит мне мой опыт. - person Mikhail V; 09.07.2016

Использование пробелов для отступов станет проблемой, если вы окажетесь глубже одного уровня.

person Community    schedule 20.10.2008
comment
Собственно, любая приличная IDE должна с этим справиться. - person Rik; 20.10.2008
comment
Это еще одна причина использовать вкладки для отступов (это причина, по которой Господь дал вкладки в первую очередь) - person James Curran; 20.10.2008
comment
+1 за вкладки (сейчас идут дебаты о местонахождении...) - person Bobby Jack; 20.10.2008

В основном для целей выравнивания (например, когда объявления параметров функции занимают несколько строк, и вы хотите выровнять их или выровнять комментарии и т. д.).

person Community    schedule 20.10.2008

Я думаю, как и в случае с символами табуляции, усложняющим фактором является то, что что-то имеет отступ для целей выравнивания, а у кого-то другие предпочтения. Вещи смещаются.

person Community    schedule 20.10.2008