Los usuarios de computador necesitan conocer cada vez menos la manera como un computador funciona. Si las tripas de la máquina se vuelven cada día más invisible, esto se debe a que el usuario puede ahora controlar el computador usando interfaces gráficas avanzadas. Estas interfaces permiten controlar el computador usando imagenes que representan objetos fisicos (botones, ventanas, etc).

Comparemos esto con lo que había hace un par de decadas. En ese entonces, el usuario controlaba el computador escribiendo comandos que la máquina ejecutaba. Pienso por ejemplo en el Commodore 64 en el cual para cargar y ejecutar el primer programa de un diskette había que escribir:


load "*", 8, 1

… algo que parecía (y parece) brujería.

En los primeros PCs, que usaban el sistema operativo DOS, los usuarios tambien tenían que escribir comandos. También había que entender, más que ahora, detalles sobre los archivos y los directorios.

Aunque uno puede encontrar primitivas esas interfaces, algo bueno que tenían era que exponían el computador como lo que es: una máquina programable. El commodore 64 por ejemplo venía con un interprete de basic a disposición del usuario apenas éste prendía el computador. A punta de jugar con los diferentes comandos que aparecían en el manual, un niño podía comenzar a intentar cambiar una o dos cosas y luego a leer mas a fondo los manuales para entender como hacer cosas mas avanzadas. Creo que gracias a eso, miles de niños y jovenes aprendieron los rudimentos de la programación. Todo a punta de “cacharrear” la maquina, urgando aquí y alla. Eran máquinas que no intentaban esconder gran cosa, todo lo opuesto a, digamos, el iPhone.

La claridad que tenía la gente del computador como una máquina programable se veía reflejada también en los libros. Algo chevere por ejemplo erán los libros que contenian juegos en basic para que los niños los copiaran en sus commodores 64. Creo que ya no existe nada parecido. Ahora la noción de programador y usuario están claramente separadas.

El mundo del “cacharreo” informatico hoy en día se ha desplazado (como todo) de los computadores personales a la web. Debe haber mucha gente que a aprendido a programar siguiendo el siguiente camino: copiar un manojo de HTML para crear una página web. Cambiar una o dos cosas. Aprender un poco mas de HTML y finalmente aprender PHP para poder generar páginas dinámicas.

P.S.: Acabo de leer este excelente artículo de Cory Doctorow sobre el iPad. Es relacionado con los temas que toca este post.

  • Share/Bookmark
 

twitter

Personas como Dave Winer creen que definitivamente hay algo en twitter que vale la pena pero que twitter, tal como lo conocemos, será reemplazado en el corto o mediano plazo por algo “parecido pero mejor”. Una de las razones por las que Winer considera que twitter no puede seguir siendo el sistema de “twitting” es su arquitectura centralizada (mas bien anti-web). Otras personas consideran que es demasiado limitado y que le faltan X, Y y Z funcionalidades.

Yo tengo la sospecha de que Twitter va a seguir siendo el sistema que es, con muy pocas variaciones, y que no será reemplazado por nada “mejor” durante un buen tiempo. Mi sentimiento es que twitter está en un punto perfecto de simplicidad, un punto tal que el usuario le perdonará inconcientemente cualquier limitación siempre y cuando siga siendo tan facil de usar.

Me ha gustado la manera como ha evolucionado twitter. Practicamente solo ha añadido al sistema conceptos que ya habian surgido de manera espontanea entre los usuarios, como la referencia a otro usuario (usando “@”) o el concepto de “retweet” (“RT”).

Otra cosa buena de twitter es que a pesar de ser centralizado, ha ofrecido interfaces de programación tremendamente sencillas para construir aplicaciones independientes sobre twitter, lo cual ha dado lugar a un gran ecosistema alrededor que va a hacer dificil de hacer migrar a otro sistema.

En fin, twitter es un ejemplo de como la simplicidad y las APIs abiertas pagan.

  • Share/Bookmark
 

Sobre la metida de pata de Buzz

Google metió la pata en su lanzamiento de Buzz (una especie de servicio de mensajeria estilo twitter): los contactos mas “cercanos” de un usuario quedaban visibles para todos justo después de activar la cuenta y hasta no cambiar las preferencias para evitarlo. Esta información hace parte de lo que mucha gente considera como información personal y es dificil entender como en Google pudieron decidir que era una buena idea exponerla de esa manera. Siendo malicioso uno podría pensar que es un cálculo acertado de la parte de Google, a la mayoría de la gente esto le parece un detalle sin importancia y en cambio la conveniencia de tener una “red social” estilo facebook/twitter armada sin ningún esfuerzo hace el servicio atractivo inmediatamente. Digo “siendo malicioso”, pero en realidad ese sería el juicio que todo el mundo haría de tratarse de Microsoft y no de Google. Desconfiemos.

  • Share/Bookmark
 

Dos herramientas recomendadas

Hay dos herramientas que uso desde un buen tiempo para organizar mis cosas. La primera es simplemente un wiki, usado como una libreta de notas. No deja de ser curioso escribir documentos de uso personal usando una herramienta concebida para escribir documentos abiertos de manera colaborativa. Funciona muy bien, es como usar una libreta de notas con la ventaja de poder re-escribir cualquier parte. El software que uso es dokuwiki.

La segunda herramienta es un programa para administrar listas de cosas por hacer (to-do lists). Inicialmente intenté usar un plugin para dokuwiki que sirve para editar to-do lists pero me parece que la interfaz de edicion de texto de un wiki no es optima para llevar to-do lists. Ahora estoy usando mytinytodo que siendo bastante minimalista es perfecto para mis necesidades.

  • Share/Bookmark
 

Menos es más

Manuel Cerón opina en mi post anterior que la calidad de las interfaces de usuario de las aplicaciones en la web no es aceptable. Para Manuel, estas interfaces no son ni siquiera comparable a las que tenían las aplicaciones de Windows 95. Siguiendo esta idea, lo ideal sería tener interfaces avanzadas unidas a las ventajas de la web (ubicuidad, propagación automática de mejoras, etc). La popularidad de las aplicaciones web hoy en día se explicaría no gracias a su ergonomía sino a pesar de carecer de ella.

Esta es mas o menos la misma idea que motivó la creación de los applets de java hace ya cerca de 15 años y que está detrás de productos como silverlilght o flash. El objetivo mas o menos explícito de estas tecnologįas es reemplazar a la web como plataforma de aplicaciones por algo igual de conveniente pero con mejores interfaces de usuario.

Creo que calificar las interfaces de usuario en la web de pobres es algo simplista. La razón es que para una gran categoría de aplicaciones, tal vez la mayoría, las interfaces web no son solo suficientes sino óptimas. Esto puede parecer raro, así que intentaré explicar por qué lo creo así.

Las aplicaciones web estan restringidas a un pequeño numero de elementos de interacción con el usuario y a su comportamiento estándar. Basicamente, texto, imágenes, enlaces, campos de texto, menus y botones. Por otro lado, las tecnologías generales de creación de interfaces de usuario permiten crear virtualmente cualquier tipo de componente visual y  de interacción imaginable y frecuentemente incluyen un gran numero de componentes predefinidos mas o menos sofisticados.

En teoría si una tecnología “puede lo más” también “puede lo menos” y deberia preferirse. La realidad es mas complicada. Las interfaces HTML no solo permiten hacer casi todo lo que necesitan la mayor parte de aplicaciones gráficas sino que además su sencillez tiene beneficios secundarios como el que:

  • La curva de aprendizaje para usarlas sea muy baja.  No se requiere entender muchos conceptos.
  • Las aplicaciones sean mas robustas.

Por supuesto, hay categorias de aplicaciones  para las cuales HTML no es suficiente. Creo que esta categoría de aplicaciones se restringe principalmente a las aplicaciones cuya función principal es interpretar pequeños gestos del usuario como operaciones de edición. Me refiero a programas como editores de texto o  programas de edicion gráfica. Los juegos son otra categoría que también escapa al rango que cubre HTML, pero los juegos son una categoria de software especial en muchos otros aspectos.

Muchas de las limitaciones de la web como plataforma de aplicaciones están desapareciendo a medida que la velocidad de las implementaciones javascript mejora y que el soporte a nuevas maneras de enriquecer las interfaces web se hacen comunes entre los navegadores. Sin embargo creo que la continuidad del exito de la web como plataforma de desarrollo de aplicaciones ni siquiera depende de esas mejoras. A veces, menos es más.

  • Share/Bookmark
 

Los programas de computadorse se escriben para una plataforma determinada: windows, macintosh, linux, la web, etc. Plataformas como Windows y Mac OS están bajo el control total de sus fabricantes. Esto hace que los desarrolladores de software y los usuarios que deciden usar estas plataformas se ponen a si mismos en una situación de dependencia frente a aquellos que las controlan.

Una de las grandes ventajas de la web como plataforma de software es entonces el hecho de que no hay un único amo que la controle. La web es abierta, las reglas del juego son las mismas para todos. Si Microsoft decidiera cobrar por el uso de Internet Explorer, los usuarios podrían pasarse facilmente a Firefox. Si gnu/linux resulta un ambiente dificil para programar aplicaciones web, los desarrolladores pueden desarrollar en Macintosh o en cualquier otro sistema. Nadie depende de nadie. Todos dependen del respeto a las reglas de base, que son públicas, sencillas y estables. Aunque hay muchas otras ventajas que hacen de la web una plataforma atractiva para desarrollar software, es este aspecto social el que en mi opinión asegurará su ascenso como la principal plataforma de software en el mediano plazo.

Es por esto que la fulgurante popularidad del iPhone y el AppStore son en mi opinión un accidente histórico que no durará mucho. El control de Apple sobre el iPhone es aun mas tiránico que el que Microsoft nunca tuvo sobre Windows: Apple controla no solo cómo funciona la plataforma sino que aplicaciones se pueden escribir para ella, la única tienda en la que se pueden vender y las únicas herramientas con las que se pueden desarrollar. Solo la singular excelencia técnica del iPhone y la enorme distancia con competidores mas abiertos le han dado al iPhone el exito que tiene como plataforma de software. Pero es seguro que los competidores llegaran.

La necesidad de un aparato de ese tamaño, capaz de correr aplicaciones sofisticadas y con una buena calidad gráfica existe, eso es claro. Yo apostaría por el Google Nexus o algun clon basado en aplicaciones web. En su forma actual, el iPhone está condenado a volver al nicho de lujo de donde solo escapan los productos de Apple de vez en cuando.

  • Share/Bookmark