2 puntos por GN⁺ 2025-11-09 | 2 comentarios | Compartir por WhatsApp
  • Una fuente monoespaciada que trata los símbolos de uso frecuente en los lenguajes de programación al mismo nivel que el alfabeto, con el objetivo de lograr armonía visual en el editor de código
  • Mediante un diseño centrado en símbolos ASCII, mejora la alineación de símbolos de varios caracteres como ->, :: y =~, y ofrece grosor equilibrado y diferenciación clara
  • Considera la legibilidad por lenguaje para representar con claridad símbolos y operadores en Perl, Haskell, C y otros
  • Actualmente se ofrece en un solo grosor y sin ligaduras, con soporte de negrita sintética en entornos Linux con fontconfig y pango
  • Se distribuye bajo SIL Open Font License 1.1, lo que permite usarla y modificarla libremente

Resumen de Myna

  • Myna es una fuente monoespaciada que trata los símbolos como glifos de primera clase, enfocada en mejorar la consistencia visual de los símbolos en los lenguajes de programación
    • Resuelve problemas en los que símbolos como ->, $, @ y % se ven extraños en fuentes existentes
    • Mantiene la simplicidad de ASCII mientras imita el efecto estético de las ligaduras

Características principales

  • Diseño Symbol-First: diseñada en torno a los símbolos ASCII usados en distintos lenguajes de programación
  • Precisión de alineación: mejora la precisión de alineación de símbolos de varios caracteres como ->, >>= y ::, aumentando la legibilidad del código
  • Grosor equilibrado (Weight): mantiene una relación armónica entre símbolos y letras
  • Formas minimalistas: simplifica comillas, comas y otros signos con formas geométricas
  • Diferenciación clara: refuerza la distinción entre caracteres que suelen confundirse, como 1, l, I, |, 0, O y o
  • Diseño con conciencia del lenguaje: muestra con claridad los sigils de Perl, los operadores de Haskell y la representación simbólica de C

Contexto de desarrollo y estado actual

  • Fue creada directamente por no quedar satisfecho con los detalles de glifos en fuentes monoespaciadas existentes
  • El desarrollador la publicó después de usarla durante mucho tiempo en proyectos profesionales y personales
  • Actualmente se ofrece como versión de grosor único y sin ligaduras, con posibilidad de ampliación según la demanda
    • En Linux, admite negrita sintética mediante fontconfig y pango
  • Aplica la SIL Open Font License 1.1
  • La versión inicial partió de Hera (una personalización basada en Source Code Pro)
  • Evolucionó tomando como referencia virtudes de varias fuentes como Fira Mono, Inconsolata, Plex Mono, Office Code Pro y Anonymous Pro

Planes a futuro

  • Busca un uso general en terminales y editores
  • Incluye algunos glifos no ASCII (símbolos geométricos y matemáticos, entre otros)
  • Según el feedback de la comunidad, se prevé ampliar los glifos y agregar funciones

2 comentarios

 
bobross0 2025-11-11

Uso la fuente de JetBrains, así que me parece interesante.

 
GN⁺ 2025-11-09
Comentarios en Hacker News
  • Hace poco me cambié a Iosevka (se pronuncia Joseph) precisamente por esa simplicidad
    Enlace al GitHub de Iosevka
    Lo curioso es que el código fuente de esta fuente está tan claramente estructurado que de verdad se puede leer

    • Iosevka es una fuente realmente hermosa. De hecho, el aspecto condensado (condensed look) de Myna también estuvo inspirado en Iosevka
      La versión anterior, Hera, era una versión no condensada personalizada a partir de Source Code Pro
    • Iosevka admite compilaciones personalizadas por sí sola, así que permite muchas variantes de glifos y selección de ligaduras. Es bastante impresionante
    • Apenas ahora me entero de que Iosevka es una variación de Joseph. La he usado durante años y ni siquiera sabía cómo se pronunciaba. Y eso que estaba en el README
    • También vale la pena probar Pragmasevka. Me cambié desde Iosevka y siento que la legibilidad es un poco mejor
    • Yo uso Iosevka Orw. Tiene un ancho intermedio entre Iosevka estándar y un monospace común, así que me parece ideal
  • Si soy sincero, no entiendo muy bien la descripción de “una fuente para lenguajes cargados de símbolos”. Los símbolos se ven bastante normales. ¿Será que el espaciado es un poco más amplio?

    • El primer punto destacado en la página de GitHub es “Near-Perfect Alignment”. O sea, que símbolos de varios caracteres como ->, >>= y :: quedan perfectamente alineados
    • Soy el diseñador. Aquí, lo de lenguaje cargado de símbolos se refiere a lenguajes con mucho uso de símbolos, como Perl o Haskell. Quería hacer una fuente con alineación limpia sin usar ligaduras
    • Cuando se explican diferencias de diseño, hacen falta ejemplos comparativos reales. Sin imágenes de comparación, es inevitable que resulte confuso
  • La fuente está bastante bonita. Pero en la muestra parece faltar el carácter emdash (—). Uso Markdown con frecuencia y muchas fuentes de programación representan mal ese carácter
    La captura de pantalla ayuda mucho más a evaluarla que en otras fuentes

    • Sí, el em-dash es más que un simple carácter. Diría que es un elemento clave de la buena escritura (medio en broma, medio en serio)
    • Gracias por el comentario. En esta fuente hice el en-dash ancho, así que cuesta distinguirlo del em-dash. Casi nunca uso em-dash, así que no había sentido la necesidad de diferenciarlos
      Aun así, si hay solicitudes, consideraré mejorarlo
  • Como muchas fuentes, esta también tiene una alineación algo rara en las flechas verticales (↑↓)
    El carácter ^ originalmente era para el acento circunflejo en la época de las máquinas de escribir. Por eso su altura es asimétrica. Creo que estaría bien si la parte inferior del caret fuera simétrica con v

    • Nunca he visto que se use el caret como flecha vertical. No creo que la simetría sea realmente necesaria
    • Usar el caret como flecha vertical no es realista. Habría que escribirlo en dos líneas. Incluso me pregunto si existe algún lenguaje que use algo así
    • ¿Estás intentando hacer una ligadura que cruce líneas? ¿No sería mejor simplemente usar el Unicode ?
    • Soy el diseñador. Es difícil detectar combinaciones así, y el caret es ante todo un símbolo de operador, así que no debe alterarse su significado programático. Compararlo con v no es del todo justo
    • La razón histórica del caret no importa. Ahora todos estamos acostumbrados a esa forma. Cambiar la fuente por un caso tan especial solo generaría más confusión
      La fuente debe mantener formas predecibles
  • Respecto a la queja de que “-> no parece una flecha”, la solución real es usar flechas reales como ←→. Ojalá algún día los lenguajes admitan una mejor calidad tipográfica

    • Soy el diseñador. Es imposible conseguir elegancia y consistencia al mismo tiempo. Estamos intentando que el código basado en ASCII se vea bien incluso sin ligaduras
    • Las ligaduras existen
  • JuliaMono es una fuente diseñada para el soporte completo de Unicode del lenguaje Julia

    • Gracias por el enlace. Los glifos se ven muy abundantes. También es interesante que use un sistema de fallback como JuliaMono2, 3 y 4 para superar las limitaciones de la fuente
    • Soy el diseñador. Yo trabajo principalmente en el rango ASCII, pero si configuras JuliaMono como fuente auxiliar para Myna, puedes ampliar la cobertura Unicode
  • La fuente es bonita, pero el espaciado de las letras en “Lorem” arriba se ve demasiado abierto, así que el kerning se siente raro. En lo personal, me distrae

    • Soy el diseñador. Después de usarla todos los días me volví insensible a sus defectos. Aun así, la observación es válida. Consideraré ajustar el kerning en la próxima versión. Si tienes ejemplos concretos, deja un issue
  • Las ligaduras (ligatures) son un tema bastante polémico entre desarrolladores
    Algunas personas dicen que el código se vuelve más bonito y fácil de leer, y otras ven “ocultar símbolos” como algo innecesario o poco honesto
    También hay quienes dicen que “si el lenguaje hubiera soportado Unicode correctamente, no habrían hecho falta las ligaduras”
    Al final, este proyecto logró provocar a los tres bandos al mismo tiempo, y por eso mismo resulta más interesante. Le di estrella en GitHub

    • En la mayoría de los editores, las ligaduras se pueden activar o desactivar como opción. Así que nadie queda excluido
  • Los símbolos parecen estar colocados demasiado altos al lado de las minúsculas. Da la impresión de que surgió al intentar alinear los paréntesis. Le falta un poco de equilibrio

    • Soy el diseñador. Las fuentes normales están centradas en texto y siguen una alineación tradicional, pero el código no es texto
      Romper con la tradición puede incluso mejorar la legibilidad. El guion fue diseñado para alinearse con > y formar una figura de flecha
  • Ya existe una fuente de íconos llamada Myna UI. Podría prestarse a confusión

    • Soy el diseñador. Gracias por avisar. Aun así, no creo que cause mucha confusión