Comments 117
если отключить Font Anti-Alias: off, то некоторые шрифты выглядят очень погано — некоторые палки жирные, некоторые тонкие, изображение рваное.
По этому софт, который не использует Anti-Alias будет выглядеть ужасно с этими шрифтами.
https://prnt.sc/jlv3jo
интересно, какова стоимость технологии Anti-Alias в тиках процессора?
У меня он настолько полностью выключен, что я и в браузере сделал автозамену всего на Verdana (и это одна из причин, почему я не могу пользоваться Google Chrome).
Что любопытно, за мои сообщения о выключенном aa или подмене веб-шрифта здешние коллеги всегда насыпают мне минусов. Видать, страдает душа художника, который страстно наваливает гарнитуры в своё поделие.
Поэтому лично я выбираю pixel perfect экранные шрифты, а на принтере разницы между качеством Verdana и векторным Arial я не обнаруживаю.
В частности, на предложенном вами скриншоте именно видно, что пиксельные шрифты, вроде Lucida Console, Andale Mono или Dina выглядят терпимо, по сравнению с…
Да, у меня схожая проблема с глазами, почему то от АА начинается резь в глазах и быстро устают.
по этому шрифты, которые нуждаются в АА для нормальной отрисовки я не использую. Обычно в IDE у меня Courier.
https://prnt.sc/jlvtn3
https://prnt.sc/jlvvbx — скрин поясняет, почему важна кириллица.
Понимаю, что это переводной пост, но можно было бы добавить для каждого шрифта упоминание поддержки кириллицы.
Сам же почти полностью перешел на 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
Если комментарий про русские буквы (и другие языки, отличные от английского) в коде вообще, то это странный довод.
1. В ИДЕАЛЕ нужно локализованные вещи выносить во внешние ресурсы. Ситуаций, когда этот идеал недостижим или просто не используется, масса. А потом слушать вещи: «У вас в коде используется русские буквы, а это нехорошо, поэтому у вас крякозябры отображаются или отображаются другим шрифтом» — это бред. Например, по этой причине ушел с Evernote.
2. Существует масса ситуаций, когда комментарии ДОЛЖНЫ быть на русском языке (например, в учебных примерах).
3. Вынесли, как нужно, локализацию во внешние ресурсы. А эти внешние ресурсы просматривать теперь другим редактором?
4. А, как просматривать, например, локализованную документацию в формате Markdown?
5. И, например, в том же Visual Studio Code люди работают только с исходными кодами? Другие текстовые файлы нужно в других программах читать и редактировать?
2. В случае обучающих материалов какая вообще речь про кастомные шрифты? Ну и учить такому не нужно изначально.
3. Разумеется, в редакторах с поддержкой либо всех возможных локализаций (что маловероятно), либо в редакторах, заточенных под конкретную локаль. Как пример, могу посоветовать поработать с RTL языками и посмешивать их в одной строке с LTR, чтобы почувствовать ад.
4. Документация — это код? Разговор был именно про код, маркдаун обычно используется для разметки текста и последующего «рендера» во что-то более удобное типа html.
5. Опять же, это выбор людей — использовать микроскоп для любой задачи. Я же говорю исключительно про исходный код, который должен оставаться транспортабельным между терминальной консолью / блокнотом / навроченной IDE. Именно по этой причине я использую FiraCode — для людей, видящих мой экран, это может выглядеть ужасно, но я знаю, что внутри оно остается нормальным plain текстом, который будет работать везде одинаково независимо от настроек OS / IDE.
2. А почему обучающие материалы должны быть оделены кастомными шрифтами? О_о Например, кастомные шрифты на сайтах с примерами кода.
«Ну и учить такому не нужно изначально» — я вот, например, работаю дополнительно со школьниками. Посмотрю на вас, как вы будете им давать код только на английском.
3. «Разумеется, в редакторах с поддержкой либо всех возможных локализаций (что маловероятно), либо в редакторах, заточенных под конкретную локаль.» Зачем использовать несколько программ, если можно использовать одну с нормальным шрифтом?
«могу посоветовать поработать с RTL языками и посмешивать их в одной строке с LTR» — это уже отдельная специфика.
4. Разговор в статье шел не про код, а про «шрифты для программирования». И программист в процессе работы использует не только файлы кодов в своей работе. А если следовать вашей логике, где говорите только про код, то программисту для разных задач нужно использовать разные программы.
2. Зависит от языка, но если вы не преподаете 1С, то все популярные языки — на латинице (это про «давать код только на английском»). Про комментарии нужно объяснять, что код пишут не один раз и его кто-то будет поддерживать в будущем, поэтому он либо не должен требовать комментариев вообще, либо комментарии должны быть написаны четко, кратко и понятно для всех потенциальных пользователей. Это не значит, что нужно от них требовать запрета кириллицы, но об это следует обязательно рассказать как преподавателю.
3. Случаи бывают разные и «это уже отдельная специфика.» — это не специфика, а конкретный пример, когда приложение было вроде бы как на Европу рассчитано, а потом внезапно пошло в Саудовскую Аравию и Сирию.
4. Если уж на то пошло — программисту не следует править ничего, кроме кода. Да, он может накидать образец локализованных данных на английском, который потом будет подправляться носителем языка + будет использоваться для локализации на другие языки. Это не его задача, для этого есть менее «дешевые» сотрудники, которые потратят меньше денег работодателя за тот же час работы — так работает бизнес, тут уж ничего не поделаешь.
«Плох тот солдат, который не мечтает стать генералом» (с), всегда нужно смотреть вперед и думать о будущем
Программист — не солдат, и он должен руководствоваться здравым смыслом, а не железобетонным шаблоном поведения. Выносить текстовки в ресурсы — это всегда дополнительная работа и дополнительное время. И для приложений, которым никогда (или хотя бы в сколь-нибудь обозримом будущем) не потребуется локализация на другие языки, тратить время на фен-шуйное хранение текстовок — просто работа ради работы, бесполезная растрата вашего времени. Раньше выпустить продукт заказчику без правильной локализации, в данном случае правильно и разумно.
2. «но об это следует обязательно рассказать как преподавателю.» А вы думаете, что об этом не рассказываю? Конечно, рассказываю. Но если, например, я дам школьникам учебный пример с поясняющими комментариями на английском, то поясняющие комментарии свою роль потеряют.
3. Это специфическая задача, которая требует специальных средств. И тот факт, что вы для своей задачи не смогли найти много подходящих инструментов, это и подтверждает. Разработчики программ не тратят время на проработку этой проблемы, так как проблема не распространенная и специфическая. Тогда как частое наличие в программистских шрифтах букв других языков свидетельствует о том, что вот этот момент востребован программистами.
4. Теперь вы еще и программиста ограничиваете в своей работе. И сколько вы знаете программистов, которые занимаются только кодом и никогда другие текстовые файлы не правят? Например, я таких не знаю.
Что-то я не пойму, у вас что ли сначала программист переводит свои мысли на неродной английский, а потом приходит переводчик и переводит их обратно на русский?
Может быть, для кого-то это действительно так, но ведь есть и русские программы, которые изначально пишутся на русском а потом уже может быть переводятся на английский...
а как же регулярки? или мне отказаться от работ с кириллицей?
почти убедили, но если основные проекты русскоязычные, то все равно где нибудь кириллица пролезет, поэтому в таких случаях кириллический шрифт безпроблемнее.
А почему вы всё время говорите о локализации? Те же самые регулярки с кириллицей, я думаю, редко касаются локализации. Последний раз у меня это была обработка документов. И регулярок с кириллицей там было много. Никакого отношения к локализации они, конечно же, не имели. Это была именно часть бизнес-логики. Я уверен, достаточно много существует проектов, жёстко завязанных на конкретную группу языков.
Я бы не стал относить обработку документов к локализации. Скажем у меня это была обработка текстов законодательных актов. Ни о каком расширении речи не идёт, они имеют заданные языки. И разные блоки их обработки, в зависимости от языка, на котором они написаны, ввиду разных грамматик, алфавитов, лексики и прочих тонкостей. Не уверен, что тут уместно слово захардкодить. Это могут быть разные классы/сущности, наследуемые от одного родителя. И это будет кириллица, арабица, что-угодно в код файлов.
А почему вы всё время говорите о локализации? Те же самые регулярки с кириллицей, я думаю, редко касаются локализации.
Более того, моноширинные шрифты — это не всегда код. Это может быть и терминал, где программа что-то выдаёт кириллицей.
Документация — это код? Разговор был именно про код, маркдаун обычно используется для разметки текста и последующего «рендера» во что-то более удобное типа html.Вы будете смеяться, но бывает: Курс «Техническая документация в IT-проектах», лекция 8 («Лекция 8, о методологии docs as code.»)
Например, по этой причине ушел с Evernote.
сори за оффтоп, а куда ушли, если не секрет
Внешние ресурсы (тот же xml, json, yaml итд) обычно в том же редакторе или IDE, что и код редактируются. Как вы представляете локализацию в этом случае?
Показывать содержимое XML & JSON одним шрифтом, а код другим? Смотреть сторонний код, где может быть кириллица в коде — в другом редакторе? А ещё кириллица может быть в коде (да и не только она) вне комментариев. К примеру какие-нибудь языковые костыли, регулярные выражения и пр… Или регулярные выражения тоже будем выносить в отдельные файлы? Полагаю, что я ещё что-нибудь не учёл.
Или регулярные выражения тоже будем выносить в отдельные файлы?
Если их много и они специфичны, то не помешало бы. Мне пока ни разу не приходилось выносить строки в файлы локализации, а вот регулярки в нескольких проектах применять приходилось. Каждый раз начинал с того, что хардкодил их, и каждый раз вскоре получалось, что список регулярок растёт, для них требуется кастомная работа, отдельные классы, и в итоге всегда оказывалось проще вынести регексы в отдельные файлы.
Я делаю продукт ориентированный на 10-20 программистов работающих в РФ и не планирую даже локализацию подключать, ибо никому за пределами стен институтов не нужен данный ресурс — мне удобней писать развернутый комментарий и документацию на русском языке. Тем кто делает модули — удобней читать и дополнять ее на русском. Мне не надо думать над фразами, мне не надо думать что один на английском говорит и думает, я знаю на уровне понимать/писать, а студент который работает над проектом вообще в английском через гугл-транслейт сидит.
Просто примите как реальность: комментарии на родном для автора языке — это норма для небольших проектов, коих большинство.
Русский человек прежде всего должен заботиться о соотечественниках, а уже потом об иностранцах.
Если им надо, то помочь с локализацией — не проблема. Поможем.
Но соотечественники — прежде всего.
Мне он тоже нравился за его "узкость" тем самым он экономит место по ширине. Но у бесплатного варианта была ограниченная поддержка символов, думал купить, но цена в тот момент меня шокировала. Потом "нашёл" похожий бесплатный шрифт Iosevka — и он меня полностью устроил, я его даже в терминале ставлю (Iosevka Term).
Нужно ещё брать во внимание операционную систему, так как в каждой используется свой метод сглаживания шрифтов (судя по радужным буковкам, у автора скриншотов Windows), и разрешение экрана, так как тонкие засечки, например, выглядят размазнёй при низком разрешении.
В винде просто включается сглаживается, в убунту нужно настраивать три отдельных параметра: "Hinting", "Antialiasing", "RGBA order". Нужно подбирать эмпирически, так как зависит от монитора и от предпочтений. Например я использую Linux Mint (основан на убунту) и поставил так:
Hinting — "Slight", Antialiasing — "Rgba", RGBA Order — "RGBA". Посмотреть скриншот
В стародавние времена была даже утилита ClearType PowerToy для WinXP.
См. www.howtogeek.com/howto/windows-vista/tune-your-cleartype-font-settings-in-windows-vista
Все скриншоты сделаны в VSCode на одном фрагменте кода
Перевод такой перевод. Разговор идет о том, что человек взял одну версию VSC, и в ней, тем же кодом рендеринга и в том же ОС, вывел все эти гарнитуры?
Что касается отрисовки, то сильно, конечно, интересно, как эти фонты отрисовываются в условиях включенного и отключенного Cleartype, потому что для иных шрифтов это принципиально важно, вплоть до невозможномть использовать.
P.S. Почему было не написать подобную статью, но самому, взяв все те же (или еще и другие) шрифты и попробовав вывести не только латинские, но и, в т.ч., русский символы? Сайт, как бы сказать, русскоязычный, аудитория была бы не в претензии. А то перевод «неизвестного автора» (автор, конечно, у оригинала есть, но кто он, и почему верить его «я опробовал много шрифтов и выбрал следующие для вас» выводам — непонятно), да еще не очень вдумчивый, а тема-то довольно благодатна: делай скриншоты да пости.
Периодически меняю шрифты и стили в редакторе, чтобы глаза не замыливались.
Так может Вы потому и меняете, что пользоваться сложно? Обычно люди используют один и тот же шрифт много лет, и с глазами у них всё в порядке.
Потом присмотрелся на DejaVu Sans Mono. Он вдруг показался не таким жиртресом, а всего лишь милым пухлячком. Поставил его везде, даже в чатах. С Courier New наши отношения были порваны.
Через несколько лет вдруг наткнулся на Palatino Linotype. Дико красивый, будто написанный рукою итальянских мастеров эпохи возрождения. Я влюбился с первого взгляда. Palatino Linotype теперь стоял везде, даже в чатах.
Как‐то в интернете натолкнулся на статью, посвящённую ненависти к Comic Sans. В тот день этот шрифт заиграл новыми красками. Он уже бы таким уродливым, а кое‐где даже забавным. Его пляшущие наклонные литеры в сочетании с розовым фоном добавляли ноты безумия, хотя редакторы кода смотрели на меня как бы недовольно, свирепо, но в то же время грустно и с недоумением.
Потом пришла идея использовать буквы в шрифтах не менее четырёх миллиметров. Я подумал, что работать со шрифтом из 12 пикселей подходит только для разрешений максимум 640 на 480. Прощайте, маленькие размеры, ваше место теперь только в банковских договорах под сносками.
Экран живёт сам по себе в идеальном мире Пространства и Хаоса, а в материальном мире физически воплощается в виде монитора. И на него действует освещение в комнате. Поэтому теперь в редакторе днём стоит светлая тема, а ночью тёмная, а шрифт в данном случае Magnum Gothic Semilight.
Всё бы ничего, но для каждого типа шрифтов есть своё место. Я не совсем понимаю, зачем было ставить моноширинные "даже в чаты". Скорее всего заменили их поэтому же. Причём стало сложно пользоваться в чатах — а заменили везде.
А comic на розовом фоне — это круто, конечно, надо будет попробовать :)
Magnum Gothic Semilight
Я смотрю, Вам просто нравится экспериментировать.
Тем не менее, использовались и моноширинные скрипты.
Спасибо человеку, который подсказал в своё время.
Лигатуры — вещь. Сильно облегчают «видение» операторов.
Использую DejaVu Sans Code, т.к. изначально привык к DejaVu Sans Mono.
Советую также посмотреть на Monoid
input.fontbureau.com
Правда для Visual Studio (не Code) надо получить «спец» версию
input.fontbureau.com/workarounds
Продолжаю пользоваться consolas. Для меня очень важно, чтобы у шрифта была харизма и индивидуальность. Это есть например у consolas и monaco.
В нормальном сглаживании он выглядит лучше чем любой шрифт из статьи (попробуйте зазумить скриншот и сравнить) — таким образом становится понятно что статья мощно теряет актуальность из-за корявого подхода автора к presentation'y
YemSalat, на разных мониторах с разным DPI шрифты выглядят по-разному. Вплоть до того, что люди покупают себе мониторы с заданным комфортным DPI для однопиксельных шрифтов. У меня 3 монитора, у всех свой DPI. Проводя окно между ними я вижу надписи по-разному. Это я к чему? К тому что нет никакого смысла обсуждать сглаживание шрифтов по скриншотам. Надо быть физически рядом, чтобы сказать своё фи. А не то получается, как в анекдоте про Шаляпина и телефон.
FiraCode давно приглянулся, использую его в Идее и Райдере, они как раз добавили поддержку лигатур.
Iosevka и FiraCode. Остальное всё так себе.
очень хорошо что поменяли
А я вот пользуюсь шрифтом Ayuthaya, он почти такой же как и Monaco, но как мне кажется, немного приятнее. А может быть я ошибаюсь и он точно такой же как Monaco...
Пару лет назад нашел для себя Fantasque sans mono, и с тех пор не меняю шрифт
input.fontbureau.com
Когда моноширинный шрифт используется не только при написании кода, визуальное отличие этих символов очень важно.
Просто ради любопытства, сколько раз у вас в жизни случалось, что вы сомневались, какая там буква «с», из кириллицы или латиницы? Просто например у меня за два десятка лет работы программистом такие сомнения были раза два, ну максимум три. Я бы (моё ИМХО) в таком случае тоже предпочел бы дизигн вместо юзабилити.
А почему именно про разницу c/с речь? А o/о или p/р и другие одинаковые по начертанию буквы?
Вообще, радикальным решением было бы настройка разных шрифтов для разных диапазонов символов. Например, по дефолту Iosevka, а для кириллицы — IBM 3270.
И это меньшая из проблем, потому что иногда менеджеры путают ширину с высотой…
Ну… Не так всё однозначно. Обычно при кодинге раскладка на англ. включена, с чего бы русской букве оказаться? Ну и вероятность того, что человек переключился на русский → забыл об этом → решил написать одну букву c/с → отвлёкся → забыл, в каком алфавите её набрал, практически нулевая. Скорее чаще случается, когда пишешь несколько букв разом, видишь, что не в той раскладке, сразу удаляешь.
По-моему, проблема гораздо менее актуальна, чем кажется.
11 лучших шрифтов для программирования