- Une police monospace qui traite les symboles aussi important que l’alphabet fréquemment utilisé dans les langages de programmation, avec pour objectif une harmonie visuelle dans l’éditeur de code
- Une conception centrée sur les symboles ASCII qui améliore l’alignement des symboles à plusieurs caractères comme
->, ::, =~, et offre une épaisseur équilibrée ainsi qu’une distinction claire
- En tenant compte de la lisibilité selon le langage, elle représente clairement les symboles et opérateurs dans Perl, Haskell, C, etc.
- Actuellement proposée en graisse unique et sans ligatures, avec prise en charge du faux gras dans les environnements Linux utilisant fontconfig·pango
- Distribuée sous SIL Open Font License 1.1, elle peut être librement utilisée et modifiée
Aperçu de Myna
- Myna est une police monospace qui traite les symboles comme des glyphes de première classe, axée sur l’amélioration de la cohérence visuelle des symboles dans les langages de programmation
- Elle corrige le problème des symboles comme
->, $, @, % qui paraissent maladroits dans les polices existantes
- Elle conserve la simplicité de l’ASCII tout en imitant l’effet esthétique des ligatures
Caractéristiques principales
- Symbol-First Design : conçue autour des symboles ASCII utilisés dans l’ensemble des langages de programmation
- Précision de l’alignement : améliore la précision d’alignement des symboles multi-caractères comme
->, >>=, ::, pour renforcer la lisibilité du code
- Épaisseur équilibrée (Weight) : le contraste entre symboles et lettres reste harmonieux
- Formes minimalistes : les guillemets, virgules, etc. sont simplifiés en formes géométriques
- Distinction claire : meilleure différenciation entre des caractères souvent confondus comme
1, l, I, |, 0, O, o
- Design sensible au langage : les sigils de Perl, les opérateurs de Haskell et la notation symbolique du C sont chacun rendus de manière claire
Contexte de développement et état actuel
- Une police créée directement par son auteur, insatisfait des détails des glyphes des polices monospace existantes
- Publiée après avoir été utilisée longuement par le développeur dans ses projets professionnels et personnels
- Actuellement proposée en épaisseur unique, version sans ligatures, avec possibilité d’extension selon la demande
- Sous Linux, prise en charge du faux gras via fontconfig et pango
- Sous licence SIL Open Font License 1.1
- La première version est partie de Hera (une personnalisation basée sur Source Code Pro)
- Son évolution s’est appuyée sur les qualités de diverses polices comme Fira Mono, Inconsolata, Plex Mono, Office Code Pro, Anonymous Pro
Projets à venir
- Vise un usage universel dans les terminaux et éditeurs
- Inclut certains glyphes non ASCII (symboles géométriques et mathématiques, etc.)
- Extension des glyphes et ajout de fonctionnalités prévus selon les retours de la communauté
2 commentaires
J’utilise la police JetBrains, donc c’est intéressant.
Avis Hacker News
J’ai récemment adopté Iosevka (prononcé Joseph) précisément pour ce côté minimaliste.
Lien GitHub d’Iosevka
Ce qui est amusant, c’est que la structure du code source de cette police est assez claire pour qu’on puisse réellement la lire.
La version précédente, Hera, était une version non condensée personnalisée à partir de Source Code Pro.
Honnêtement, je ne comprends pas très bien la description « police pour langages riches en symboles ». Les symboles ont l’air assez ordinaires. Peut-être qu’ils sont juste un peu plus espacés ?
->,>>=ou::sont parfaitement alignés.La police est plutôt jolie. En revanche, il semble manquer le caractère tiret cadratin (—) dans les exemples. J’écris souvent en Markdown, et beaucoup de polices de programmation rendent mal ce caractère.
Les captures d’écran sont bien plus utiles pour l’évaluation que celles de nombreuses autres polices.
Mais s’il y a une demande, je regarderai ce qu’il est possible d’améliorer.
Comme beaucoup de polices, celle-ci a aussi un alignement un peu étrange des flèches verticales (↑↓).
Le caractère
^était à l’origine destiné à l’accent circonflexe à l’époque des machines à écrire. Sa hauteur est donc asymétrique. Je pense qu’il serait bien que le bas du caret soit symétrique avecv.↑Unicode, non ?vn’est pas vraiment équitable.Une police doit conserver des formes prévisibles.
À propos de la plainte disant que «
->ne ressemble pas à une flèche », la vraie solution serait d’utiliser de vraies flèches comme ←→. J’espère qu’un jour les langages offriront une meilleure qualité typographique.JuliaMono est une police conçue pour la prise en charge complète d’Unicode du langage Julia.
La police est belle, mais l’espacement du mot « Lorem » en haut paraît trop large, ce qui donne une impression étrange de crénage. Personnellement, ça me gêne.
Les ligatures sont un sujet assez polémique chez les développeurs.
Certains trouvent qu’elles rendent le code plus beau et plus lisible, tandis que d’autres estiment que « masquer les symboles » est inutile, voire malhonnête.
D’autres encore disent que si les langages prenaient correctement en charge Unicode, les ligatures ne seraient pas nécessaires.
Au final, ce projet a réussi à titiller les trois camps à la fois, et c’est ce qui le rend encore plus intéressant. J’ai mis une étoile sur GitHub.
Les symboles semblent placés trop haut à côté des minuscules. On dirait un effet secondaire d’un alignement pensé pour les parenthèses. Il manque un peu de sens de l’équilibre.
Rompre avec la tradition peut au contraire améliorer la lisibilité. Le tiret a été conçu pour s’aligner avec
>afin de former une forme de flèche.Il existe déjà une police d’icônes appelée Myna UI. Cela risque de prêter à confusion.