Периодически в сообществе вспыхивает: «А какой шрифт для кода сейчас самый крутой?» Обычно всё заканчивается очередной войной JetBrains Mono против Cascadia Code против Nerdfonts-патченого Fira Code. И тут вдруг появляется какой-то ноунейм-репозиторий с названием Myna — и за пару недель его уже ставят себе и джуны, и седые сишники, которые с 90-х на фиксированной ширине сидят.
Короче, решили разобраться, что это за зверь такой и почему про него уже шепчутся в телеграм-чатах.
Во-первых, откуда вообще взялся этот шрифт. Автор — парень с ником sayyadirfanali — взял за основу кастомную версию Source Code Pro (которую когда-то звали Hera), доработал её до состояния «я больше не хочу страдать» и выложил в открытый доступ. Лицензия SIL Open Font License, то есть бери, пользуйся, вноси изменения, только не закрывай код.
Смысл всей затеи прост: сделать так, чтобы любой символ в коде выглядел не как бедный родственник букв и цифр, а как равноправный гражданин. Потому что в обычных моноширинных шрифтах до сих пор творится какой-то кошмар с отрисовкой.
Почему обычные шрифты для кода бесят даже в 2025 году
Открываешь терминал — а там ноль и буква O отличаются только если прищуришься. Пишешь стрелочку -> — и она плавает относительно знака равно. Набираешь >>>= в Python или =~ в Perl — и вся красота моментально превращается в кашу, потому что символы разной ширины и не выравниваются по вертикали.
А теперь представьте, что вы работаете с Haskell. Там ::, ->, =>, <- в каждом втором выражении. Или Perl с его $ @ % и кучей спецсимволов. Или даже банальный C с битвыми операторами. В старых шрифтах это просто боль.
Myna эту боль берёт и тихо утилизирует.
Что именно починили в Myna: символы, которые наконец-то не плавают
Самое заметное — идеальное выравнивание многосимвольных конструкций. >>>=, >>=, =~, ::, ->, =>, <!-- — всё стоит ровно, как по линеечке. Никаких плясок с отступами, никаких «а почему у меня тут на пиксель съехало».
Дальше — различимость. Ноль, заглавная O и строчная o теперь отличаются даже на 12-м размере. Единица, строчная L и заглавная i тоже больше не сёстры-близняшки. Даже вертикальная черта | и заглавная I разделились навсегда.
Разница между 0, O и o, которую видно с первого взгляда
В Myna ноль чуть уже и имеет более выраженную «талию», точка внутри (если включить эту опцию) тоже помогает. Буква O шире и круглее. Строчная o — маленькая, но с характером. Всё это мелочь, но когда сидишь в коде по 8–10 часов, такие мелочи спасают глаза и нервы.
Стрелки, скобки и операторы, которые стоят ровно, как солдатики
Особенно доставляет, когда сравниваешь рядом два шрифта. В старом — стрелочка -> чуть короче или длиннее соседнего знака минус. В Myna — всё одинаковой длины и центрировано. Смотришь на код и сразу понятно, где оператор, а где просто тире в комментарии.
Кому особенно зайдёт: Perl, Haskell, C и прочие «символьные» языки
Если вы до сих пор пишете на Perl — бегом качать, потому что автор явно любит этот язык всей душой. Все сигилы ($ @ % & ) выглядят аккуратно и не выбиваются из строки.
Haskell-разработчики тоже в восторге: :: и -> теперь читаются моментально, даже в длинных цепочках типов.
Сишники отмечают, что битовые операции и указатели наконец-то не превращаются в кашу. Даже в плотном коде с кучей & и -> всё остаётся разборчивым.
Как выглядит Myna в VS Code, Vim и терминале — скрины и впечатления
В VS Code на 14-м размере — просто конфетка. Никаких лигатур (и слава богу, их тут нет и не планируется), всё строго и по делу. В терминале (Alacritty, Kitty, да хоть обычный gnome-terminal) тоже отлично — символы не размазываются даже при включённом сглаживании.
В Vim и Neovim тоже всё ровно, особенно если вы любите тонкие шрифты без лишнего жира.
Где скачать и как поставить за минуту на любую систему
Всё лежит на GitHub: https://github.com/sayyadirfanali/Myna
Там же готовые .otf файлы и подробная инструкция.
На Windows: скачали → клик правой кнопкой → установить. Готово.
На macOS: двойной клик → Font Book сам предложит установить.
На Linux: кидаем в ~/.local/share/fonts/ и обновляем кэш fc-cache -fv.
Через пять минут уже можно выбирать Myna в настройках редактора и наслаждаться.
Чем Myna отличается от JetBrains Mono, Cascadia Code и Fira Code
JetBrains Mono — жирноват и с лигатурами, которые многим уже надоели.
Cascadia Code — классный, но символы иногда «плавают», особенно в старых версиях.
Fira Code — это вообще про лигатуры, а Myna их сознательно не имеет, потому что «не всем же стрелочки слипать».
Myna берёт минимализмом и идеальным выравниванием там, где другие шрифты просто махнули рукой.
Что дальше: планы автора и можно ли уже кидать pull request’ы
Репозиторий открыт для вклада. Автор прямо пишет: присылайте идеи, какие ещё символы доработать, какие языки добавить. Уже есть запросы на лучшие эмодзи, на поддержку дополнительных диакритических знаков и на вариант с курсивом (хотя курсив в коде — это уже на любителя).
В общем, шрифт живой, развивается, и это приятно.
Если коротко: появился ещё один очень достойный моноширинный шрифт для программирования, который решает реальные проблемы и ничего лишнего не навязывает. Попробовать стоит хотя бы из любопытства — вдруг это именно то, чего не хватало для полного кодерского счастья.
🔔 Если статья была полезной, жмите на колокольчик на главной странице канала, чтобы быть в курсе новых публикаций, и подпишитесь, если ещё не подписаны! 📰