jueves, 14 de abril de 2011

Grandes errores de la humanidad. Hoy: Facebook

Voy a escribir una serie de posts sobre grandes errores de arquitectura que ha cometido la humanidad, como si la humanidad fuese una macroaplicación software en constante evolución.
Empiezo por Facebook, un poco por seguir con el hilo del post anterior, La Teoría de Enlaces.

Lo primero que tengo que decir es que el título de este post es sensacionalista. Lo sé, Facebook en su idea original era algo genial. El problema es que no se está usando bien y está camino de convertirse en el más sonado de los repetidos y fracasados intentos por crear un Internet paralelo, como ya lo intentara Compuserve, AOL, Infovía y alguno más.

Veréis, desde la aparición de los primeros chips, el mundo de la informática empezó a complicarse. Al principio todo lo relativo a los chips y los procesadores era complicadísimo. Pero con el tiempo, la humanidad fue creando herramientas (lenguajes de más alto nivel, p. ej.) para mitigar tanta complejidad. Los famosos wrappers que menciono en mi primer post La Evolución de las Especies Abstractas.

Cada vez que la cosa se complica creamos un nuevo wrapper que nos permite trabajar de forma mucho más rápida y cómoda, eliminando de paso la complejidad accidental. Estos wrappers nos dan una especie de productividad extra, gracias a que nos permiten pensar de forma cada vez más abstracta, sin preocuparse por las implementaciones concretas.
Visto en una gráfica sería algo así:




Todo esto sucede porque cada vez más, el mundo se digitaliza, se virtualiza, se convierte en software, y se necesitan herramientas para poder gestionar un mundo cada vez más complicado.
¿Y qué tiene esto que ver con Facebook, os estaréis preguntando ya?
Facebook, está tirando por la borda esa productividad extra al hacernos trabajar por duplicado a todos los desarrolladores web.
Desde que Facebook abrió sus puertas a las empresas, grupos, eventos, etc. se empezó a crear un Internet paralelo que además crecía con un terrible defecto: exceso de celo. No de los usuarios, si no de los creadores de Facebook. Lo que se va creando dentro de Facebook es inaccesible desde fuera. No se puede indexar, ni se puede enlazar, y por tanto no se puede medir objetivamente su calidad.
Pero el verdadero problema viene cuando un ingenuo novato con aires de visionario se lía a crear un espacio para su empresa dentro de Facebook. Y a éste le siguen unos pocos. Y Facebook te lo pone fácil para que hagas este tipo de cosas. Te proporciona un API estupendo para que hagas programas (juegos robatiempo, mayormente) dentro de Facebook, te crea el FQL, y ahora además, te mete un buscador, el Bing de Microsoft. Y entonces miles de webmasters y desarrolladores web novatos (y no tan novatos), arrastrados por la moda, se dedican a crear contenidos y programas para Facebook. Cada vez son más las empresas que tienen su página web y su espacio en Facebook. Incluso empiezo a ver empresas que sólo tienen espacio en Facebook. No tienen si quiera una pagina gratuita en los cientos de servicios como WordPress o Google Sites.
¿Cómo debemos interpretar esta tendencia? ¿Debemos olvidarnos entonces de comprar un dominio, contratar un hosting y hacer una página web estándar? ¿Nos olvidamos del J2EE, del .Net, del PHP, del HTML5, del Apache, del Tomcat, de Oracle, de MySQL, de PostgreSQL...?
¿No? Entonces, no queda más remedio, hay que duplicar contenidos: dentro y fuera de Facebook. Total para hacer lo mismo. Hala, todo el que quiera hacer algo online, a hacerlo por duplicado: la versión estándar y la versión Facebook. Toma pérdida de tiempo. Adiós a esa productividad extra de la que hablaba al principio:



Imaginad que todos los contables tuvieran que, porque se ha puesto de moda, meter todos sus apuntes contables en su software de toda la vida y además en otro que es suficientemente diferente como para que sea un incordio. Esta complejidad añadida, es lo que lo los expertos llaman complejidad accidental, es decir, la complejidad que nosotros añadimos por patanes.

A ver señores: que ya tenemos un modelo (mejor o peor) para construir contenidos y aplicaciones online y se llama HTML (+javascript), que lo definen y redefinen las empresas más representativas del mundo online. Ya tenemos unas pocas de formas de distribuir contenidos como RSS o ATOM ¿O es que Facebook sabe más sobre como crear y distribuir contenido online que la W3C?

Cada día veo a más y más gente haciendo todo tipo de contenidos y aplicaciones para Facebook. Y pienso: ¡qué desperdicio de tiempo! Si lo dedicasen a extender Jquery, o migrar a HTML5 sus webs, o a potenciar OpenID -o en definitiva, contribuir a cualquiera de los miles y miles de proyectos de código libre- estaríamos mejorando esos wrappers y con ello la productividad de todos nosotros.
Y como Facebook se empeña en mantenerse cerrado, no podemos utilizar wrappers (como OpenSocial) que nos permitan desarrollar cosas para Facebook sin estar condenados a registrarnos y aprender a usar sus herramientas.

Resumiendo, no hay wrapper para abstraerse de Facebook y hay que hacerlo todo por duplicado. Menudo lastre para el desarrollo del mundo online. Esto, junto con otro lastre que son las aplicaciones para móviles, va a provocar la segunda ola de la burbuja .com -con su posterior crack.
Hablaré de esto más en detalle en breve.

Así que, por favor, empresas del mundo entero, gestionad vuestros contenido en un sólo sitio: fuera de Facebook, dentro de ese gran proyecto mundial llamado WWW, donde sólo hay una forma de publicar (HTML) con miles de herramientas para ello. Donde hay millones de personas, muchas más que en Facebook. Donde la transparencia manda, y la fuerza de los enlaces dictamina sin apenas margen de error, quiénes son los mejores.
Si es que además, cada vez se empieza oír hablar más del Social Break-up, de lo odioso que es sentarte a ver qué es de tus amigos, y no ver más que spam autorizado. Y es que cuando estoy de charla con mis amigos, no quiero que vengan a venderme nada.

Dejad Facebook para vuestro uso personal, para estar en contacto con otras personas. Y que las empresas, lo único que puedan poner en Facebook (y en cualquier red social) sean enlaces a sus páginas/aplicaciones web para no duplicar contenidos.
Si lo hacemos, a Facebook no le quedará más remedio que abrirse a los buscadores, y quien sabe, quizá el HTML6 incluya etiquetas, objetos, y métodos nuevos para acceder a tu lista de amigos, perfil público, y resto de contenidos sociales, incluidos los de Facebook.