10 febrero 2015

Bueno pues tarde o temprano este post tenía que ver la luz. O mejor dicho, esta experiencia que estoy llevando a cabo en propias carnes, tenía que tener un reflejo en el blog.

¿Qué es lo que estoy haciendo, y qué tiene que ver con el título del post?

Lo que estoy haciendo desde hace exactamente un mes es trabajar con herramientas desde la línea de comando. Y para quienes se pregunten qué demonios es eso, trato de explicarlo.

La Wikipedia nos dice lo siguiente:

La interfaz de línea de comandos, traducción del inglés command-line interface o CLI –la cual es, en realidad, una transcripción incorrecta de Interfaz de línea de órdenes, por el falso amigo command (orden/instrucción)– es un método que permite a los usuarios dar instrucciones a algún programa informático por medio de una línea de texto simple.

O lo que es lo mismo, trabajar con aplicaciones que simplemente necesitan un terminal para funcionar. Vaya… que no hay un entorno gráfico con iconos, drag&drop y cosas así. Todo muy feo, muy poco amigable y muy complicado de manejar. Todo lo contrario a lo que podemos entender como usabilidad.

Mplayer
Captura de pantalla de mplayer reproduciendo un stream de radio

Habrá quien piense: “este tío se ha vuelto loco o le da dado un siroco“. Todo lo contrario. Precisamente la intención que tengo es la de bajar a los infiernos y empezar desde cero a experimentar el uso de aplicaciones que tienen una serie de funcionalidad disponible, pero que son de uso complejo. Ese uso complejo está determinado en buena medida por el contexto en el que se inscriben: la línea de comandos. Todo lo que el usuario puede hacer es pulsar teclas. Nada de ratón, nada de comportamiento, nada de interacción que no sea pulsar teclas.

¿Qué es lo que espero encontrar con esta experiencia? Quiero comprender mucho mejor cómo funciona una aplicación y quiero usarla sin todo el abanico de ayudas que supone una interfaz gráfica. Quiero entender las funcionalidades. Quiero saber cómo funciona internamente la lógica de las aplicaciones. Quiero, en definitiva, una inmersión total en el manejo y entendimiento de una serie de aplicaciones. ¿Para qué? Para tratar de entender cómo en el proceso de creación de interfaces gráficas hemos complicado el uso de las aplicaciones, si es que lo hemos hecho. Y también para evaluar en la medida de lo posible cómo hemos construido un lenguaje visual y en qué medida hemos priorizado lo importante de lo accesorio.

Es todo un poco loco, pero creo que es necesario de vez en cuando bajar a los infiernos para tomar una referencia.

Para quienes tengan la curiosidad de qué es lo que estoy utilizando:

  • mutt, un cliente de correo electrónico
  • vim, un procesador de texto
  • tg, un cliente de Telegram
  • t, un cliente de Twitter
  • mplayer, un cliente multimedia para escuchar radio online
  • taskwarrior, un gestor de tareas

Os iré contando.

En Torresburriel Estudio apoyamos el rediseño de tu producto digital, con un proyecto de acompañamiento donde aplicamos metodologías de diseño centrado en el usuario. Contacta con nosotros, y cuéntanos tu proyecto. Te enviaremos una propuesta adaptada a tus necesidades y presupuesto.

Comentarios

  1. Hola Daniel. La verdad es que me parece una iniciativa muy interesante.

    Yo he tenido una gran experiencia este último año al trabajar con el sistema de control de versiones Git desde la consola. Cómo me dedico a crear interfaces ha sido todo un desafío pero una vez que se le encuentra la lógica es bestial la velocidad que se gana y, a la par, el desarrollo de la capacidad de pensar lógicamente. Seguiré el experimento atentamente.

    Por cierto, primer comentario para saludarte. Te sigo desde hace unos años gracias a un comentario de Natalia Vivas.

    Abrazo desde Argentina!

  2. Muchas gracias por tu comentario, Eugenio! 🙂

  3. La magia de la línea de comandos, eclipsada por la gran potencia y complejidad de su uso, es la naturalidad en si misma a nivel de comunicación hombre-máquina. Magia que se diluye con cualquier GUI.

    Con la línea de comandos tienes comunicación en estado puro: Emisor/Receptor/Mensaje/Código/Canal/Contexto.

    Si bien la definición de la Wikipedia desde una visión estricta es correcta: usuario que da ordenes a un programa informático, el uso real es comunicación bidireccional.

    Tu le das ordenes sí, pero también le preguntas y le pides ayuda:
    ls -¿Qué hay en este directorio?
    find – ¿Dónde esta tal archivo?
    man – ¿Que me puedes contar de tal cosa?
    > – Ve y dile a fulano tal cosa
    more – cuéntamelo poco a poco que me pierdo
    tail – ¿Cómo acabó eso?
    grep – ¿Dónde hablabas de…?
    kill – ¡Deja de hacer eso!
    mkdir – Crea
    cd – Ves allí
    cat – ¿De qué va eso?
    ps – ¿Qué haces?
    rm – Olvídalo
    (tabulador) – ya sabes de que hablo…
    force – Per collons!

    Y esto sólo a modo de ejemplo del Sistema Operativo, después cada aplicación tiene su qué.

    Para mí el mejor ejemplo de bidireccionalidad en la comunicación hombre-máquina es ‘darle una orden’ al sistema y que te responda con un ‘tú no eres nadie para hacer eso’.

    Estoy convencido que las interfaces gráficas han sido un gran avance, pero me gusta pensar que si no hubiesen existido ahora usaríamos lenguaje natural en la línea de comandos -eh! mplayer pon me algo de música tranquila….
    Y esto, ¿no es lo que todos queremos hacer con ‘Ok Google’ o ‘Siri’???
    Las órdenes de voz son la Nueva Linea de Comandos….

    Espero tus experiencias Daniel

  4. Mikel: estoy absolutamente maravillado con tu comentario. MIL gracias.

  5. Pardon my English, please.

    Command line programs can be very simple. But there are others where the command line is a rich, expressive medium allowing great subtlety and fine control. Git is one, as you point out. There are others, and they are worth studying.

    A user can have a conversation with a command line app – back and forth, as Mikel says.

    There is only one way to click a button.

    I look forward to your findings!

  6. El comentario de Mikel me ha recordado a esta tira cómica:

    – Make me a sandwich.
    – What? Make it yourself.
    – Sudo make me a sandwich.
    – Okay.

    🙂

    http://imgs.xkcd.com/comics/sandwich.png

  7. Genial la idea, Daniel. Personalmente, hace poco empecé a manejarme con “nano” en linux, y no pude tener mejor experiencia de usuario. Qué facilidad para hacer las cosas!

    ¡Ánimo!

En Torresburriel Estudio desarrollamos las capacidades técnicas de tu equipo en temas de usabilidad, experiencia de usuario y diseño de producto a través de nuestros cursos online y presenciales.