Ajax y otros remiendos

FrankensteinYa tenemos otra palabrita para entretenernos: Ajax. Como suele ocurrir, es casi un acrónimo, esta vez de asynchronous JavaScript and XML, nada menos. Hablando en plata: un remiendo de códigos para las aplicaciones de nueva generación en la novísima Web 2.0. La verdad es que en internet siempre se ha trabajado con remiendos de HTML (regenerado como XHTML), CSS, JavaScript, PHP, XML, y otros tantos más. Esto se parece al monstruo de Frankenstein. A veces sospecho que estas cosas se las inventan los programadores para tener más trabajo, igual que los virus informáticos los crean las empresas de antivirus, y los automóviles los fabrican las funerarias. Pero Ajax ha calado, y ahora todo sitio o servicio web que se precie tiene que incluirlo entre sus remiendos de código, lo que también me recuerda a un collage, dicho en fino francés.

Toda esta variedad de códigos y lenguajes empleados en la Red puede desanimar al curioso que quiera entrometerse y crear una página web profesional o en condiciones. ¿Cuándo se va a crear un lenguaje para internet que abarque todas sus posibilidades? Algo así como el famoso lenguaje C, que siempre ha servido tanto para un roto como para un descosido. Pues de momento, esto parece lejos de nuestras perspectivas, porque a las tecnologías de internet le quedan todavía mucho camino que recorrer. Pero, puestos a imaginarnos el futuro, ¿contará la Red con este lenguaje para todo dentro de, por ejemplo, veinte años? ¡Ojalá la realidad (incluso la virtual) fuera tan sencilla! Y es que cuando todo parezca estable y conseguido, saltará otra liebre, y veremos a todos los programadores corriendo tras ella. Parece que este es el destino humano.

Código de Ajax
Código principal de Ajax

Porque nos habían dicho que el lenguaje XML era la panacea universal, pero ahora le ponen este remiendo. Lenguajes como PHP o Perl cumplen muy bien sus funciones, y con un poquito de JavaScript parecía que ya poníamos la guinda. ¡Pero no! ¡Hay que seguir inventando! Veamos entonces si este nuevo parche de internet es tan bonito como dicen. Según sus adoradores, las ventajas de Ajax pueden resumirse en una: las páginas se cargan más deprisa. Es más rápido que los demás códigos porque no tiene que realizar una llamada al servidor cada vez que se realiza una acción en la página. Esto lo consigue porque es asíncrono, es decir, puede realizar varias tareas a la vez de forma independiente, sin necesidad de que se acabe una para que empiece la otra. Ésta, dicen, es su principal ventaja.

Pero yo creo que con las conexiones rápidas que ya empiezan a generalizarse, esta diferencia de rapidez prácticamente no se nota. La rapidez puede resultar importante si la página en cuestión está llena de posibles acciones, pero no creo que sea aconsejable que una página esté recargada de elementos. Al menos, yo pensaba que ya habíamos llegado a la conclusión de que la sencillez es un tanto a favor de esta nueva Web 2.0. Sólo hace falta ver los buscadores más importantes para darse cuenta de que la limpieza y la sencillez son la nota dominante. ¿O es que a Google y Yahoo les hace falta el código Ajax? ¿Para ir una décima de segundo más deprisa?

Pero es que, encima, Ajax tiene problemas de usabilidad y, por si fuera poco, todo el código depende del lenguaje JavaScript que, como sabemos, lo activa el navegador, y un cierto porcentaje de navegantes, por los motivos que sea, lo tiene desactivado. No digo que Ajax no pueda resultar útil en algunos aspectos, pero no se merece tanta fama, desde mi punto de vista. Da la sensación de que cada equis tiempo hay que inventar algo nuevo para que no se aburran los programadores. Esta práctica ya la conocemos en muchos de los productos de consumo: invento una variante, digo que es imprescindible, y a vender se ha dicho…

¿Estamos creando el monstruo de Internet? ¿Se rebelará contra nosotros esta criatura a la que sólo le ponemos parches y remiendos a costa de hacerle perder su belleza y eficacia? Internet nació en las universidades norteamericanas con un objetivo sencillo: la comunicación entre personas, que luego ratificó el inventor de la World Wide Web, Tim Berners-Lee. Las personas se comunican mejor en ambientes sencillos y directos, que no estén recargados de elementos y de códigos. Bastan unas palabras para que ocurra el milagro.

Actualización del 23.05.06

Acabo de leer, nada menos que en el blog de O’Reilly, un artículo que critica la tecnología Ajax con argumentos parecidos a los míos. El artículo se llama “The AJAX Melee”, y el autor llega a definir este nuevo remiendo de código como un asunto de friquis tecnológicos que no tienen en cuenta al usuario normal. Lo compara con Java y argumenta que aunque Java requiere otros medios para poder ser eficaz, al final lo consigue, mientras que Ajax tiene problemas de accesibilidad y compatibilidad, lo que no lo hace adecuado para páginas de audiencias masivas. En definitiva, el autor del artículo dice no fiarse de Ajax porque sólo está hecho para navegadores de última generación, lo que va a propiciar la vuelta al cartelito que hace unos años abundaba por la red: “Esta página requiere tal versión de tal navegador”.

Actualización del 07.09.06

Otro artículo incide en la misma problemática que planteo en este artículo. Se trata de “Apocalypse 2.0 – the day the web broke”, título muy sugerente que podríamos traducir como “Apocalipsis 2.0: el día en que la Web quebró”. Su autor resume el peligro de esta manera:

El incremento en el uso de JavaScript y el recrudecimiento de la guerra de los navegadores es una mala noticia para la compatibilidad y para la mayoría de las aplicaciones de la Web 2.0

Apoya esta afirmación diciendo que los navegadores tienen distintas versiones de JavaScript y de DOM, lo que obliga a los desarrolladores a lidiar con varias capas de código. Si a esto unimos la tentación que se observa en cada navegador de añadir “mejoras” propias al código JavaScript, tenemos la siguiente perspectiva:

Las aplicaciones web son estupendas, pero el problema es que son páginas web unidas con cinta adhesiva a una tecnología de 1999. Cuando las cosas evolucionen, y lo harán, la cinta adhesiva no aguantará. Los desarrolladores van a tener que volver a escribir grandes fragmentos de código.

Enlaces sobre Ajax