¿Qué significa "legible para humanos"? ¿Es un nombre inapropiado?

13

Se me ocurren dos ejemplos:

  • Una de las razones por las que se alienta a los programadores .Net a usar archivos .config en lugar del Registro de Windows es que los archivos .config son XML y, por lo tanto, legibles por humanos.

  • Del mismo modo, JSON a veces se considera legible para los humanos en comparación con un formato propietario.

¿Los formatos legibles por humanos son realmente legibles por los humanos? En el ejemplo de datos de configuración:

  1. El formato no cambia el significado subyacente de la información; en ambos casos, los datos representan lo mismo.
  2. Tanto el registro como el archivo .config se almacenan internamente como series 0s y 1s. Hasta ese punto, la representación subyacente es igualmente ilegible para los humanos.
  3. Tanto el registro como el archivo .config requieren una herramienta para leer, formatear y mostrar esos 0 y 1 y convertirlos a un formato que los humanos puedan leer. En el caso de la configuración almacenada en el Registro de Windows, este es un Editor del Registro. En el caso de XML, podría ser un editor de texto o un lector de XML. De cualquier manera, la herramienta hace que los datos sean legibles, no el formato de datos.

Entonces, ¿cuál es la diferencia entre los formatos de datos legibles por humanos y los formatos no legibles por humanos?

Kramii
fuente
3
Depende de si la definición de "humano" se limita a los programadores / etc., o si se aplica a todos los humanos (si este último, casi todos los formatos probablemente fallan en diversos grados)
Peter Boughton el
77
El único formato de serialización legible por humanos es YAML . XML me da ganas de sacarme los ojos.
NullUserException

Respuestas:

35

La lectura humana básicamente significa que si el contenido se muestra en un programa que carece de conocimiento directo y específico del formato de ese archivo, hay al menos una posibilidad razonable de que una persona pueda leer y comprender al menos parte de él.

Sin embargo, su punto básico sobre la falta de una línea clara de delineación es absolutamente correcto: una vez conocí a un tipo que podía diagnosticar problemas con programas (en su mayoría escritos en Fortran) a menudo en cinco minutos o menos, yendo solo desde un octal volcado del núcleo, sin mirar el código fuente en absoluto. Para la mayoría de las personas, ese formato difícilmente calificaría como "legible por humanos", pero obviamente fue una excepción ...

Jerry Coffin
fuente
14
+1: Todo es "legible para los humanos" dado el esfuerzo suficiente. El significado de facto de "legible por humanos" en las computadoras es: texto plano, no estructurado o alguna estructura compuesta únicamente por caracteres textuales.
Allon Guralnek
35

Human Readable significa que puedo abrir la cosa en el Bloc de notas si lo deseo, y cambiar "contraseña = foo" a "contraseña = barra" si así lo deseo. No tengo que usar una herramienta patentada para ver o editar el contenido.

Contraste a un PDF que no puede editar con un simple editor de texto: necesita una herramienta específica que conozca el formato. O un archivo binario .dat que vino con alguna aplicación de hace 25 años que no puede leer, editar o comprender.

Kate Gregory
fuente
¿Consideraría que RTF es legible para humanos?
Peter Boughton el
77
RTF es legible por el programador :-). Lo he editado a mano pero no fue agradable. XML es ciertamente menos legible para los humanos que JSON. Mucho depende de a qué estén acostumbrados sus humanos: muchos de los míos prefieren .csv a XML, ¡pero seguro que no!
Kate Gregory el
3
Es posible que no pueda editar un archivo legible por humanos. He visto muchos en los que los contenidos son legibles por humanos, pero pueden tener un campo de verificación con, por ejemplo, un valor de parámetro hexadecimal que no es fácilmente computable y basado en el contenido del archivo. La aplicación utiliza este valor para la validación de archivos.
uɐɪ
66
Buen punto @ Ian: dado que estamos discutiendo la terminología, debemos distinguir entre legible por humanos y editable por humanos. Ambas son cosas buenas para ser, en mi opinión.
Kate Gregory el
Apoyo su afirmación de que JSon es mucho más editable (y legible) para los humanos que xml, aunque solo sea porque las entidades xml son un problema.
Matthieu M.
10

En respuesta a su pregunta "¿Son los formatos legibles por humanos realmente legibles por los humanos", por definición sí lo son, eso es lo que significa legible por humanos.

No existe una definición técnica de legible para humanos, es subjetiva y puede haber preguntas sobre qué nivel de conocimiento podría necesitar el humano para calificar (por ejemplo, ¿necesitan comprender los principios básicos básicos de XML, como etiquetas y jerarquías? , si entienden el dominio comercial en el que existen los datos, personalmente diría que sí a ambos), pero su prueba básica debería ser si se lo mostrara a alguien con habilidades técnicas básicas que entendieron los conceptos básicos de lo que los datos debían representar. ¿Pueden leerlo?

En un nivel práctico, esto generalmente significará lo siguiente:

1) Los datos se almacenan como texto ASCII o algún otro formato similar común y fácilmente reconocible

2) Que existe una estructura razonable que es evidente a partir de un examen básico. Por ejemplo, no tiene que saber que los primeros X caracteres relacionados con Y, luego el próximo X se relacionan con Z

3) Que tanto los datos como los metadatos generalmente están en inglés (o cualquiera que sea su idioma local) y requieren un conocimiento limitado del dominio del problema para comprender, por lo que un número de factura estaría en una etiqueta "invoiceNumber", en lugar de " uDef_Inbr "

4) Para los datos que no son de texto, se han utilizado convenciones predecibles (por ejemplo, VERDADERO, FALSO, S, N, 1, 0 en lugar de algo más abierto a la interpretación)

Jon Hopkins
fuente
5

Los archivos .config son mucho más fáciles de editar (para la mayoría de las personas) que el Registro. Es más fácil abrir un archivo de configuración dedicado, encontrar los datos relevantes y realizar cambios sin abrir la posibilidad de editar algo que afectará a otros programas.

Bruce Alderman
fuente
5

Se trata de facilidad de comprensión (y probable cambio). Entonces, "¿Es X humano legible?" no debe responderse con un "sí" o un "no". Por el contrario, la respuesta debería estar en algún tipo de escala móvil.

Ejemplos potenciales:

  • El 90% de los programadores podían leer y cambiar el archivo con cualquier editor de texto común.
  • El 60% de los angloparlantes podían leer el archivo con cualquier editor de texto común.
  • El 80% de los desarrolladores de XYZ podían leer y cambiar el archivo, pero solo usando la herramienta ZYX.
  • El 10% de los desarrolladores de YZX podrían leer y cambiar este archivo con un editor de texto común.

Fuera de un contexto que explica lo que realmente significa "legible por humanos", la frase no ayuda mucho. (Algunos humanos en algún lugar probablemente puedan leer cualquiera de los formatos, si no cuenta tratando de ver la polaridad magnética de los bits de hardware ...)

John Fisher
fuente
4

Una gran diferencia entre los formatos legibles por humanos y los formatos no legibles por humanos es la robustez. En un sistema Linux, todo tipo de información se dispersará en varios archivos de texto. Necesitas aprender dónde están, pero siempre puedes encontrar la información, leerla y cambiarla con un editor de texto. Si un archivo desaparece, generalmente puede reemplazarlo. Si un archivo se corrompe, a menudo puede averiguar qué debería ser y solucionarlo.

En un sistema MS Windows, la mayor parte de esto estará en el Registro, que es, desde el punto de vista de los usuarios, un gran sistema opaco, accesible en parte a través de varias herramientas (al igual que algunos archivos de configuración en sistemas Linux), y en general con un editor de registro Mientras todo salga bien, está bien. Si se rompe, no hay nada que se pueda hacer sin el conocimiento especializado.

David Thornley
fuente
1
Linux: "Necesitas aprender dónde están" frente a Windows: "nada que se pueda hacer sin el conocimiento especializado". Yo afirmaría (como usuario de muchos sistemas operativos distintos) que todos requieren conocimiento especializado. Saber dónde ajustar el registro para solucionar un problema no es más (o menos) complejo que saber qué archivo se puede editar con vi en un sistema Linux o Solaris.
Bevan
3

Los controles más fáciles que puedo considerar que califican como "legibles por humanos" son:

  • en una ubicación / archivo al que puedan acceder fácilmente los editores externos (esto haría que el registro no sea "legible para humanos")
  • no utiliza caracteres no visualizables en la estructura de datos. Si hago un documento de Office 2000 Word con el texto "prueba" dentro, podría abrirlo en el bloc de notas y encontrar los 4 caracteres "prueba" en algún lugar dentro, pero habrá muchas otras cosas a su alrededor.
  • Si bien no es obligatorio, los formatos que contienen metadatos descriptivos son una ventaja. Un archivo que contiene JohnSmith|34|T|Fes menos amigable que <User><Name>JohnSmith</Name><id>34</id><isActive>T</isActive><isAdmin>F</isAdmin></User>, ya que sabe cuáles son los campos (al menos en general) en el 2do.
Jason Viers
fuente
2

Creo que puede estar preguntando si "término legible para humanos" como término se aplica a veces incorrectamente, y sin duda lo es. En el ejemplo de las entradas de registro frente a los archivos .config, creo que es útil que pueda organizar el XML de diferentes maneras dependiendo de los datos, comentarios intercalados, etc.

Las colecciones en archivos .config generalmente se manejan como elementos múltiples, mientras que es más difícil en el registro, a menudo como un MULTI_SZ.

También puede ver más datos de configuración para una aplicación a la vez, con regedit, para ver algo que está en una clave diferente, necesita navegar a esa clave, lo que significa que ya no puede ver las entradas que estaba viendo anteriormente. Con los archivos .config, puede ver todo el archivo a la vez, aunque ese archivo pueda contener datos jerárquicos.

JohnL
fuente
El registro es ambos. Hay partes de eso que son muy legibles, otras que son un galimatías para cualquiera sin un conocimiento bastante especializado.
Jon Hopkins el
Es cierto, y se podría decir que algunos archivos .config parecen galimatías. Tenga en cuenta que ni siquiera estaba pensando en la información del registro COM, estaba pensando en la configuración de la aplicación que iría al registro, un par a la configuración que obtiene en los archivos .config. No creo que nadie tenga la intención de que la información COM sea leída por seres humanos.
JohnL
2

Contraste "legible por humanos" con binario. Por ejemplo, generalmente no puede abrir un ejecutable o un índice de base de datos en un editor de texto vainilla y comprender cuál es el contenido. Los bytes debajo del decimal 32 ni siquiera tienen representaciones estándar globales como caracteres visibles.

Charles E. Grant
fuente
1

Respuesta corta: significa que la información se ingresa como texto, en lugar de binario o hexadecimal, etc. Algo que equivale a un "lenguaje" legible en lugar de un "lenguaje de máquina" de computadora. Más allá de eso, la definición se vuelve turbia.

Skatterbrainz
fuente
1

También se aplica al código: estructura su programa de una manera lógica y reflexiva, de modo que el trabajo de cualquiera que lo vea por primera vez se haga un poco más fácil.

dodgy_coder
fuente