Hack - La police conçue pour le code source

Publié initialement à : Hack – La police conçue pour le code source

Récemment présentée, la police de caractères « Luciole » améliore la lisibilité pour les malvoyants. Découvrez aussi « Hack », une police open source créée pour les développeurs, offrant de la clarté pour coder la nuit, supportant toutes langues et glyphes, y compris le cyrillique et le grec. Avec son design et ses caractéristiques typographiques, elle rend la lecture de code plus confortable. Disponible au téléchargement et à l’essai en ligne.

Dans le même genre, j’utilise JetBrains Mono depuis longtemps.
La différenciation immédiate du 0 et du O évite pas mal de crises de nerf !

Pour ma part, j’ai découvert assez récemment la police Fira Code
Qui a l’avantage (ou pas) d’avoir quelques caractères disons « compressés » comme === remplacé par un signe égal avec trois barres, etc. :slight_smile:

@Toctoc

JetBrains Mono ???

On parle bien de https://www.jetbrains.com/lp/mono/ ?

Hors de question, à cause du manque de discrimination entre 1 et l, et justement insuffisante aussi entre o,O et 0, même si le zéro est barré (le O et le 0 ont exactement la même forme).

Une fonte qui ne permet pas d’identifier immédiatement :

i l 1 I L

ni
o 0 ° 8 Q O

ne mérite pas d’être utilisée pour coder.

J’ai utilisé des Lucida, Bitstream Vera, DejaVu, pour le moment j’en suis à Source code Pro.

Source Code pro présente aussi des chiffres et lettres très agréables à mes yeux, c’est personnel, mais je ne suis pas le seul.

@Nicolede
Je suis réservé sur les polices qui altèrent les symboles comme Fira, mais je pourrais changer d’avis sur le long terme.
Il me semble que les modifications de ligatures posent un problème de compatibilité de lecture des différentes sources (livres, code en ligne, code local) si la présentation d’un même code change d’un media à l’autre.

@Korben
Et je n’aime pas le zéro de Hack, mais c’est très personnel, remplir tout le centre du zéro me rend le symbole illisible et me fait perdre du temps. Je testerai peut-être encore. Le zéro de Source Code Pro ne contient qu’un point centré et me permet bien l’identification.

Quand à Luciole, le L minuscule est ambigu, donc merci, non merci.

J’utilise Dank Mono qui supporte aussi les ligatures, et c’est vachement agréable à utiliser. Seul point noir pour certain: C’est une police payante.

@bmx22c

Seul point noir pour certain: C’est une police payante.

Payer pour avoir le droit d’écrire, quelle idée dangereuse.
Déjà, pour se loger, boire, manger, se déplacer, se cultiver, de manière appropriée, cela est devient de plus en plus dur, voire impossible, il ne restait plus qu’à payer pour écrire. En numérisant toutes démarches administrative ou non, et tout Droit, le collier se resserre et la laisse se tend un peu plus chaque jour.
Les masses sont prêtes à payer pour respirer.

1 « J'aime »

Je ne comprend pas trop la remarque sur JetBrains Mono, je l’utilise, pas forcément par choix mais c’est la police par défaut dans IntelliJ et elle me va très bien, quant au 1 et l on fait très bien la différence immédiatement.
Perso je n’ai jamais vu de 1 avec une barre horizontale vers la droite en bas, ni d’ailleurs avec la barre du haut étant horizontale, après éventuellement entre le 0 et le O mais une fois qu’on a compris que le 0 a un point au milieu ça va très bien, et c’est d’ailleurs l’avantage que tu trouves à une autre font: « Le zéro de Source Code Pro ne contient qu’un point centré et me permet bien l’identification ».
Par contre je ne comprend pas du tout ce que font le 8 et le Q dans les examples, pour le coup ils sont complètement uniques par rapport au reste: JetBrains Mono - Google Fonts

Après chacun ses préférences hein :wink:

@Gluttony

Mes remarques sont d’abord générales et génériques sur le processus de lecture, pour toutes les fontes.

Les neurosciences indiquent que la lecture se fait notamment par reconnaissance de forme des mots et des signes.
Tout ce qui rend plus difficile ce processus me semble inapproprié.

C’est pour cela que j’ai donné des exemples larges génériques sur quelques signes de formes proches. Je n’ai pas dit que c’était le cas de toutes les polices, je précisais ce que je recherche et ce que j’évite.

Spécifiquement, pour JetBrainsMono :

Les lettres i (maj, min) et le un sont bien différentiables, comme j’aime. Cependant, la lettre O maj, la lettre Q et le Zéro ont exactement la même forme ronde globale => risque augmenté d’erreur de lecture, d’autant plus que ta vue ou ton cerveau est fatigué, en mode sombre moins bon pour la lecture mais plus écologique, si tu es pressé, etc.

Ce n’est pas le cas pour SCP Source Code Pro, factuellement :

  • le o min est bien rond, pas ovale comme les zéro/O maj, Q;
  • le zéro est de forme différente, plus petit que le O et le Q ;
  • le 1 est plus petit que le L ou l (plus rapidement lisible) ;
  • le i min n’a pas de barre basse => plus différentiable du 1 et du i maj et du l min.

image

Pour les ligatures de JetBrains, je reste sur la réserve pour les raisons factuelles évoquées plus haut.

image

A la place du traditionnel :

image

A ceux qui me traiteront de vieux barbon, je dirais, c’est vrai je suis vieux avec de vieilles habitudes.

Mon cerveau lent a du mal à changer son apprentissage, y compris pour la partie de l’écriture inclusive qui modifie les mots sur leur forme et sur la syntaxe en ponctuation (comme les .e .es à la fin des mots), ce qui m’empêche de lire comme je l’ai appris, et comme cela existe dans un corpus littéraire et numérique immense et encore majoritaire. Je précise que je suis pourtant favorable à l’inclusivité féministe au global, comme pour la féminisation des intitulés des professions par exemple.

Cependant l’argument contraire est vrai : Aux djeunz codeurs qui adorent la hype de la dernière nouveauté, je dis attendons quelques années pour voir.

Les ligatures changent radicalement les formes, donc la lecture, comme je l’indiquais. De mon point de vue, c’est assimilable à la création d’une incompatibilité entre les échanges et le travail sur le code.

Je ne suis pas fan pour le moment, je jugerai sur la durée, heureusement c’est encore libre, voir optionnel.

Premier problème : Si tu n’utilises plus que les ligatures, tu auras bien du mal à passer à la lecture sans ligature. Les changements des formes, donc ton processus de lecture, aura bien du mal à s’adapter au retour arrière, voir aux aller-retour entre les deux, augmentant le coût de lecture et la fatigue visuelle et intellectuelle. Je n’ai pas envie de cela.

Deuxièmement, comme je l’indiquais : Quand un auteur voudra écrire un livre imprimé avec du code, quelle version choisir?

Troisièmement, toutes les pages Web ne sont pas homogènes, ni en police, encore moins en ligatures extrêmes.

Bon, peut-être que bientôt il n’y aura plus ce problème, plus de livre papier, mais que des eReader où nous aurons le choix des polices pour le code, pourquoi pas.

Je ne fais qu’expliquer mes choix, pas tenter de les imposer, alors bon code à tous avec la police de votre choix, je ne me prends pas pour la police des polices. :slight_smile:

OK, merci pour ces précisions :+1:

@Gluttony
Merci également pour tes suggestions, et aux autres également, je pourrais changer de police dès qu’une meilleure à mes yeux apparaîtrait.

Ce qu’expliquent les créateurs de JetBrains Mono c’est leur tentative d’obtenir une meilleure lisibilité en étirant verticalement les caractères.

Et justement, cela s’oppose à la distinguabilité {zéro // lettre O maj, letre Q maj).
Ensuite il revendiquent une bonne distinguabilité {un // L min, I maj} mais justement le i min est plus distinguable sur SCP.

J’en ai profité pour mettre à jour ma liste de polices à tester, je changerai peut-être pour une nouvelle police parmi ce qui suit, qui est plus long que la liste de wikipédia citée plus haut, notamment des récentes comme Commit Mono qui s’inspire de JetBrainsMono et FiraCode, ou encore Iosevka.

Bon code! :love_you_gesture:

Andalé Mono Paneuropean
Anonymous Pro
Apercu Mono
Bitstream Vera Sans Mono
Cascadia Code
Century Schoolbook Monospace
Comic Mono
Commit Mono
Computer Modern Mono/Typewriter
Consolas
Courier
Cousine
Dank Mono
DejaVu Sans Mono
Dina
Droid Sans Mono
Envy Code R
Everson Mono
Fantasque Sans
Fira Code
Fira Mono
Fixed
Fixedsys
FreeMono
Gintronic
Go Mono
Hack
HyperFont
IBM MDA
IBM Plex Mono
Inconsolata
Input
Input Mono
Intel One Mono
Iosevka
JetBrains Mono
JuliaMono
Letter Gothic
Liberation Mono
Lucida Console
Menlo
Meslo
Monaco
Monofur
Monoid
MonoLisa
Monospace (Unicode)
Nimbus Mono L
NK57 Monospace
Noto Mono
OCR-A
OCR-B
Operator Mono
Overpass Mono
Oxygen Mono
PragmataPro
Prestige Elite
ProFont
Proggy Fonts
PT Mono
Recursive Mono
Roboto Mono
SF Mono
Source Code Pro
Spleen
Terminus
Tex Gyre Cursor
Ubuntu Mono
Victor Mono

1 « J'aime »

chatting

AhAh! :slight_smile:
Révisons. Excellente vidéo, courte pour un sujet complet.

Je ne savais pas qu’une police existait pour les dyslexiques.

OpenDyslexic Mono

https://opendyslexic.org/

1694679017opendyslexic

Un des sites pour comparer facilement des polices est :

[Edit]

J’aime bien l’Histoire, y compris pour les polices :

Futura, la police qui s’échappa des Nazis et atterrit sur la Lune.