Llevo desde principios de mes dándole al F5 en los foros de BandaAncha y preguntando por IRC a ver si algún alma caritativa soltaba una de esas codiciadas invitaciones. Anoche, me entró un correo a mi cuenta de Hotmail. Era de un colega de la universidad. Asunto: Google Email Invite.
Casi tiro el colacao encima del teclado. Se acabó tener que entrar cada tres días a borrar correos con adjuntos de 100 KB para no bloquear la bandeja. Se acabó el maldito cartelito de "Su buzón ha excedido el límite de 2MB". Ha tardado un par de semanas, pero ya estoy dentro de la beta de Gmail.
Un salto cuántico en almacenamiento
Lo de Google no tiene sentido. Cuando lanzaron la noticia el 1 de abril, muchos pensamos que era la típica broma del April Fools' Day. ¿1 Gigabyte? ¿1024 Megabytes enteros, gratis, por la cara? Mi disco duro principal de la torre, un Seagate Barracuda que compré hace un par de años, tiene 40GB. Están regalando el equivalente a una partición entera solo para guardar texto y fotos que nos mandamos en cadena.
Hasta ahora, tenías dos opciones. O bien te resignabas a la interfaz lentísima de Hotmail o Yahoo, donde leer tres correos seguidos implicaba ver la animación del logo de Internet Explorer tropecientas veces... o te configurabas el POP3 en Outlook Express o Mutt, bajándote los correos al PC y rezando para que tu conexión de 256kbps de Telefónica no se cortase a mitad de un adjunto medianamente grande. Yo mismo tenía un cronjob con un script en Perl que se conectaba por POP3 y me hacía un volcado de los correos a mi disco local para luego purgarlos del servidor. Todo muy manual y rudimentario.
Con 1GB, la idea de "borrar correos" desaparece. El enfoque de Google es que lo archives todo y uses su buscador integrado para encontrar cualquier cosa. Te obligan a cambiar el chip: ya no ordenas en docenas de carpetitas jerárquicas, simplemente buscas.
La verdadera revolución: DHTML y XMLHTTP
Pero lo que me tiene más loco no es el espacio, es cómo está montada la interfaz. No recarga la página entera cada vez que haces clic en un correo o abres una carpeta. Es rapidísimo.
Me he puesto a cacharrear con el código fuente usando la consola de extensiones del nuevo Mozilla Firefox 0.8, y es magia negra. Están usando un objeto de Javascript llamado XMLHttpRequest (que creo que Microsoft inventó para IE5 hace años, pero al que casi nadie hacía ni caso) para pedir datos en segundo plano al servidor y actualizar el DOM al vuelo usando puro DHTML.
He intentado replicarlo en local con el servidor Apache 1.3 que tengo en mi máquina y la idea básica es algo así. Un pequeño ejemplo práctico que he estado probando:
// La magia detrás de la interfaz que no recarga
var http_request = false;
// Instanciamos el objeto dependiendo del navegador
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest(); // Para Mozilla, Safari...
} else if (window.ActiveXObject) {
http_request = new ActiveXObject("Microsoft.XMLHTTP"); // Para IE6
}
http_request.onreadystatechange = function() {
// Si la petición ha terminado y el servidor responde 200 OK
if (http_request.readyState == 4 && http_request.status == 200) {
document.getElementById('bandeja_entrada').innerHTML = http_request.responseText;
}
};
// Llamamos al servidor sin refrescar
http_request.open('GET', 'leer_correos.php', true);
http_request.send(null);
Es una genialidad técnica. Ahora tienes la experiencia fluida de una aplicación de escritorio, pero viviendo directamente en el navegador.
Qué nos espera a partir de ahora
Sinceramente, no sé cómo Google piensa rentabilizar esto a largo plazo. Dar 1GB a millones de usuarios (cuando abran la beta a todo el mundo y quiten las invitaciones) va a requerir unas granjas de servidores que no me quiero ni imaginar. Supongo que escanearán el texto de los correos para poner anuncios de AdWords a un lado. No me parece mal trato si a cambio me dan esta bestialidad de servicio que no se cuelga cada dos por tres.
Lo que sí tengo claro es que esto va a cambiar cómo hacemos webs. Si puedes cargar datos sin refrescar la página de esta forma tan estable, se abre un mundo nuevo para las aplicaciones de gestión. Hoy es el correo electrónico, pero mañana podríamos tener procesadores de texto o calendarios enteros funcionando así. De momento, voy a seguir trasteando con este código a ver si puedo aplicarlo al panel de administración en el que estoy trabajando, si es que IE6 me deja en paz y no me tira un pantallazo de error de script.