Sin duda una de los productos más disruptivos en Internet en los últimos 5 años
han sido las redes sociales. El motivo es que permiten comunicarnos con
nuestros amigos/socios/clientes de una forma más cómoda que los métodos
existentes anteriormente, generalmente la mensajería instantánea o el email,
pues escribiendo en un sólo sitio nuestras actualizaciones de estado, que
pueden ser desde contar como nos va la vida, lo que estamos haciendo, poner un
link, una foto o un álbum de fotos (entre otras cosas). Anteriormente lo normal
era que cuando teníamos algo que comunicar a cierto número de nuestros
contactos les mandáramos un email, que es más intrusivo, sobre todo cuando
el receptor no está interesado en lo que estamos diciendo.
Las redes sociales también suelen permiten crear grupos con los que organizar
nuestros contactos y algunas permiten crear eventos para los cuales los
asistentes pueden confirmar o rechazar asistencia. Además, algunas redes
sociales (más notablemente Facebook) permiten a terceros desarrollar
aplicaciones que pueden interactuar con el usuario, que pueden ir desde
encuestas o juegos a cosas realmente útiles como generadores de estadísticas o
grafos de nuestra red de contactos.
Una de las primeras redes sociales que consiguieron popularidad en los Estados
Unidos fue MySpace, aunque en otros países triunfaron más otras redes como
Orkut. Sin embargo, la gran ganadora de las carreras de las redes sociales ha
sido sin duda Facebook. La razón por la que ha tenido tanto éxito no es obvia,
aunque sospecho que tiene que ver con que la página en sí era mucho más usable
que MySpace (que es un horror) y que tomaba la filosofía de que sólo
compartíamos con nuestros amigos, al contrario que MySpace donde por defecto se
compartía todo públicamente. No voy a incluír Twitter o Google Buzz como redes
social en este artículo, a pesar de su popularidad carecen de algunas de las
funcionalidades que hacen realmente útiles a las demás porque permiten sólo
publicar actualizaciones de estado o enlaces.
Pero las tecnologías de Internet siempre están en movimiento y en 2009 y 2010
están surgiendo un nuevo tipo de redes sociales, las redes sociales
distribuidas (también llamadas redes sociales federadas). La diferencia de
estas redes sociales con respecto a las tradicionales como Facebook o MySpace,
es que si en las segundas toda nuestra red de contactos, nuestras
actualizaciones de estado, grupos, y en resumen toda nuestra información las
mantiene el proveedor del servicio sin posibilidad de interconexión directa con
otras redes (salvo de forma indirecta a través de herramientas de terceros), en las distribuidas,
pueden existir varios proveedores distintos.
En el caso de las redes centralizadas normalmente estamos hablando de compañías
privadas y les interesa tener el mayor número de usuarios, evitando la
migración hacia otros proveedores. Sin embargo la mayoría de tecnologías de
Internet no funcionan con el modelo de proveedor único y servicios
incompatibles sino con otro modelo que hoy se suele denominar federado.
¿Cómo funciona este modelo? Pensemos en un ejemplo sencillo: el correo
electrónico. Aunque existen grandes proveedores de correo electrónico (GMail,
Hotmail, Yahoo Mail) todos esperamos que si pepito@gmail.com envíar un email a
manolita@hotmail.com el mensaje llegue perfectamente. Incluso podemos crear
nuestro propio servidor de correo "@pepitoperez.com" sin mucha dificultad (sólo
nos haría falta un servidor permanentemente conectado a Internet) y este
servidor seguirá comunicándose sin problemas con los "grandes" o con otros
servidores pequeños. Siguiendo con el ejemplo del email, a nadie se le
ocurriría usar hoy por hoy un servicio de correo "fistromail.com" que sólo
permitiera enviar mensajes a usuarios del mismo servicio. Sin embargo
exactamente así es como funcionan las redes sociales mayoritarias en 2010.
Las redes sociales distribuidas que han estado surgiendo en los últimos dos
años aspiran a crear tecnologías (protocolos e implementaciones)
que permitan, sin perder las funcionalidades existentes, crear redes sociales
constituidas por distintos proveedores pero que puedan comunicarse entre sí, de
modo que a efectos del usuario es como si fuera una gran red única. Volviendo al
ejemplo práctico, si imaginamos un futuro no muy lejano donde un protocolo se
comunicación (el "idioma" que hablarían los distintos proveedores de redes
sociales entre sí) se ha establecido como estándar (por ejemplo "OStatus" sobre
el que hablaremos después), podemos tener una cuenta en el servidor de red social
que proporcione Google, pongamos "pepito@googlesocial.com", pero también
podremos añadir como amigos a gente que tenga una cuenta en otros proveedores,
por ejemplo "manolita@msnsocial.com". Exactamente igual que el correo, como se
puede ver. El usuario no tendría que preocuparse de saber si manolita va a un
servidor u otro, sería el sistema el que se encargaría de forma transparente de
saber que el contacto "Manolita" tiene sus datos en msnsocial.com, y comunicar
con dicho servidor para recibir sus actualizaciones de estado, comentarios,
eventos, y enviarle a su vez los de Pepe. También, de nuevo como en el caso del
correo, Guillermo, que es un friki y además un paranoico de la privacidad,
puede instarse en un servidor que tiene en su casa, un software de red social
distribuida comunicando igualmente bien con el resto de sus contactos.
Si hemos entendido la explicación podremos ver que este nuevo tipo de redes
sociales tiene varias ventajas sobre el modelo centralizado, siendo la
principal que no dependemos de un proveedor único, de modo que si no nos gusta por
cualquier motivo (porque va muy lento, porque se vuelve malvado
y empieza a vender nuestros datos, por lo que sea), podemos cambiarnos a otro
sin perder nuestra red social. Además al existir varios proveedores para un
mismo servicio en el cual no pueden encerrar a los usuarios con
incompatibilidades es de esperar que aquellos con interés comercial en tener el
mayor número compitan entre sí ofreciendo mejoras reales como mayor velocidad,
más funcionalidades o interfaces de uso superiores (exactamente como compiten
los proveedores de webmail hoy en día.)
Imagino que ahora muchos de los que hayan leído ésto querrán probar ésto. La
mala noticia es que hoy por hoy el idílico panorama que he relatado no existe.
Sin embargo, se están produciendo avances rápidamente por varios frentes para
llegar a ello. Es de esperar que al igual que han habido dos "guerras de
navegadores" dentro de poco presenciemos una "guerra de redes sociales" donde
existan varias redes sociales interesantes, algunas centralizadas (Facebook) y
otras distribuidas pero usando distintos protocolos (es decir, no podrán hablar
entre sí) de la cual es probable que salga un ganador. Estas guerras, en mi
opinión, no son malas pues provocar que los productos involucrados mejoren a
pasos agigantados. Y no creo que las redes sociales centralizadas sobrevivan
a esta guerra salvo que se adapten al modelo distribuido.
De todas formas para hacernos una idea de como va la cosa, voy a poner algunas
de las tecnologías en desarrollo que hoy por hoy me parecen más interesantes,
pero antes es necesario hacer un pequeño inciso que intentaré mantener lo menos
técnico posible.
Protocolos e implementaciones
Cuando en Internet hablamos de protocolos, nos referimos a una forma de
comunicación entre dos máquinas para un fin concreto. Como un idioma que hablan
dos máquinas entre si.
Internet se puede considerar que no es más que un montón de máquinas hablando
protocolos entre sí para proporcionar distintas funcionalidades. Por ejemplo
cuando cargamos una página web en el navegador, nuestro PC está usando varios
protocolos para comunicarse con la máquina que le tiene que dar la web. El
protocolo que se usa para decir "dame esta página web", el de la WWW, se llama
HTTP. Pero HTTP es un protocolo "de alto nivel" lo que quiere decir que debajo
del mismo hay otros, muy especialmente el protocolo TCP/IP que es el más
importante de Internet (aunque hay otros protocolos de bajo nivel.) Para
entendernos, si estamos hablando con un amigo por teléfono, el teléfono sería
el "protocolo de bajo nivel" mientras que el lenguaje español sería el
protocolo de alto nivel; no es posible hablar a distancia sin el de teléfono,
de igual modo que aunque tengamos el teléfono no podemos comunicarnos con
nuestro amigo si no hablamos el mismo idioma.
Pero el protocolo en sí no es suficiente para que se establezca la
comunicación; del mismo modo que un idioma no sirve de nada si no hay al menos
dos personas que lo usen, un protocolo no sirve de nada si no hay un programa
que lo utilice. En el caso de cargar la página web los dos programas que lo
usan son, por nuestro lado, el navegador, y por el lado de la máquina que nos
da la web, el servidor web. Sin embargo al igual que no existen dos personas
iguales, no hay un único navegador (podemos usar Firefox, o Chrome o Explorer,
entre otros) ni un único servidor web (aunque esto nos suene menos están
Apache, Nginx, MSII, etc.) Podemos elegir diferentes programas, tanto nosotros
como la persona que tiene el servidor que nos da la página, pero como hablan el
mismo "idioma" (protocolo) todos pueden comunicarse entre sí. En este caso
decimos que existen distintas implementaciones del protocolo.
Esta parrafada que acabo de soltar era necesaria porque cuando hable de redes
sociales distribuidas, aunque nosotros como usuarios generalmente vamos a
acceder a las mismas a través de una página web, tiene que haber un protocolo
que comunique los distintos servidores que componen la red para que puedan
intercambiar las actualizaciones de los usuarios entre sí. Si no hablasen entre
si no serían muy distribuidas ¿verdad? Teniendo ya un protocolo de comunicación,
ya no será necesario que los programas - las implementaciones - sean iguales,
puede haber distintos programas creados por distintos programadores que a
través del protocolo hablen entre sí.
Pasemos a ver, ahora sí, las implementaciones y protocolos de redes sociales
distribuidas que me parecen más interesantes a día de hoy.
Diaspora
Protocolo: OStatus (ampliado)
Estado: inicial sin nada publicado
Diaspora tiene una historia interesante. Como muchas
otras grandes cosas en el mundo de la tecnología (Mac, Windows y Linux, por
ejemplo), ha surgido de la mente de unos chavales recién licenciados pero con
muchas ganas de hacer cosas. Diaspora pretende implementar todas las
funcionalidades que podemos esperar de una red social hoy en día (como
Facebook) pero de forma federada, siendo la implementación software libre (en
resumen muy resumido, con "las tripas a la vista" y por lo tanto facilitando
contribuciones de terceros), y con un énfasis muy importante en la seguridad de
las comunicaciones.
Los padres de Diáspora son cuatro programadores de la universidad de Nueva York
que anunciaron con una serie de vídeos y textos su intención y crearon un
proyecto en Kickstarter, una web para conseguir
financiación a través de donaciones, con la intención de recaudar 10.000$ con
los que poder trabajar intensamente durante el verano para crear una primera
versión de su idea. La parte interesante es que su anuncio coincidió con una
oleada de indignación pública contra Facebook (en el sector freak de la
población, al menos) por hacer el enésimo cambio en sus políticas de privacidad
y sus opciones por defecto de modo que en lugar de los 10.000$ que querían a
día de hoy 17 de mayo llevan más de 170.000$. Con ese montón de dinero
posiblemente no sólo consigan trabajar durante el verano como querían, sino que
tendrán para vivir durante uno o dos años trabajando exclusivamente en el
proyecto, por lo que es de esperar que se produzca un buen resultado .
Quizás la parte más interesante de Diaspora, y la que podría hacer que sea la
solución que triunfe al final, es el interés público que ha causado; han
salido en el New York Times además de casi todos los blogs tecnológicos
grandes (Techcrunch, Boing Boing, Engadget, etc). Esto podría hacer que
cuando el proyecto sea usable por el usuario normal, consigan un número inicial
de usuarios interesante, algo extremadamente importante pues aparte de las
consideraciones técnicas las redes sociales son más interesantes cuanto más
gente tengan.
Los autores de Diaspora han dicho que quieren usar como protocolo OStatus, pero
trabajando con los autores del protocolo para ampliarlo y mejorarlo (por
ejemplo, imagino que querrán añadir cifrado fuerte en las comunicaciones.)
OneSocialWeb
Protocolo: XMPP (ampliado)
Estado: inicial con versiones alfa publicadas
OneSocialWeb es un proyecto creado por el grupo de I+D de Vodafone en el cual
están trabajando varios programadores a tiempo completo. El proyecto ya publicó
una versión de varias partes (el servidor, la interfaz web y alguna otra cosa),
aunque actualmente es una versión muy previa ("alfa") que todavía no hace mucho.
Como en el caso de Diaspora, su intención es lanzar una primera versión usable
para el final del verano. El código fuente de su trabajo también está disponible
como software libre, aunque ahora mismo no aceptan contribuciones externas
(salvo informes de fallos), algo que han prometido cambiar en el futuro.
El protocolo que usa OneSocialWeb es el XMPP, que es el mismo que usa el
sistema de mensajería Jabber (usado por Google Talk o el chat de Facebook,
entre otros), pero ampliándolo con una serie de extensiones para cosas como
actualizaciones de estado, solicitudes de seguimiento y demás, más propias de
las redes sociales.
Elgg
Protocolo: OStatus (aún no implementado)
Estado: producto completo pero no federado; comunicación federada en fase inicial
Elgg es interesante porque de los tres proyectos que comento
es el único que tiene una versión que podría considerarse terminada (aunque lo
siguen mejorando) implementando casi todas las características que se pueden
esperar de una red social (perfiles, flujos de actividad, microblogging,
páginas, widgets, grupos, fotos, etc). Además permite usar plugins para añadir
nuevas funcionalidades, de los cuales hay una colección bastante extensa (más
de 800 ahora mismo).
El problema es que la implementación actual de Elgg no está
federada, por lo que si bien podremos crear usando el software (también libre) una red social
en una máquina nuestra, no podremos comunicar con otros servidores, con lo cual
lo que tendríamos es una especie de "minifacebook" que puede ser interesante
para empresas o centros educativos pero no como herramienta global de Internet.
Ellos mismos venden un servicio de hosting con un coste mensual para crear
nuestra mini red social fácilmente sin conocimientos técnicos.
Elgg está en esta lista, sin embargo, porque algunas personas están
implementando
sobre el código de Elgg la posibilidad de que los servidores puedan comunicarse
entre sí. El protocolo que se está usando para esto es OStatus, con lo cual
podrían comunicarse con servidores que lo implementen como Diaspora.