11 лучших шрифтов для программирования

https://itnext.io/11-best-programming-fonts-724283a9ed57
  • Перевод
Много статей и сайтов сравнивают шрифты для программирования — всё это отличные ресурсы. Так зачем я опять поднимаю эту тему? Потому что сам всегда терялся в десятках шрифтов и не мог понять, какой лучше. Так что я опробовал много шрифтов и выбрал следующие для вас. Они довольно популярны и их легко получить. И самое главное, все эти шрифты бесплатны!

Я ранжировал шрифты по следующим показателям:

  • Насколько различимы схожие символы, такие как 0O, 1lI.
  • Легко ли читается шрифт (ширина строк, ширина/высота символов).
  • И мои личные предпочтения!

Все скриншоты сделаны в VSCode на одном фрагменте кода. Если не обозначено иное, то везде установлен размер "editor.fontSize": 14.

1. Hack


Hack — свободный шрифт, специально разработанный для исходного кода и основанный на проектах Bitstream Vera и DejaVu. 0O и 1lI чётко различимы, а шрифт в целом легко читается. Особенно мне понравился ноль с вертикальной прорезью.



2. DejaVu Sans Mono


Производный шрифт от Bitstream Vera. Это тоже хороший вариант со свободной лицензией. Sans Mono ясно различает 0O и 1lI. Точка внутри 0 не так заметна, как у Hack, но в целом шрифт удобен.



3. Monaco


Monaco использовался по умолчанию в OSX до выхода Snow Leopard. Символы хорошо различаются, поэтому трудно спутать 0O и 1lI. Этот шрифт мне нравится из-за его особого стиля, как будто снова возвращаешься в OSX (сейчас я в основном использую Ubuntu).



4. Source Code Pro


Source Code Pro разработан компанией Adobe. В целом текст выглядит чётче других шрифтов, не говоря уже о хорошей различимости символов.



5. Menlo


Menlo — новый шрифт по умолчанию в macOS для Xcode и Terminal. Это производная от DejaVu Sans Mono. Лично мне больше нравится Monaco, так как я давно использую OSX, но Menlo тоже хороший выбор для программирования.



Дополнение: Menlo больше не шрифт по умолчанию в macOS. В версии High Sierra шрифт по умолчанию изменили на San Francisco Mono, что тоже отличный выбор для программирования. Спасибо Ивану Кантарино и p13t3rm.

6. Consolas


Consolas — шрифт по умолчанию в Visual Studio. Он очень популярен, потому что поставляется с Windows. Лично мне не очень нравится символ l, потому что его легко спутать с 1.



7. Space Mono


Space Mono разработан Colophon Foundry и это отличный моноширинный шрифт. Отмечу два недостатка: 1) l можно спутать с 1; 2) , не отличается от . на размере шрифта в 14 пунктов.



8. FiraCode


FiraCode поддерживает лигатуры, то есть может объединить два или более символов в один символ, чтобы облегчить чтение кода. Обратите внимание на !=, <=, и == на скриншоте. Лично я привык к оригинальным символам, а лигатуры немного меня путают. Но кому-то такой шрифт может понравиться.



Примечание: для активации лигатур в VSCode нужно добавить следующую строку.

"editor.fontLigatures": true,

9. Anonymous Pro


Мне нравится Anonymous Pro, потому что он даёт ощущение пишущей машинки. Кроме того, здесь символ < более узкий, чем в Hack, так что он больше похож на знак.



10. IBM 3270


IBM 3270 основан на шрифте, который использовался в консоли IBM 3270, выпущенной IBM в 1971 году. Этот шрифт отлично подходит для программирования и выполнен в стиле ретро (хотя мне он не совсем привычен).



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

"editor.lineHeight": 20,
"editor.fontSize": 14,

11. Droid Sans Mono


Droid Sans создан для Android и очень красив. Но самая большая проблема в том, что у него нет нуля с прорезью, поэтому 0 и O не различимы.



Дополнение: Для Droid Sans Mono созданы варианты, где есть ноль с перечёркиванием и точкой. Спасибо hawtre smith.



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

ДОПОЛНЕНИЕ:

Я получил отклики о других шрифтах для программирования. Да, все они замечательные, полностью согласен! Основная цель этой статьи — обеспечить начальную базу для тех, у кого мало опыта с разнообразными шрифтами, поэтому постараюсь сохранить минимальный список и не перегружать людей. Но спасибо всем за отзывы. С удовольствием попробую в повседневной работе шрифт, которые вы упомянули.
Поделиться публикацией
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 115
  • +3
    Iosevka?
    • +5
      вот и наглядный пример когда шрифт важен. Вместо иосевки искал лосевку(
      • +1
        Пожалуй, этот комментарий гораздо полезнее самой статьи, в которой просто представлены скриншоты [практически идентичных шрифтов] без акцента на различиях.
        • 0

          если отключить Font Anti-Alias: off, то некоторые шрифты выглядят очень погано — некоторые палки жирные, некоторые тонкие, изображение рваное.
          По этому софт, который не использует Anti-Alias будет выглядеть ужасно с этими шрифтами.
          https://prnt.sc/jlv3jo
          интересно, какова стоимость технологии Anti-Alias в тиках процессора?

          • 0
            У меня anti-aliasing в системе выключен, так как меня он не устраивает до рези в глазах.
            У меня он настолько полностью выключен, что я и в браузере сделал автозамену всего на Verdana (и это одна из причин, почему я не могу пользоваться Google Chrome).
            Что любопытно, за мои сообщения о выключенном aa или подмене веб-шрифта здешние коллеги всегда насыпают мне минусов. Видать, страдает душа художника, который страстно наваливает гарнитуры в своё поделие.
            Поэтому лично я выбираю pixel perfect экранные шрифты, а на принтере разницы между качеством Verdana и векторным Arial я не обнаруживаю.

            В частности, на предложенном вами скриншоте именно видно, что пиксельные шрифты, вроде Lucida Console, Andale Mono или Dina выглядят терпимо, по сравнению с…
            • 0

              Да, у меня схожая проблема с глазами, почему то от АА начинается резь в глазах и быстро устают.
              по этому шрифты, которые нуждаются в АА для нормальной отрисовки я не использую. Обычно в IDE у меня Courier.
              https://prnt.sc/jlvtn3
              https://prnt.sc/jlvvbx — скрин поясняет, почему важна кириллица.

        • +9

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


          Сам же почти полностью перешел на Roboto Mono от Google.




          Код из примера в статье
              uppercase_sample = 'ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
              lowercase_sample = 'abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя'
              digit_sample = '0123456789'
              if keras.backend.image_dim_ordering != 'tf' and count <= 100:
                  keras.backend.set_image_dim_ordering('tf')
                  print("INFO: '~/.keras/keras.json' sets 'image_dim_ordering' to "
                      "'th', temporarily settings to 'tf'")
          
              # Create TF session and set as KERAS backend session
              sess = tf.Session()
              keras.backend.set_session(sess)
          
              # Get MNIST test data
              X_train, Y_train, X_test, Y_test = data_mnist(train_start=train_start,
                                                            train_end=train_end,
                                                            train_start=train_start,
                                                            train_end=train_end)
          
              assert Y_train.shape[1] == 10
          • –36
            Локализация в коде? Треш же, локализованные вещи всегда должны быть вынесены во внешние ресурсы, а комментарии написаны на английском.
            • +2
              Зачем локализация? Существует и код на кириллице.
              • –5
                Сомневаюсь, что пользователи 1С ставят какие-то кастомные шрифты.
                • 0
                  1C не единственный код на кириллице.
              • +31
                Если комментарий про русские буквы на скриншотах, то это исключительно для примера отображения кириллицы сделано.

                Если комментарий про русские буквы (и другие языки, отличные от английского) в коде вообще, то это странный довод.
                1. В ИДЕАЛЕ нужно локализованные вещи выносить во внешние ресурсы. Ситуаций, когда этот идеал недостижим или просто не используется, масса. А потом слушать вещи: «У вас в коде используется русские буквы, а это нехорошо, поэтому у вас крякозябры отображаются или отображаются другим шрифтом» — это бред. Например, по этой причине ушел с Evernote.
                2. Существует масса ситуаций, когда комментарии ДОЛЖНЫ быть на русском языке (например, в учебных примерах).
                3. Вынесли, как нужно, локализацию во внешние ресурсы. А эти внешние ресурсы просматривать теперь другим редактором?
                4. А, как просматривать, например, локализованную документацию в формате Markdown?
                5. И, например, в том же Visual Studio Code люди работают только с исходными кодами? Другие текстовые файлы нужно в других программах читать и редактировать?
                • –33
                  1. Не в идеале, а всегда. Попробуйте поработать в международной команде.
                  2. В случае обучающих материалов какая вообще речь про кастомные шрифты? Ну и учить такому не нужно изначально.
                  3. Разумеется, в редакторах с поддержкой либо всех возможных локализаций (что маловероятно), либо в редакторах, заточенных под конкретную локаль. Как пример, могу посоветовать поработать с RTL языками и посмешивать их в одной строке с LTR, чтобы почувствовать ад.
                  4. Документация — это код? Разговор был именно про код, маркдаун обычно используется для разметки текста и последующего «рендера» во что-то более удобное типа html.
                  5. Опять же, это выбор людей — использовать микроскоп для любой задачи. Я же говорю исключительно про исходный код, который должен оставаться транспортабельным между терминальной консолью / блокнотом / навроченной IDE. Именно по этой причине я использую FiraCode — для людей, видящих мой экран, это может выглядеть ужасно, но я знаю, что внутри оно остается нормальным plain текстом, который будет работать везде одинаково независимо от настроек OS / IDE.
                  • +14
                    1. А если работаешь не в международной команде? Идеальный код, написанный по всем code style с правильной документацией и так далее — это редкое явление. Вот, например, статья про проблемы в Яндексе https://habr.com/company/yandex/blog/341192/
                    2. А почему обучающие материалы должны быть оделены кастомными шрифтами? О_о Например, кастомные шрифты на сайтах с примерами кода.
                    «Ну и учить такому не нужно изначально» — я вот, например, работаю дополнительно со школьниками. Посмотрю на вас, как вы будете им давать код только на английском.
                    3. «Разумеется, в редакторах с поддержкой либо всех возможных локализаций (что маловероятно), либо в редакторах, заточенных под конкретную локаль.» Зачем использовать несколько программ, если можно использовать одну с нормальным шрифтом?
                    «могу посоветовать поработать с RTL языками и посмешивать их в одной строке с LTR» — это уже отдельная специфика.
                    4. Разговор в статье шел не про код, а про «шрифты для программирования». И программист в процессе работы использует не только файлы кодов в своей работе. А если следовать вашей логике, где говорите только про код, то программисту для разных задач нужно использовать разные программы.
                    • –16
                      1. «Плох тот солдат, который не мечтает стать генералом» (с), всегда нужно смотреть вперед и думать о будущем. Ну а если серьезно, то нужно следовать codestyle-правилам команды: если в нем указано «используем русские комментарии везде» — используем только русские буковки, если нет — нет.
                      2. Зависит от языка, но если вы не преподаете 1С, то все популярные языки — на латинице (это про «давать код только на английском»). Про комментарии нужно объяснять, что код пишут не один раз и его кто-то будет поддерживать в будущем, поэтому он либо не должен требовать комментариев вообще, либо комментарии должны быть написаны четко, кратко и понятно для всех потенциальных пользователей. Это не значит, что нужно от них требовать запрета кириллицы, но об это следует обязательно рассказать как преподавателю.
                      3. Случаи бывают разные и «это уже отдельная специфика.» — это не специфика, а конкретный пример, когда приложение было вроде бы как на Европу рассчитано, а потом внезапно пошло в Саудовскую Аравию и Сирию.
                      4. Если уж на то пошло — программисту не следует править ничего, кроме кода. Да, он может накидать образец локализованных данных на английском, который потом будет подправляться носителем языка + будет использоваться для локализации на другие языки. Это не его задача, для этого есть менее «дешевые» сотрудники, которые потратят меньше денег работодателя за тот же час работы — так работает бизнес, тут уж ничего не поделаешь.
                      • +9
                        «Плох тот солдат, который не мечтает стать генералом» (с), всегда нужно смотреть вперед и думать о будущем

                        Программист — не солдат, и он должен руководствоваться здравым смыслом, а не железобетонным шаблоном поведения. Выносить текстовки в ресурсы — это всегда дополнительная работа и дополнительное время. И для приложений, которым никогда (или хотя бы в сколь-нибудь обозримом будущем) не потребуется локализация на другие языки, тратить время на фен-шуйное хранение текстовок — просто работа ради работы, бесполезная растрата вашего времени. Раньше выпустить продукт заказчику без правильной локализации, в данном случае правильно и разумно.
                        • +3
                          1. Не всегда нужно думать об отдаленном будущем. Например, есть ТЗ, есть бюджет, есть сроки — и если написание идеального кода не укладывается в указанные условия, то идеальный код не пишем. И это правильно. Но вы хотя бы признали, что есть случаи, когда русские буквы могут использоваться в коде.
                          2. «но об это следует обязательно рассказать как преподавателю.» А вы думаете, что об этом не рассказываю? Конечно, рассказываю. Но если, например, я дам школьникам учебный пример с поясняющими комментариями на английском, то поясняющие комментарии свою роль потеряют.
                          3. Это специфическая задача, которая требует специальных средств. И тот факт, что вы для своей задачи не смогли найти много подходящих инструментов, это и подтверждает. Разработчики программ не тратят время на проработку этой проблемы, так как проблема не распространенная и специфическая. Тогда как частое наличие в программистских шрифтах букв других языков свидетельствует о том, что вот этот момент востребован программистами.
                          4. Теперь вы еще и программиста ограничиваете в своей работе. И сколько вы знаете программистов, которые занимаются только кодом и никогда другие текстовые файлы не правят? Например, я таких не знаю.
                          • 0

                            Что-то я не пойму, у вас что ли сначала программист переводит свои мысли на неродной английский, а потом приходит переводчик и переводит их обратно на русский?


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

                        • +5

                          а как же регулярки? или мне отказаться от работ с кириллицей?

                          • –4
                            А тут уже начинается специфика языка и проекта — не все регулярки поддерживают юникод во всех языках. Если локализация жестко прибита гвоздями только к русскому, либо технически невозможно выности содержимое регулярки во внешний ресурс и собирать ее на лету на старте — тогда да, придется использовать как есть + писать об этом комментарий почему так.
                            • +3

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

                              • +2

                                А почему вы всё время говорите о локализации? Те же самые регулярки с кириллицей, я думаю, редко касаются локализации. Последний раз у меня это была обработка документов. И регулярок с кириллицей там было много. Никакого отношения к локализации они, конечно же, не имели. Это была именно часть бизнес-логики. Я уверен, достаточно много существует проектов, жёстко завязанных на конкретную группу языков.

                                • –5
                                  Локализация — это не обязательный мультиязык, а использование локали для обработки / отображения данных. Если только один язык и не хочется думать о расширении — можно и захардкодить.
                                  • +4

                                    Я бы не стал относить обработку документов к локализации. Скажем у меня это была обработка текстов законодательных актов. Ни о каком расширении речи не идёт, они имеют заданные языки. И разные блоки их обработки, в зависимости от языка, на котором они написаны, ввиду разных грамматик, алфавитов, лексики и прочих тонкостей. Не уверен, что тут уместно слово захардкодить. Это могут быть разные классы/сущности, наследуемые от одного родителя. И это будет кириллица, арабица, что-угодно в код файлов.

                                  • +6
                                    А почему вы всё время говорите о локализации? Те же самые регулярки с кириллицей, я думаю, редко касаются локализации.

                                    Более того, моноширинные шрифты — это не всегда код. Это может быть и терминал, где программа что-то выдаёт кириллицей.

                              • +2
                                Документация — это код? Разговор был именно про код, маркдаун обычно используется для разметки текста и последующего «рендера» во что-то более удобное типа html.
                                Вы будете смеяться, но бывает: Курс «Техническая документация в IT-проектах», лекция 8 («Лекция 8, о методологии docs as code.»)
                              • 0
                                Например, по этой причине ушел с Evernote.

                                сори за оффтоп, а куда ушли, если не секрет
                                • 0
                                  Пока на Onenote. Но думаю, что не долго на нем продержусь. Boostnote также приглянулся, но чувствую, что придется пилить свой велосипед под свои хотелки.
                                  • 0
                                    Посмотрите на Notion, он выглядит довольно гибким.
                              • +9

                                Внешние ресурсы (тот же xml, json, yaml итд) обычно в том же редакторе или IDE, что и код редактируются. Как вы представляете локализацию в этом случае?

                                • –13
                                  Локализация — всегда боль, особенно для разных направлений написания. На данный момент не существует редактора, работающего без ошибок при одновременном использовании написания слева-направо и справа-налево, особенно в одном документе. Мы использовали для этого google docs sheets, но приходилось руками форсированно выставлять направление + без остановки отдавать приложение (были проблемы и с рендером в самом приложении) на вычитку носителям языков.
                                  • +6
                                    Удивительно, вам задали один вопрос, а вы ответили на какой-то свой вопрос в своей голове. Как уж на сковородке вертитесь… Вы, видимо, теоретик, оторванный от практики и не писали ничего в сжатые сроки со сжатым бюджетом, про поддержку легаси я уж не говорю.
                                • +1

                                  Показывать содержимое XML & JSON одним шрифтом, а код другим? Смотреть сторонний код, где может быть кириллица в коде — в другом редакторе? А ещё кириллица может быть в коде (да и не только она) вне комментариев. К примеру какие-нибудь языковые костыли, регулярные выражения и пр… Или регулярные выражения тоже будем выносить в отдельные файлы? Полагаю, что я ещё что-нибудь не учёл.

                                  • +1
                                    Или регулярные выражения тоже будем выносить в отдельные файлы?

                                    Если их много и они специфичны, то не помешало бы. Мне пока ни разу не приходилось выносить строки в файлы локализации, а вот регулярки в нескольких проектах применять приходилось. Каждый раз начинал с того, что хардкодил их, и каждый раз вскоре получалось, что список регулярок растёт, для них требуется кастомная работа, отдельные классы, и в итоге всегда оказывалось проще вынести регексы в отдельные файлы.
                                  • +20
                                    Да идите вы в пионерлагерь, со своими идеями про обязательный английский в комментариях.

                                    Я делаю продукт ориентированный на 10-20 программистов работающих в РФ и не планирую даже локализацию подключать, ибо никому за пределами стен институтов не нужен данный ресурс — мне удобней писать развернутый комментарий и документацию на русском языке. Тем кто делает модули — удобней читать и дополнять ее на русском. Мне не надо думать над фразами, мне не надо думать что один на английском говорит и думает, я знаю на уровне понимать/писать, а студент который работает над проектом вообще в английском через гугл-транслейт сидит.

                                    Просто примите как реальность: комментарии на родном для автора языке — это норма для небольших проектов, коих большинство.
                                    • +1

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

                                      • +1
                                        Во-во. Мы субподрядчик РЖД, если и есть нормативный документ с переводом терминологии на другие языки, я его не видел.
                                        Уж лучше писать по-русски, чем когда в каждой команде возникнет свой вариант перевода, да еще транслит частенько проскакивает, если не осилили.
                                        Плюс смена языка является неплохим маркером, где у нас бизнес-логика, а где код ядра, либ и тому подобного, что тоже бывает полезно.
                                    • +2
                                      Ад, а ещё все профессиональные программисты разговаривают только на английском языке.
                                      • +5
                                        Насчет «разговаривают» вы преувеличиваете, но слово «читают» близко к реальности. Если, конечно, они действительно заинтересованы в том, чтобы быть профессиональными программистами. Достаточно посмотреть и сравнить количество профессиональной литературы и статей (с поправкой на задержки издания и ошибки в переводе даже для того что переводится), документации, описаний проектов на гитхабе, логов и сообщений всевозможного софта и инструментов, аудитории и активности интернет-сообществ (SO, и другие) для английского и других (в т.ч. русского) языков, и вывод напрашивается вполне очевидный.
                                        • 0
                                          Ну читаю я по английски тех литературу, но комментарии по бизнес логике сецифичны для области бизнеса. И если он в России, то 95%, что я не знаю как тот термин из описания задачи (который я по русски то узнал на прошлой неделе) пишется на английском языке. И тот, кто поддерживать код будет — тоже не знает. А комменты должны быть во многом про бизнес, а не про код. Код сам себя комментирует.
                                      • +1
                                        Комментарии тоже для слабаков, да.
                                        • 0
                                          Почему комментарии на английском? Я без стёба, серьёзно спрашиваю.
                                          • 0
                                            Внешние ресурсы тоже надо в редакторе открывать.
                                            • +1

                                              Русский человек прежде всего должен заботиться о соотечественниках, а уже потом об иностранцах.
                                              Если им надо, то помочь с локализацией — не проблема. Поможем.
                                              Но соотечественники — прежде всего.

                                          • 0
                                            San Francisco Mono (SF Mono)
                                            • +1
                                              PragmataPro (я его, правда, ещё в 2011 покупал по скидке).
                                              • +1

                                                Мне он тоже нравился за его "узкость" тем самым он экономит место по ширине. Но у бесплатного варианта была ограниченная поддержка символов, думал купить, но цена в тот момент меня шокировала. Потом "нашёл" похожий бесплатный шрифт Iosevka — и он меня полностью устроил, я его даже в терминале ставлю (Iosevka Term).

                                                • +1
                                                  Тоже пользуюсь, пожалуй самая неоднозначная покупка в моей жизни. Но сам шрифт хорош именно тем, что позволяет вместить больше по горизонтали. У меня зрение не ахти, стандартно ставлю везде 20-24 размер шрифта и с другими шрифтами вмещается ощутимо меньше символов.
                                                  • 0
                                                    +1 Pragmata Pro очень хорош, пользуюсь уже несколько лет
                                                  • +1
                                                    Различимость символов это, конечно, важно. Но, зачем тогда скриншоты из «продвинутого» текстового редактора, который реализует цветовую дифференциацию символов и слов?
                                                    • +2
                                                      Например, строки «INFO» и «INF0» будут показаны одним цветом.
                                                      Так что цветовая дифференциация штанов элементов не отменяет необходимости в различимых символах.
                                                    • +3

                                                      Нужно ещё брать во внимание операционную систему, так как в каждой используется свой метод сглаживания шрифтов (судя по радужным буковкам, у автора скриншотов Windows), и разрешение экрана, так как тонкие засечки, например, выглядят размазнёй при низком разрешении.

                                                      • 0
                                                        А вообще без сглаживания достойно выглядят только штуки три, все остальные напрочь забили на хинтинг.
                                                      • +2
                                                        Небольшое замечание: «легко ли читается шрифт» еще зависит от физического разрешения экрана. Когда я перешел на mac retina для меня многие привычные шрифты стали выглядеть сильно по-другому.
                                                        • +1
                                                          IBM Plex Mono
                                                          • 0
                                                            Оффтоп: А есть какой-то аналог виндового ClearType в убунте? А то здесь от любого шрифта начинают болеть глаза.
                                                            • 0

                                                              Субпиксельное сглаживание есть, но сильно зависит от дистрибутива и его версии. Например, у меня в Xubuntu 16.04 всё шикарно, а вот 18.04 даёт жуткое мыло как при апгрейде, так и при чистой установке.

                                                              • 0

                                                                В винде просто включается сглаживается, в убунту нужно настраивать три отдельных параметра: "Hinting", "Antialiasing", "RGBA order". Нужно подбирать эмпирически, так как зависит от монитора и от предпочтений. Например я использую Linux Mint (основан на убунту) и поставил так:
                                                                Hinting — "Slight", Antialiasing — "Rgba", RGBA Order — "RGBA". Посмотреть скриншот

                                                                • 0
                                                                  В винде тоже настраивается. Называется «Средство настройки текста ClearType», в последних осях уже встроен и ищется поиском по «cleartype» в главном меню или запуском cttune.exe.
                                                                  В стародавние времена была даже утилита ClearType PowerToy для WinXP.
                                                                  См. www.howtogeek.com/howto/windows-vista/tune-your-cleartype-font-settings-in-windows-vista
                                                              • –6
                                                                Все скриншоты сделаны в VSCode на одном фрагменте кода

                                                                Перевод такой перевод. Разговор идет о том, что человек взял одну версию VSC, и в ней, тем же кодом рендеринга и в том же ОС, вывел все эти гарнитуры?

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

                                                                P.S. Почему было не написать подобную статью, но самому, взяв все те же (или еще и другие) шрифты и попробовав вывести не только латинские, но и, в т.ч., русский символы? Сайт, как бы сказать, русскоязычный, аудитория была бы не в претензии. А то перевод «неизвестного автора» (автор, конечно, у оригинала есть, но кто он, и почему верить его «я опробовал много шрифтов и выбрал следующие для вас» выводам — непонятно), да еще не очень вдумчивый, а тема-то довольно благодатна: делай скриншоты да пости.
                                                                • +5
                                                                  Странно, что никто не упомянул Inconsolata
                                                                  image
                                                                  • –6
                                                                    Моноширинные шрифты не используются мной.
                                                                    Периодически меняю шрифты и стили в редакторе, чтобы глаза не замыливались.
                                                                    • +1

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

                                                                      • 0
                                                                        Вот раньше, например, везде ставил только Courier New, потому что все остальные шрифты казались толстыми. Тоненькие чуть вряскоряку линии Courier New завораживали и манили, тащили в бездонную пропасть редакторов кода.
                                                                        Потом присмотрелся на DejaVu Sans Mono. Он вдруг показался не таким жиртресом, а всего лишь милым пухлячком. Поставил его везде, даже в чатах. С Courier New наши отношения были порваны.
                                                                        Через несколько лет вдруг наткнулся на Palatino Linotype. Дико красивый, будто написанный рукою итальянских мастеров эпохи возрождения. Я влюбился с первого взгляда. Palatino Linotype теперь стоял везде, даже в чатах.
                                                                        Как‐то в интернете натолкнулся на статью, посвящённую ненависти к Comic Sans. В тот день этот шрифт заиграл новыми красками. Он уже бы таким уродливым, а кое‐где даже забавным. Его пляшущие наклонные литеры в сочетании с розовым фоном добавляли ноты безумия, хотя редакторы кода смотрели на меня как бы недовольно, свирепо, но в то же время грустно и с недоумением.
                                                                        Потом пришла идея использовать буквы в шрифтах не менее четырёх миллиметров. Я подумал, что работать со шрифтом из 12 пикселей подходит только для разрешений максимум 640 на 480. Прощайте, маленькие размеры, ваше место теперь только в банковских договорах под сносками.
                                                                        Экран живёт сам по себе в идеальном мире Пространства и Хаоса, а в материальном мире физически воплощается в виде монитора. И на него действует освещение в комнате. Поэтому теперь в редакторе днём стоит светлая тема, а ночью тёмная, а шрифт в данном случае Magnum Gothic Semilight.
                                                                        • 0

                                                                          Всё бы ничего, но для каждого типа шрифтов есть своё место. Я не совсем понимаю, зачем было ставить моноширинные "даже в чаты". Скорее всего заменили их поэтому же. Причём стало сложно пользоваться в чатах — а заменили везде.
                                                                          А comic на розовом фоне — это круто, конечно, надо будет попробовать :)


                                                                          Magnum Gothic Semilight

                                                                          Я смотрю, Вам просто нравится экспериментировать.


                                                                          Тем не менее, использовались и моноширинные скрипты.

                                                                    • +4
                                                                      На постоянной основе пользуюсь FiraCode в Vs2017 около двух лет.
                                                                      Спасибо человеку, который подсказал в своё время.
                                                                      Лигатуры — вещь. Сильно облегчают «видение» операторов.
                                                                      • 0
                                                                        Согласен, от лигатур отказаться уже не смогу.
                                                                        Использую DejaVu Sans Code, т.к. изначально привык к DejaVu Sans Mono.
                                                                        • 0

                                                                          Единственный минус в лигатурах — они оставляют место отведённое под изначальное кол-во символов (например тройное тире будет либо длиной в === либо с пробелами =). От этого внедрить лигатуры (мне) довольно сложно.

                                                                          • 0
                                                                            Я считаю это плюсом — моноширность шрифта должна сохраняться, по очевидным причинам.
                                                                      • +4
                                                                        Terminus

                                                                        image
                                                                        • 0
                                                                          На белом фоне как-то хуже читается. Обычно использую темный фон. Привык к этому шрифту и уже ни на что перейти не могу, хотя пару раз пытался. Считаю его оптимальным по пропорциям символов и расстоянию между строками. Код в нем выглядит как код. Самый тру шрифт, имхо.
                                                                        • 0

                                                                          Советую также посмотреть на Monoid

                                                                          • 0
                                                                            Hack, DejaVu Sans Mono, Menlo, Droid Sans Mono и Bitstream Vera Sans Mono являются в приципе одним и тем же, с некоторыми вариациями.
                                                                            • +2
                                                                              В этом году пересел на Input (до этого были Meslo LG\Hack\DejaVu)
                                                                              input.fontbureau.com

                                                                              Правда для Visual Studio (не Code) надо получить «спец» версию
                                                                              input.fontbureau.com/workarounds

                                                                            • +4

                                                                              Продолжаю пользоваться consolas. Для меня очень важно, чтобы у шрифта была харизма и индивидуальность. Это есть например у consolas и monaco.

                                                                              • 0
                                                                                Шикарный шрифт. Жалко, что распространяется не по свободной лицензии(
                                                                                • 0

                                                                                  Да, много перепробовал, но кругленькие буквы Consolas сложно на что-нибудь променять.

                                                                                • +5
                                                                                  Коллеги, сможете подсказать шрифт, в котором латинские и русские одинаковые символы отличаются (например, С и C)?
                                                                                  • 0
                                                                                    Я использую последнюю версию Hack перед «исправлением» этого отличия. Подробности здесь.
                                                                                    • 0

                                                                                      Вау, спасибо! Попробую.

                                                                                  • 0
                                                                                    Для меня одна из главных проблем шрифтов в VS Code — это то что почти все шрифты на тёмном фоне выглядят полужирными. И чем выше контраст у текста с фоном тем жирнее вглядит шрифт. Но эта проблема глубже, в хроме все так же.
                                                                                    • 0
                                                                                      А какая у вас система? На маке можно через css сглаживание поправить (на винде не очень работает).
                                                                                      • 0
                                                                                        Windows 10. Но на маке с ретиной такой эффект будет не сильно заметен. Так как этот эффект уменьшается с увеличением размера шрифта (в пикселях).
                                                                                    • 0
                                                                                      Много лет использую Cousine. Среди достоинств — он не слишком широкий и работает одинаково нормально на всех используемых мной ОС.
                                                                                      image
                                                                                      • 0
                                                                                        Плюсую. Использовал раньше consolas, потом подсел на шрифт Cousine. Есть поддержка кириллицы. Как преимущество, так же хорошо читабелен как consolas на экранах с низким PPI. Нуль с с точкой.
                                                                                      • +2

                                                                                        Какой смысл показывать шрифты с таким ужасным сглаживанием?

                                                                                        • +1
                                                                                          Вот тот же вопрос. Причем человек пишет что работает на маке — уж мог мы с нормального экрана сделать скрины, а то на ретине на это смотреть — слезы наворачиваются.
                                                                                          • 0
                                                                                            Ради прикола сделал скрин. У меня шрифт по умолчанию в VS Code (по-видимому это Menlo)
                                                                                            В нормальном сглаживании он выглядит лучше чем любой шрифт из статьи (попробуйте зазумить скриншот и сравнить) — таким образом становится понятно что статья мощно теряет актуальность из-за корявого подхода автора к presentation'y
                                                                                            Заголовок спойлера
                                                                                            image
                                                                                            • +1

                                                                                              YemSalat, на разных мониторах с разным DPI шрифты выглядят по-разному. Вплоть до того, что люди покупают себе мониторы с заданным комфортным DPI для однопиксельных шрифтов. У меня 3 монитора, у всех свой DPI. Проводя окно между ними я вижу надписи по-разному. Это я к чему? К тому что нет никакого смысла обсуждать сглаживание шрифтов по скриншотам. Надо быть физически рядом, чтобы сказать своё фи. А не то получается, как в анекдоте про Шаляпина и телефон.

                                                                                              • 0
                                                                                                Я с вами в целом согласен (у самого несколько мониторов с разным разрешением), но все-таки, согласитесь, есть какой-то «предел» после которого мы оба согласимся что картинка выглядит «мыльно» и т.п. На мой взгляд в скриншотах к статье этот предел был достигнут.
                                                                                        • 0
                                                                                          Liberation mono
                                                                                          • +3

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

                                                                                            • –1

                                                                                              Iosevka и FiraCode. Остальное всё так себе.

                                                                                              • +1
                                                                                                в Monaco ужасны некоторые символы — например m.
                                                                                                очень хорошо что поменяли
                                                                                                • 0

                                                                                                  А я вот пользуюсь шрифтом Ayuthaya, он почти такой же как и Monaco, но как мне кажется, немного приятнее. А может быть я ошибаюсь и он точно такой же как Monaco...


                                                                                                  Заголовок спойлера

                                                                                                  • 0
                                                                                                    У Source Code Pro ещё есть форк Hasklig с поддержкой лигатур
                                                                                                    • 0

                                                                                                      Пару лет назад нашел для себя Fantasque sans mono, и с тех пор не меняю шрифтimage

                                                                                                      • 0
                                                                                                        Без лигатур есть Fira Mono
                                                                                                        • 0
                                                                                                          А как же Input? Настроить можно как угодно. Внешний вид l и 1, o и 0 в том числе.

                                                                                                          input.fontbureau.com
                                                                                                          • +1
                                                                                                            Использую Hack, но, к сожалению, не последние версии, т.к. авторы убили самое привлекательное в нём для меня (читай IMHO, чтоб не было в ответах нечистот «ненужно») — различные начертания кириллической «с» (эс) и латинской «c» (си). Когда моноширинный шрифт используется не только при написании кода, визуальное отличие этих символов очень важно. Да и в уже упомянутых регулярках оно может всплывать и во вполне реальном коде. Комментарии авторов на мои замечания были из разряда «это же уродство» и «ненужно». Вот так вот лучший (опять же IMHO) «технический» шрифт был изменён в угоду «дизигна».
                                                                                                            • –1
                                                                                                              Когда моноширинный шрифт используется не только при написании кода, визуальное отличие этих символов очень важно.

                                                                                                              Просто ради любопытства, сколько раз у вас в жизни случалось, что вы сомневались, какая там буква «с», из кириллицы или латиницы? Просто например у меня за два десятка лет работы программистом такие сомнения были раза два, ну максимум три. Я бы (моё ИМХО) в таком случае тоже предпочел бы дизигн вместо юзабилити.
                                                                                                              • +2
                                                                                                                Несколько раз доходил до hex-редактора в поисках истины, так что мои предпочтения просто сформировались на основании полученного опыта. Не оспариваю, что опыт и тяга к прекрасному у всех разная.
                                                                                                              • 0

                                                                                                                А почему именно про разницу c/с речь? А o/о или p/р и другие одинаковые по начертанию буквы?


                                                                                                                Вообще, радикальным решением было бы настройка разных шрифтов для разных диапазонов символов. Например, по дефолту Iosevka, а для кириллицы — IBM 3270.

                                                                                                                • 0
                                                                                                                  С и C находятся на одной клавише.
                                                                                                                  • 0
                                                                                                                    Опередили. Конечно же дело в коварном расположении на клавиатуре.
                                                                                                                    • 0
                                                                                                                      На самом деле таких засад куда больше, лично я часто сталкиваюсь с тем, что в таблицах с размерами макетов, менеджеры часто ширину и высоту пишут то через русскую Х, то через латинскую X. А я названия макетов собираю полуавтоматически и потом Фотошоп ругается при экспорте, что в названии файла недопустимые символы.

                                                                                                                      И это меньшая из проблем, потому что иногда менеджеры путают ширину с высотой…
                                                                                                                      • 0

                                                                                                                        Иногда в работе мозги так закипают, что можно, например, если хотел напечатать «p», то по ошибке вместо кнопки с p/з нажать h/р; или, что хуже, начинаешь делать ошибки в духе «пишы» или «ачевидно», хотя всю жизнь грамотно писал.


                                                                                                                        И менеджеров можно понять.

                                                                                                                    • 0

                                                                                                                      Ну… Не так всё однозначно. Обычно при кодинге раскладка на англ. включена, с чего бы русской букве оказаться? Ну и вероятность того, что человек переключился на русский → забыл об этом → решил написать одну букву c/с → отвлёкся → забыл, в каком алфавите её набрал, практически нулевая. Скорее чаще случается, когда пишешь несколько букв разом, видишь, что не в той раскладке, сразу удаляешь.


                                                                                                                      По-моему, проблема гораздо менее актуальна, чем кажется.

                                                                                                                      • 0
                                                                                                                        При написании кода может и не очень актуально, но если приходится часто переключаться на русский и обратно — то проблема возникает чаще, чем хочется. А когда закипают мозги, можно еще и не такое напутать…
                                                                                                                        • 0
                                                                                                                          У меня все случаи перепутанных c/с были связаны не с кодом, набитым мною, а с пришедшими из вне данными: входные текстовые данные для обработки (привет выгрузки всяких там *АИС) и имена папок/файлов, которые «всё правильно же написано, но не видит».
                                                                                                                  • 0
                                                                                                                    Перепробовал большую часть из упомянутых, но остался на Courier New, 10.
                                                                                                                    • 0
                                                                                                                      Не мелко? У меня 14 стоит.
                                                                                                                      • 0
                                                                                                                        Это, конечно, от расстояния до экрана зависит, его размера, ppi и зрения (острота, поля зрения). Для меня это минимальный размер шрифта, при котором ещё нет проблем с чтением. При большем размере шрифта слишком мало информации в поле зрения помещается

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

                                                                                                                    Самое читаемое