Menú
¡Lo último!
¿Te interesa este blog?
Para recibir avisos sobre nuevos artículos:

Para invitar a otra persona:


Últimos artículos
Comentarios recientes
Clasificación de artículos
Programar y escribir para la web: no tan diferentes / Blog (artículos)

Programar y escribir para la web: no tan diferentes

Jueves, 29 Mayo 2008 19:30 (lecturas: 465)
Guardado en: TECH, Web, desarrollo, usabilidad, metáforas, programaciónjordisan

Leo un artículo en el blog de Ricardo Galli titulado Tratar al código fuente como un ensayo que me ha vuelto a crear una conexión entre dos temas que en principio parecen poco relacionados pero de los que se puede extraer alguna enseñanza común; en este caso, la programación y la redacción de textos para la web.

Código fuenteRicardo habla de un libro (Beautiful Code) y, más concretamente, de un capítulo titulado como su artículo: Treating Code As an Essay. En él se señala la similitud entre el código fuente de un programa y un ensayo, en el sentido de que, si bien en ambos casos su propósito es lo fundamental ("¿de qué se trata?"; "¿qué hace?"), no debe descuidarse el estilo en que están escritos, ya que no sirven de nada si no pueden ser interpretados por seres humanos.

A continuación rescata algunas reglas generales para escribir código de calidad:

  • Brevedad: La brevedad es una virtud, definitivamente hay un coste de lectura para el ojo humano, el código debe eliminar la información redundante
  • Familiaridad: Las personas son más conservadoras de lo que pensamos. Las curvas de apredizaje elevadas creean estrés y reducen productividad. Un lenguaje no debe obligar a los progamadores a trabajar con conceptos nuevos y complejos. No ser demasiado innovador es también una ayuda para el “código bello”.
  • Simplicidad: Si un programa es complicado de entender no puede tener belleza.
  • Separar bloques: Separar los bloques lógicos en cada función, así se facilita la lectura más rápida y en “diagonal”.
  • etc.

Inmediatamente me han venido a la memoria las reglas que da Jakob Nielsen para escribir para la web; de hecho, algunos de los puntos son prácticamente idénticos: simplicidad, brevedad, lenguaje familiar, etc. Y es que, pensándolo un poco, las situaciones no son tan diferentes:

    • Leer sobre un monitor (más cansado que sobre un papel).
    • No se lee completamente el contenido, sino que se "escanea", ya sea buscando alguna información concreta, ya sea haciéndose una impresión general.
    • El contenido puede estar disperso en diferentes ficheros/páginas.

    Mujer escribiendo en un ordenadorPor supuesto, hay diferencias: un programa debe ser, al mismo tiempo, interpretado correctamente por una máquina, y ser inteligible para los programadores. Por otro lado, una página web, en principio, sólo tiene como público objetivo a los usuarios del portal; aunque, indirectamente, también puede ser interpretada por máquinas, i.e., los bots de indexación de buscadores. Es más: algunas páginas son bastante menos inteligibles que muchos códigos fuente. :)

    En cualquier caso, la idea está clara: no debemos perder de vista que es fundamental, en ambos casos, que los programas/textos que creamos deben poder ser interpretados con claridad y sencillez por humanos.

    ¿Podemos llevar más allá la analogía? Algunas ideas que se me ocurren:

    • Igual que hay estudios sobre rendimiento de lectura en páginas web, ¿existirán estudios sobre rendimiento de lectura de código? ¿Por qué no aplicar un eye-tracker a un programador estudiando el fuente de un programa? Podríamos comparar rendimientos entre diferentes estilos de programación, lenguajes, coloreado de sintaxis, etc.
    • ¿Cómo podemos usar el estilo de pirámide invertida en un programa? ¿Tiene sentido hacerlo?
    • ¿Podríamos aplicar alguna de las técnicas incluidas en los editores de código fuente y en los IDE a los editores de texto a la escritura para la web? Por ejemplo, ¿nos serviría una función que resaltara todas las repeticiones de una misma palabra en el texto para detectar qué hemos dicho anteriormente, o si la estamos utilizando demasiado? ¿Y si pudiéramos incluir fácilmente comentarios en el texto, visibles para nosotros como autores, pero no para los lectores en general?

Deje un comentario