jueves, 7 de octubre de 2010

En el principio fue la línea de comandos, ¿cuál es el final?



El título de esta entrada "En el principio fue la línea de comandos", es también el de un libro escrito por Neal Stephenson, escritor de ciencia ficción que ocasionalmente escribe artículos de tecnología para la revista Wired.


En este libro se trata de explicar al lector, mediante una serie de ejemplos, cuáles son los distintos sistemas operativos disponibles para los ordenadores hoy en día (centrándose en Microsoft Windows, en Mac OS pre-MacOSX, y distintas alternativas de Software Libre, como Linux, BSD, etc..).

Lo realmente interesante del libro es la forma que el autor tiene de presentar los sistemas operativos, como metáforas.

Presenta a cada compañía como un fabricante de coches, y por lo tanto, el sistema operativo es el coche, el interfaz gráfico son los mandos y accesorios que el coche nos presenta, y los detalles internos de la máquina, el hardware: cpu, tarjetas, etc.. son el motor, bujías, transmisión, etc...

¿Por qué me parece acertado esta forma de presentarlo? porque en realidad, el sistema operativo es exactamente eso, una metáfora. 

El interfaz gráfico, o GUI, es una parte del sistema operativo consistente en una representación gráfica que nos da acceso a los distintos detalles internos de nuestro sistema informático. No son palancas, pedales y volantes, pero es bastante similar, nos muestra unos controles familiares para interactuar con una máquina cuyos detalles son totalmente extraños para nosotros.

Históricamente han existido otros interfaces para interactuar con los sistemas: "al principio fue la línea de comandos" es una referencia a estos primeros interfaces, las líneas de comandos que realizaban sus funciones interpretando las órdenes escritas que el usuario le introducía. Algo parecido a esto.

Esta captura la he tomado en un ordenador propio con Mac OS X Snow Leopard. Es decir, algunos sistemas como este conservan la linea de comandos como elemento de control adicional para usuarios avanzados

LAS METÁFORAS DE LA GUI EN LA ACTUALIDAD

Está claro que sin estos interfaces, metáforas, o capas de abstracción, sería prácticamente imposible el comunicarnos con el ordenador (*Nota: No es imposible del todo, pero.. antes de los sistemas operativos, la comunicación era a base de palancas, interruptores, o en el mejor de los casos, informacion tabulada en tarjetas perforadas. Ver el artículo de Ada Lovelace para ejemplos). 

Pero, ¿hasta que punto son adecuados estos interfaces para nosotros?. Pensemos por ejemplo en Windows, y en que metáforas usa para representar la información.

Ventana: Marco de trabajo de una aplicación, en el caso de explorar una estructura de ficheros, contenido de una carpeta
Icono: Representa una unidad de información (en este caso es un fichero) o un contenedor de unidades de información (en este caso es una carpeta) o un dispositivo, o una ubicación especial (como Mi Pc o Mis Sitios de Red) o...
Puntero del ratón: Cursor que podemos desplazar haciendo movimientos relativos con el ratón sobre una superficie.

Eso son sólo los elementos básicos. Esto es la pinta que tiene todo, la imagen que os habéis hecho en vuestra cabeza la mayoría mientras leíais las líneas anteriores.


Ahora vamos a olvidarnos de todo lo que sabemos de ordenadores, ¿qué piensa una persona que acaba de comenzar a adentrarse en el mundo de la informática cuando le explicas todo eso?

Raton
Archivo

Ventanas
Parece una broma, pero no lo es tanto.

La gente que empieza con la informática por primera vez necesita un proceso de adaptación en el que se tiene que familiarizar con las metáforas y elementos utilizados en los sistemas operativos y programas , y esa familiarización no es nada fácil. 

Las metáforas no tienen una conexión clara con los elementos que les son familiares, y muchas veces sin una explicación de la teoría que subyace es imposible llegar a entenderla.

INTERACCIÓN PERSONA-ORDENADOR

Existe un campo de estudio, llamado Interacción Persona-Ordenador (IPO, o más conocido por sus siglas en inglés, HCI) que precisamente estudia las distintas posibilidades de interacción entre un humano y una máquina.

Es un campo de estudio interdisciplinar que incluye estudios de ciencias de la computación (informática), estudios sobre el comportamiento humano, ciencia cognitiva (sociología, psicología) , ergonomía, diseño, lenguaje,...

Está claro que cuando se diseñaron los primeros sistemas operativos (linea de comandos) no se tuvieron en cuenta estos factores, más que nada porque se crearon en base a una necesidad apremiante, con poco tiempo y para un sector muy técnico. Después de todo, nadie esperaba que el ordenador triunfara en el ámbito doméstico como lo hizo.

En cuanto a las interfaces gráficas "tipo windows", como dije antes, tampoco es que se hayan adaptado elementos familiares para las personas y en base a eso se hayan diseñado los interfaces, sino más bien al revés. Se han aprovechado los desarrollos técnicos existentes en cada época (el ratón, la pantalla a color, las posibilidades de renderizado 2d y más tarde 3d, etc..) para ir añadiendo funcionalidades una sobre una a una interfaz tambien "de necesidad", pero esta vez gráfica.

Sin embargo, si pudiéramos, con los medios técnicos existentes hoy en día, partir de cero para hacer un interfaz gráfico, ¿lo haríamos igual? Pues no, seguramente no.

Recientes estudios relacionados con HCI nos muestran interfaces que intentan acercarnos a la información de un modo más natural.

Un par de ejemplos

Interfaces en tres dimensiones: Nosotros nos movemos en un mundo en tres dimensiones, el hecho de tener que "aplanarla" a las dos dimensiones limita la forma en la que podemos acceder a ella.
El proyecto Looking Glass de Sun, Beryl/Compiz en Linux, Flip3d en Windows, o BumpTop 3d (ver video) son ejemplos de proyectos que, usando hardware normal, utiliza técnicas de renderizado para mostrar la información en 3d.
Sería interesante (no sé si ya existe alguna implementación) que estos programas pudieran verse con gafas 3D para ordenador, como las Nvidia3D


HMD (Head mounted displays), guantes de RV, sensores de movimiento, etc.. : Existen multitud de accesorios que permiten que la inversión del usuario sea mayor, tanto a la hora de recibir información (por ejemplo, con las gafas de visión HMD) como de introducirla (por ejemplo, con el sensor de movimiento, muy usado hoy en consolas como la Wii o la Ps3, el usuario tiene la impresión de controlar directamente los objetos en pantalla)

Combinando todo esto, con el interfaz adecuado y la tecnología actual, se puede lograr una realidad virtual bastante cercana al usuario.

El siguiente video muestra HMD aplicado al "interfaz" de un octocoptero (un helicóptero de 8 rotores) que es controlado con un mando a distancia por la persona que lleva las gafas. ¡Imaginad algo así en cualquier sistema de ordenador!
Oktokopter HD-3 from albertocvr on Vimeo.

Interfaces táctiles: El iOS de los dispositivos de Apple quizás es el ejemplo más reciente de cómo rediseñando un sistema de cero para adaptarlo a un medio de control es a veces el mejor modo de resolver el problema de estar anclado a un modelo de interacción. Iconos grandes, letras grandes, adaptado para usar con el dedo, sin todos los elementos del modelo anterior, simplifica mucho la interacción inicial del usuario con el modelo.

EL FUTURO

Yo, personalmente, creo que ninguno de los interfaces que tenemos ahora se va a mantener por mucho tiempo con nosotros, salvo quizás el interfaz táctil para interactuar con ciertos dispositivos "de lectura".

Sé que es muy arriesgado apostar, pero yo mantendría el ojo en estas dos tecnologías:

1- El reconocimiento de voz / la síntesis de voz: Esto unido a la cada vez mayor evolución de los sistemas expertos y la inteligencia artificial, creo que desembocará inevitablemente que que acabemos hablando con un ordenador para pedirle cosas, como lo hacemos con un compañero de trabajo.

2- Interfaces cerebro-máquina: Aunque el desarrollo de estos es un poco más lejano, la base teórica que los sostiene es fuerte, y creo que es el futuro definitivo de interacción con el ordenador (al menos para la entrada de datos dirección humano->máquina, lo contrario ya es un asunto más espinoso). Los sistemas actuales se basan en la electroencefalografía (EGG) para recoger, por medio de unos electrodos,  la actividad bioeléctrica cerebral, luego el sistema lo interpreta y lo traduce a unas órdenes legibles por el ordenador.

Existen sistemas funcionales y comercializadas en ese aspecto, como el NeuroSky, que nos muestra este video del sistema funcionando en su página web.




¿Será este el futuro de los interfaces?

¿Es el cerebro el final de la línea de comandos?

Un saludo y hasta la próxima!


No hay comentarios:

Publicar un comentario