Estaba leyendo el artículo de Wikipedia sobre el estilo de programación y noté algo en un argumento contra el código alineado verticalmente:
Confianza en la fuente monoespaciada; el formato tabular supone que el editor usa una fuente de ancho fijo. La mayoría de los editores de código modernos admiten fuentes proporcionales, y el programador puede preferir usar una fuente proporcional para facilitar la lectura .
Para ser honesto, no creo que haya conocido a un programador que prefiera una fuente proporcional. Tampoco se me ocurren buenas razones para usarlos. ¿Por qué alguien preferiría una fuente proporcional?
ide
coding-style
fonts
Jason Baker
fuente
fuente
[citation needed]
:)Respuestas:
Puntos comunes contra fuentes proporcionales, comentadas.
Puntos a favor de las fuentes proporcionales
m
en el mismo espacio de unan
o unai
hace que sea realmente desafiante diseñar una fuente monoespacia buena y legible .rnW
yIll
en esta captura de pantalla de Proggy Clear para ver un ejemplo del espaciado de fuentes mal hecho.Personalmente, he estado usando la fuente 'Ubuntu' y WenQuanYi Zen Hei Mono con placer y no puedo preferir una a la otra. :)
Comparado con Ubuntu 10 y WenQuanYi Zen Hei Mono 9. No hay un ganador claro aquí, si me preguntas.
Dicho esto, las fuentes son como la comida. A algunos les gustan bien redondeados, a otros les gusta picante y picante: no hay una fuente correcta, o todos la usaríamos en este momento. Yay para elegir!
fuente
Hay una razón que hace que sea prácticamente imposible usar fuentes que no sean monoespacios para la codificación, pero no se mencionó en otras respuestas: selecciones rectangulares .
Esta característica, a menudo no muy útil y poco conocida cuando se trabaja con texto ordinario, es esencial para los desarrolladores. Puede imaginar una multitud de escenarios: eliminar
//
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 selecciónelo y reemplácelo.Tomemos un ejemplo:
En este código heredado, quiero reemplazar la calificación en 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
MyReputation
propiedad, y ahora quiero eliminar la inicialización, en su alcance. Imagine que no tengo cuatro, sino los 84 sitios web de SE.Esto es lo que sucede cuando se usan Consolas , una fuente monoespacial. Presiono Retroceso, y eso es todo, puedo pasar el tiempo restante para hacer algo realmente útil.
Y aquí lo mismo con Segoe UI . ¡Ay!
fuente
CTRL-D
en SublimeText y VSCode,ALT-J
en los editores de IntelliJ / JetBrains. Luego,SHIFT-CTRL-RIGHT ARROW
para expandir la selección al siguiente token a la derecha y listo. La principal ventaja es que nadie necesita alinear cosas para editar. Desventaja, si tiene algo alineado, ya no lo estará.Solía usar una fuente proporcional, principalmente porque encuentro que la puntuación es realmente más fácil de diferenciar, pero con el tiempo me di por vencido porque nadie más lo hace y todos inconscientemente asumen fuentes mono espaciadas (como menciona el artículo de Wikipedia, tratando de hacer tablas) formato, arte ascii en comentarios, etc.).
Además, los problemas en Visual Studio , que Microsoft no quiere solucionar, básicamente hacen que sea imposible usar fuentes proporcionales bien diseñadas de todos modos.
fuente
Personalmente no me importa. Mientras mantenga mis pestañas alineadas y la fuente legible, no podría importarme menos 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 que pelear conmigo.
fuente
Uso una fuente proporcional (Arial es la mejor que he encontrado hasta ahora, Verdana es una finalista cercana) y, sinceramente, todavía estoy desconcertado de 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 fuera deseable, pero no lo es, ya que crea una pesadilla de mantenimiento independientemente de la fuente.
fuente
Recuerdo que en el libro de Bjarne Stroustrup, El lenguaje de programación C ++ , se utilizaron fuentes espaciadas apropiadamente para el código. (No puedo encontrar ninguna página de muestra en la web)
No recuerdo las razones exactas, pero creo que mencionó este y otro cambio (creo que el lenguaje C ++ en sí) como una nueva introducción en ese libro.
Personalmente, prefiero los de espacio fijo. Consolas es mi favorito.
fuente
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 donde tienes líneas largas y 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.
fuente
Los entornos Smalltalk como Pharo usan fuentes proporcionales y, debido al estilo del lenguaje, se ve muy bien allí. Pero en lenguajes de estilo C como Go u otros como Erlang o Python, prefiero las fuentes monoespaciadas.
fuente
Pasé algún 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:
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 formatear 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 estos se pueden colocar correctamente incluso con fuentes proporcionales. Por lo tanto, los diseños de formateador pueden estar uno sobre el otro, pero usamos la configuración de 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 fuente, al hacer análisis forenses.
fuente
Nunca, nunca, porque las fuentes monoespaciadas me permiten comparar diferentes atributos.
Comparar:
name1 = ["William", "Shakespear", 1564, "Peotry"]
name2 = ["John", "Locke", 1632, "Filosofía"]
name3 = ["Jonathan", "Littell", 1967, "Prose"]
A:
Las fuentes proporcionales simplemente no pueden colocar atributos equivalentes exactamente uno encima del otro.
fuente
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 llamé a esa variable nuevamente?
fuente
'' vs "