¿Alguien prefiere fuentes proporcionales? [cerrado]

46

Estaba leyendo el artículo de wikipedia sobre estilo de programación y noté algo en un argumento en contra del código alineado verticalmente:

  

Confianza en la fuente mono-espaciada; tabular   el formato supone que el editor   utiliza una fuente de ancho fijo. Más moderna   Los editores de código soportan proporcional   fuentes, y el programador puede preferir   usar una fuente proporcional para   legibilidad .

Para ser honesto, no creo que haya conocido a un programador que prefiera una fuente proporcional. Tampoco puedo pensar en ninguna buena razón para usarlos. ¿Por qué alguien preferiría una fuente proporcional?

    
pregunta Jason Baker 20.09.2010 - 09:44

11 respuestas

43

Puntos comunes contra fuentes proporcionales, comentó.

  • No puede alinear el código con precisión verticalmente con fuentes proporcionales. Quiero decir, usted podría alinear el código de manera precisa con las fuentes proporcionales, si todos estuvieran usando tabulaciones de goma , pero por desgracia ...
  • Algunas fuentes proporcionales hacen que sea difícil distinguir algunos grupos de caracteres. (por ejemplo, mrnm). Sin embargo, tampoco todas las fuentes de programación son perfectas: Courier New tiene una 'O' y '0' idénticas e '1' y 'idénticas l '.
  • Algunos IDE tienen un soporte pobre para fuentes de ancho no fijo (como mencionado Visual Studio o IDLE de Python). En algunos contextos, también, simplemente no puedes usar uno. (por ejemplo, terminales.)
  • La elección de una fuente proporcional para la codificación te llevará a interminables guerras santas. Aquí, sin embargo, el problema existe entre el teclado y la silla.

Puntos en favor de fuentes proporcionales

Personalmente, he estado usando la fuente 'Ubuntu' y WenQuanYi Zen Hei Mono con mucho gusto y me encuentro incapaz preferir uno al otro. :)



Ubuntu 10 y WenQuanYi Zen Hei Mono 9, en comparación. No hay un ganador claro aquí, si me preguntas.

Dicho esto, las fuentes son como la comida. A algunos les gustan bien los que están bien redondeados, a otros les gustan los picantes y picantes: no hay una fuente correcta, o la usaríamos todos ahora. ¡Yay de elección!

    
respondido por el badp 18.11.2010 - 16:03
29

Hay una razón que hace que sea prácticamente imposible usar fuentes distintas de monoespacio para la codificación, pero no se mencionó en otras respuestas: selecciones rectangulares .

Esta característica, a menudo no es muy útil y no es muy conocida cuando se trabaja con texto normal, es esencial para los desarrolladores. Puede imaginar una multitud de escenarios: eliminar // de comentarios en varias líneas, agregar paréntesis u otros caracteres, etc. Esto es aún más valioso con el soporte avanzado de selecciones rectangulares, como en Visual Studio 2010, donde no solo puede seleccionar y eliminar texto, pero seleccionarlo y reemplazarlo.

Tomemos un ejemplo:

private IEnumerable<SELove> StackExchangeRocks()
{
    var howILoveSEWebsites = new []
    {
        new SELove { SiteName = "Stack Overflow", MyReputation = 5269,  MyRating = Rating.Outstanding, },
        new SELove { SiteName = "Programmers",    MyReputation = 16937, MyRating = Rating.Outstanding, },
        new SELove { SiteName = "Super User",     MyReputation = 650,   MyRating = Rating.QuiteGood,   },
        new SELove { SiteName = "Server Fault",   MyReputation = 489,   MyRating = Rating.Good,        },
        // Initialize other websites here.
    };

    return howILoveSEWebsites.OrderByDescending(c => c.MyRating);
}

private class SELove
{
    public string SiteName { get; set; }
    public int MyReputation { get; set; }
    public Rating MyRating { get; set; }
}

private enum Rating
{
    Outstanding,
    Good,
    QuiteGood,
}

En este código heredado, quiero reemplazar la calificación del código por un método que cargará mi calificación de los sitios web de Stack Exchange, pudiendo tener siempre datos actualizados. Comencé a refactorizar la propiedad MyReputation , y ahora quiero eliminar la inicialización, dentro del alcance. Imagina que no tengo cuatro, sino todos los sitios web de 84 SE.

Esto es lo que sucede cuando se usa Consolas , una fuente monoespaciada. Presiono Retroceso, y eso es todo, puedo pasar el tiempo restante para hacer algo realmente útil.

YaquílomismoconSegoeUI.¡Ay!

    
respondido por el Arseni Mourzenko 25.09.2011 - 00:02
16

Solía usar una fuente proporcional, principalmente porque encuentro que la puntuación es en realidad más fácil de diferenciar, pero con el tiempo me he rendido porque nadie más lo hace y todos asumen inconscientemente fuentes mono espaciadas (como lo menciona el artículo de Wikipedia). para hacer el formateo tabular, ascii art en comentarios y así sucesivamente).

Además, problemas en Visual Studio , que Microsoft no quiere arreglar, básicamente hace que sea imposible usar fuentes proporcionales bien diseñadas de todos modos.

    
respondido por el Dean Harding 20.09.2010 - 11:36
8

Personalmente no me importa. Mientras mantengas mis pestañas alineadas y la fuente legible, no me importa si uso monoespacio, proporcional o algún otro espacio fuera de la pared. Simplemente no empieces a sustituir mis pestañas con espacios, y no tendrás ninguna pelea conmigo.

    
respondido por el Aeo 18.11.2010 - 16:56
6

Utilizo una fuente proporcional (Arial es el mejor que he encontrado hasta ahora, Verdana es un subcampeón) y, sinceramente, todavía me sorprende que la gente use fuentes de ancho fijo; ¿Por qué querrías sacrificar la legibilidad de esa manera? Podría entender si el formato tabular era deseable, pero no lo es, ya que crea una pesadilla de mantenimiento independientemente de la fuente.

    
respondido por el rwallace 30.12.2010 - 16:01
4

Recuerdo que en el libro de Bjarne Stroustrup El lenguaje de programación de C ++ , se usaron fuentes espaciadas de forma adecuada para el código. (No puedo encontrar ninguna página de muestra en la web)

No recuerdo las razones exactas, pero creo que mencionó esto y otros cambios (creo que el lenguaje C ++ en sí mismo) como nuevas introducciones en ese libro.

Personalmente, prefiero los de espacio fijo. Consolas es mi favorito.

    
respondido por el Nivas 20.09.2010 - 11:57
4

Para los idiomas que tienen líneas cortas y mucho espacio abierto, prefiero las fuentes monoespaciadas. Me parece que las fuentes de ancho variable pueden mejorar la legibilidad cuando tienes líneas largas y una sintaxis densa.

El problema con la mayoría de las fuentes proporcionales es que no fueron diseñadas para la programación. Esta página muestra algunas fuentes que eran.

    
respondido por el user287424 24.09.2011 - 23:51
2

Los entornos Smalltalk como Pharo utilizan fuentes proporcionales y, debido al estilo del idioma, se ven muy bien allí. Pero en lenguajes estilo C como Go u otros como Erlang o Python, prefiero las fuentes monoespaciadas.

    
respondido por el Mue 20.09.2010 - 11:28
2

Pasé un tiempo buscando una fuente buena y legible para Eclipse hace un tiempo, y bajo XP usé Verdana durante bastante tiempo. Consolas lo resolvió porque es realmente excelente para la programación.

Estos son mis hallazgos:

  • La mayoría de las fuentes proporcionales están diseñadas para prosa y solo una pequeña puntuación (que a su vez suele ser uno o raramente dos caracteres). La familia de idiomas C tiene lotes de puntuación, que, simplemente, en mi opinión, no se ven bien y es más difícil de leer de lo necesario.
  • Los caracteres de longitud variable significan que la longitud de las líneas varía. Esto hace que sea casi imposible adivinar dónde terminará el cursor al navegar con los botones de flecha. Me pareció molesto.
  • El espaciado vertical también importa. Normalmente, esto no es algo que se pueda anular fácilmente, y la mayoría de las fuentes proporcionales tienen menos espacio entre las líneas de lo que me gustaría.
  • Muy pocos IDE se prueban con fuentes proporcionales. Esto deja espacio para errores sutiles, como colocar el cursor en la ubicación incorrecta, volver a pintar los caracteres de forma incorrecta, y cosas por el estilo.

Por lo tanto, descubrí que no valía la pena para mí.

Nota sobre la alineación y otros diseños: he configurado Eclipse para que formatee automáticamente cada archivo en cada guardado, por lo que todos los diseños elegantes se restablecen automáticamente. Eclipse usa pestañas en lugar de múltiples espacios y se pueden posicionar correctamente incluso con fuentes proporcionales. Por lo tanto, los diseños del formateador pueden estar uno sobre el otro, pero usamos la configuración del formateador estándar que no tiene eso.

Creo que la aplicación del formato automático para todos en cada guardado minimiza los falsos positivos en el sistema de control de origen, cuando se realiza un análisis forense.

    
respondido por el user1249 09.04.2012 - 13:57
0

Nunca, nunca, porque las fuentes monoespaciadas me permiten comparar atributos diferentes.

Compare:

name1 = ["William", "Shakespear", 1564, "Peotry"]

name2 = ["John", "Locke", 1632, "Philosophy"]

name3 = ["Jonathan", "Littell", 1967, "Prose"]

To:

name1=["William",  "Shakespear", 1564, "Peotry"     ]
name2=["John",     "Locke",      1632, "Philosophy" ]
name3=["Jonathan", "Littell",    1967, "Prose"      ]

Las fuentes proporcionales simplemente no pueden colocar atributos equivalentes exactamente uno encima de otro.

    
respondido por el Adam Matan 28.02.2012 - 14:06
0

Si bien creo que las fuentes proporcionales son más bonitas, en algunas de ellas, especialmente las fuentes sans-serif, es imposible ver la diferencia entre una "I" y una "l". Espera, ¿cómo nombre esa variable otra vez?

    
respondido por el Billjk 09.04.2012 - 15:07

Lea otras preguntas en las etiquetas