Prefacio
Esta es la traducción del artículo How Web 2.0 threatens software users' freedoms. Cuyo autor es Alejandro Forero Cuervo.
Quien tradujo la mayor parte del artículo fue Arhuaco :-).
N. T.
El artículo diferencia los términos "proprietary" (traducido como "privativo") y "private" (traducido como "privado"). Las primeras aplicaciones son aquellas distribuidas bajo una licencia no libre y las segundas son aquellas que no son distribuidas (en cuyo caso no hay licencia que aplique).
Se tradujo lock-in como "dependencia del proveedor"...
Introducción
La creciente popularidad de las aplicaciones web suele ser vista por la comunidad del software libre como una excelente oportunidad para acelerar la adopción de software libre, al lograr que empresas de software privativo como Microsoft o Apple pierdan control sobre la industria, y para lograr un espíritu de colaboración entre las personas, muy cercano a sus ideales. En mi opinión este cambio hacia aplicaciones web, en la forma en que se ha venido dando, representa un peligro importante para las libertades de los usuarios de software.
El crecimiento de las aplicaciones web
Con el término «aplicaciones basadas en web» me refiero a la arquitectura de software en la que la aplicación está almacenada en un servidor web junto con casi toda la información del usuario. A medida que más y más aplicaciones se diseñan de esta manera, el ambiente web se convierte en el "sistema operativo", los fundamentos que proveen las abstracciones de las cuales depende el software para su ejecución. Este "ambiente web" comprende todo el conjunto de lenguajes y formatos que gobiernan la web, ambos, de lado del cliente, con estándares tales como CSS o JS, así como en el servidor con lenguajes como PHP, ASP, Perl, Ruby, etc. Gracias a la parte del cliente, el sistema operativo del computador del usuario se vuelve irrelevante.
En sus comienzos, la lógica de la programación era ejecutada casi por completo en el servidor y el conjunto de componentes que las aplicaciones podían usar era muy limitado. Lo cual hizo que fuese una alternativa muy pobre frente a las aplicaciones altamente interactivas, o aquellas con sofisticadas interfaces de usuario, para las cuales las aplicaciones cliente/servidor con componentes corriendo directamente en el computador cliente, eran una mejor alternativa.
Las recientes mejoras en las implementaciones de los lenguajes de scripting en los navegadores web más populares han permitido que las aplicaciones web corrieran lógica de programación relativamente compleja directamente en el computador del usuario. Lo cual permite que las aplicaciones web puedan ofrecer respuestas interactivas y sean usables. A pesar de que aún persisten algunas incompatibilidades entre navegadores, la web se ha convertido en un paradigma popular para el desarrollo de software para gran cantidad de tipos de aplicaciones. La antigua visión de DHTML se está llevando a cabo finalmente, aunque ahora es llamada AJAX. La web ha dejado de ser una colección de documentos estáticos para convertirse en en un conjunto de aplicaciones inteligentes para producir y consumir información, al cual se puede acceder universalmente.
La gente ha comenzado a dejar de lado las aplicaciones locales en favor de las alternativas basadas en web. Incluso, una gran cantidad de compañías de software se está moviendo en esta dirección. Algunos ejemplos de aplicaciones populares y/o complejas pululan: Google Maps, Google Docs & Spreadsheets, YouTube, Flickr, del.icio.us, Blogger, Last.fm, y cualquier aplicación web-mail. Algunos han ido más allá para construir "shells" enteros como software basado en web, que son llamadas usualmente «webtops». De nuevo, los ejemplos son bastantes.
La era entre el final de los PC y el advenimiento del mundo en línea ha concluido, todo gracias a las aplicaciones basadas en web.
Optimismo por la web
Es natural sentirse optimista por el posicionamiento de la web como la plataforma dominante para el desarrollo de aplicaciones.
Ayudar para que las migraciones migren a GNU/Linux es parte de mi trabajo en Novell.
Para la migración de escritorio, uno de los primeros pasos es pensar en como algunas aplicaciones específicas requeridas por la organización pueden ser ejecutadas dentro de GNU/Linux. El uso de aplicaciones web obviamente simplifica el proceso (mientras no requieran extensiones privativas disponibles sólo para Internet Explorer). Para las aplicaciones corrientes toca buscar la forma de correrlas en GNU/Linux (con una versión para GNU/Linux del proveedor o usando alguna forma de emulación) o buscando una aplicación alternativa. Las dos aproximaciones son complicadas. La naturaleza de las aplicaciones web ha hecho que múltiples actores se pongan de acuerdo en protocolos que por ser "abiertos", han permitido romper la dependencia de los desarrolladores con respecto a los sistemas operativos y proveedores. Su creciente popularidad hace que cambiar a GNU/Linux en el escritorio, para algunos usuarios como para organizaciones, sea más fácil.
Aun más, la mayor parte de la infraestructura de Internet ha sido desarrollada como software libre: Bind, Apache, Perl, PHP y muchos otros programas libres que son el corazón de lo que llamamos "la web". En único conjunto de programas privativos que todavía es relevante para la web, los navegadores, ya no están en la posición dominante en la que estaban, ahora que Firefox y otros navegadores libres han ganado participación en el mercado.
La "revolución del internet" o "revolución digital" es, por supuesto, algo muy bueno. Promueve formas muy interesantes de organización social y creación de información. Si tuviera que escoger una palabra para describirlo, usaría colaboración. Compartir y democracia también me suenan.
Los usuarios que se convierten en productores activos en lugar de consumidores pasivos, todo esto en el corazón del movimiento web 2.0. Esta revolución está en sintonía con las creencias básicas de la comunidad de software libre. Las posibilidades son muy llamativas.
Todos estos factores pueden explicar porqué parece haber la mentalidad generalizada de que usar un navegador libre usando un sistema operativo libre para conectarse a un sitio remoto, aun siendo este controlado por un tercero que usa software privativo, es mucho mejor que usar una aplicación privativa instalada localmente (o usando el modelo cliente/servidor).
Los usuarios de la web pierden el control de sus datos
Los promotores del software libre deben notar que al usar un navegador de código libre corriendo en un sistema operativo libre para conectarse a un servidor remoto que corre una aplicación privativa y guarda los datos del usuario, están entregando su libertad, como si corrieran programas privativos instalados localmente.
La economía actual basada en publicidad que rodea la web ofrece pocos incentivos para que los desarrolladores liberen sus aplicaciones como software libre para que otros las alojen en sus servidores. La mayor parte de los desarrolladores prefiere proveer el ancho de banda y el almacenamiento, y permitir que los habitantes de Internet usen sus aplicaciones sin costo, vendiendo espacio para publicidad a redes como la de Yahoo o la de Google. Este es el caso de virtualmente todas las aplicaciones web populares: si se hace una lista de los sitios web más visitados, uno encuentra que pocos están en software libre (Sólo puedo pensar en Wikipedia y Slashdot). La mayoría no usan software privativo sino privado (software que ni siquiera es distribuido). El hecho de que la mayoría de ellos fueron desarrollados usando software libre (y algunos incluso publican software libre), no es relevante si nos preocupamos por la libertad de los usuarios finales. No se puede negar que de todas maneras, este es un triunfo para las herramientas de desarrollo libres.
Los usuarios de aplicaciones privativas instaladas localmente pueden usar herramientas externas como depuradores, sniffers o firewalls para observar y de alguna forma controlar su comportamiento. Por ejemplo, los usuarios pueden hacer que no sea posible que una aplicación establezca conexiones de red y así se pueden asegurar de que sus datos permanecen privados. Aunque no es fácil, los usuarios pueden también modificar el código de máquina para alterar el comportamiento de estos programas. Incluso, si el proveedor termina la licencia del usuario o hace que el programa deje de funcionar en cierta fecha, los usuarios todavía tienen sus archivos y pueden, en teoría, hacer ingeniería inversa de los formatos de los archivos y extraer la información ahí guardada. Esta situación dista de ser la ideal por la complejidad inherente de los procesos involucrados.
Con la web (así como con ciertos esquemas de DRM, pero este es un tema para otro día), por otro lado, estos procesos no son tan complejos ni caros, sino que son imposibles de ejecutar.
Un proveedor web puede apagar sus servidores, y con ellos desaparecer los datos del usuario, en cualquier momento. O puede publicar abiertamente la información privada de los usuarios, sin importar las politicas de privacidad y las licencias de usuario final.
Aun más, los desarrolladores actualmente libran batallas contra redes como las de Yahoo!, Google y Microsoft, que proveen un gran conjunto de servicios integrados.
Basta con tener una cuenta de Google y se podrán usar todos los servidos de Google. Usando Gmail podrás usar Gtalk, ya que está a sólo un clic de distancia. Incluso, usa sólo búsquedas de Google y verás que todos sus servicios aparecen publicitados en posiciones privilegiadas. Aunque parte de esta integración puede beneficiar a algunos usuarios, obviamente excluye a los desarrolladores de software libre (de hecho a todos los desarrolladores fuera de las grandes ligas). Esta es una forma preocupante de lock-in.
Otra gran desventaja que las aplicaciones de software libre tienen ahora con respecto a las privativas es que los potenciales usuarios necesitan de un servidor web para correrlas. Es mucho más fácil y conveniente para la mayoría de usuarios de Internet usar instalaciones de aplicaciones financiadas por publicidad, y controladas por terceras personas, que administrar un servidor propio.
Evitando el problema
Entonces, ¿Qué debe hacer un promotor de software libre?
Debo decir que soy moderadamente optimista con respecto al estado actual de las cosas. Sin importar el problema que trato en este artículo, la comunidad de software libre está prosperando como nunca antes. Creo que para la mayoría de las clases de aplicaciones web este problema será superado.
Sin embargo, hoy, es un problema importante. Incluso yo, que creo firmemente en la importancia de usar software libre, soy un usuario activo de Flickr, last.fm, Google y del.icio.us. No se puede negar que hay pocas aplicaciones basadas en web con la calidad para competir con los mejores sitios web. Incluso, si existieran estas aplicaciones, todavía tendríamos los problemas de lock-in del proveedor, y todavía haría falta que los usuarios administraran sus servidores.
Se debe notar que el problema va más allá de usar software libre en lugar de aplicaciones web privativas o privadas. Las dos siguientes condiciones deben cumplirse para que un usuario mantenga el control de sus propios datos:
- Una aplicación web debería permitir que el usuario exporte todos sus datos a un archivo que se pueda bajar. Por supuesto, esto sólo tiene sentido si el usuario no es el administrador del servidor en el que corre la aplicación (ya que si el usuario es el administrador, debería poder exportar todos los datos de la aplicación). Si usas una aplicación alojada por un tercero, —sin importar si esta aplicación es libre, privativa o privada–, dependerás de este tercero para mantener tus datos disponibles. Ellos deberían permitirte hacer backups periódicos de tus datos. Una forma de lograr esto es tener una API estable y documentada que los usuarios puedan usar para bajar sus datos.
- La aplicación web debería ser libre o, por lo menos, deberían existir programas libres capaces de leer los datos exportados. Incluso si se tiene un formato semánticamente rico, el archivo a bajar con todos los datos del usuario solamente podrá ser será útil si éste puede, eh, usarlos. Si usas una aplicación web alojada por un tercero, guardando backups periódicos, y el proveedor termina el servicio, querrás seguir teniendo la funcionalidad que éste tercero ofrecía.
Ante todo, es importante que los usuarios adquieran conciencia del problema que existe al usar sitios que no le permiten tener el control de su propia información (porque usan software privativo o porque son controlados por terceros que no dejan que los usuarios descarguen su información). Aunque el espíritu de muchos de los sitios que Web 2.0 puede ser similar al de la comunidad de software libre, en la mayoría de los casos los usuarios están renunciando a sus derechos y dándole a los administradores más poder del que merecen. Los usuarios deberían tener control total del software que se ejecuta en estos sitios web, especialmente cuando su éxito depende directamente del contenido que ellos producen.
Aplicaciones libres basadas en web
Hago un llamado para que los desarrolladores de software libre nos ayuden a producir aplicaciones web de alta calidad. Adopten el modelo de sitios alimentados por usuarios, y el modelo de sitios basados en AJAX. Ayudémos a hacer que usar software libre sea una alternativa viable para crear y compartir información en línea.
Los usuarios de las aplicaciones libres tendrían que instalar los programas en sus propios servidores. En un mundo ideal, todos los usuarios de Internet tendrían sus propios servidores con IPs fijas. Todavía estamos lejos de ese ideal. La falta de direcciones IPv4 creo que es la distinción artificial entre servidores y escritorio y la complejidad actual que está asociada con el alojamiento de aplicaciones web. Aunque, eso es un tema para otro día. Pero ya estamos cerca: muchos usuarios de Internet tienen amigos que pueden correr aplicaciones web en un servidor controlado por ellos. Y las cosas definitivamente están mejorando, pronto todos tendrán uno o dos servidores. Por el momento, se debe diseñar las aplicaciones web para incentivar a los administradores de modo que sus instalaciones puedan ser usadas por sus amigos. Y claro, dejar que los usuarios descarguen sus datos para que puedan migrar a otras instalaciones de la aplicación.
Ayuda a diseñar aplicaciones que todos puedan instalar. Modificar archivos de configuración, correr comandos de UNIX y reiniciar demonios es intimidante. Lo ideal sería tener un sólo programa servidor que el usuario descargue y configure por medio de una interfaz web. La configuración debería ser muy simple : escribir un usuario, una clave, y la ubicación de los directorios públicos.
Esto debería encargarse de configurar los DNSs, tal vez usando un servicio de DNS dinámico de otro proveedor, o registrando un dominio a nombre del usuario (lo que requeriría el número de una tarjeta de crédito seguramente). Luego, el usuario debería poder instalar aplicaciones web hechas por otras personas en su servidor con un solo clic. No hay razón para que alguien capaz de crear una cuenta en MySpace no pueda tampoco convertir su escritorio en un servidor capaz de ejecutar servidores de aplicaciones web.
Usar OpenID. Y hacer que la aplicación escale usando el modelo pre-renderizado. Ah, y también toca considerar el uso de la licencia AGPL. Una vez que haya hecho que tu aplicación de software libre de gran calidad, ¿Qué haría que alguien haga su propia versión, adicionando una funcionalidad importante, alojándola para los usuarios finales, patrocinado por propaganda, sin entregar los fuentes? Estaríamos de vuelta al primer cuadro.
Como las aplicaciones de software libre estarán instaladas en servidores controlados por personas que para nada están relacionadas, en lugar de estar sobre una base de datos en un sólo servidor central, los datos de la aplicación, como un todo, estarán distribuidos en un gran arreglo de servidores. Se necesita diseñar servicios WEB basados en XML para sincronizar los datos en las múltiples instancias. Por ejemplo, para tener una alternativa libre a del.icio.us o Flickr, los usuarios tendrían que añadir contactos que "viven" en otro servidor y permitirles intercambiar enlaces o imágenes sin importar que estén en distinto servidor. El resultado será similar al de las redes P2P, pero en este caso un peer sería en un servidor con conexión permanente y disponible, guardando los
datos del dueño del servidor y de sus amigos. Creo que esto funcionaría bien.
Hay, como de costumbre, algunos tipos de aplicaciones con las que la comunidad de software libre difícilmente podría competir con los desarrolladores de software privativo. Me refiero a los problemas que requieren bases de datos centralizadas y recursos para los que las redes distribuidas no funcionarían, como búsquedas. Debo decir que no sé que hacer en este caso. Tal vez tengamos que usar las aplicaciones privativas por siempre. I también debo admitir que no sé que hacer con esta nueva forma de dependencia del proveedor.(N.T. traducción de lock-in).
Agradecimientos
Para terminar, me gustaría agradecer a Sergio Garcia, Jorge Arias, Nelson Castillo, Daniel Coletti, Alexandre Oliva y a Javier Moreno por los valiosos comentarios que desencadenaron en este documento.
Actualización 2007-01-11: Hice algunos cambios sugeridos por Alexandre Oliva, principalmente para resaltar la importancia de poder exportar los datos del usuario de una aplicación web y que el problema va más allá de usar aplicaciones privativas y privadas.
Last update: 2007-05-26 (Rev 11387)






