He estado leyendo esta noticia de javaHispano en donde se habla sobre Backbase, y me ha hecho pensar en AJAX, y en como puede ser problemático en determinados casos que explicaré a continuación.
Antes de nada, me gustaría comentar que la demo de Backbase me ha gustado muchísimo. Es genial ver todos esos efectos, hasta ahora relegados al mundo del escritorio, ejecutándose en Firefox sin ningún problema.
Desde luego, no hay una buzzword en estos meses que esté sonando más que AJAX. El término AJAX ha aparecido de repente y ha convertido las aplicaciones web tradicionales en RIAs (aplicaciones ricas de Internet), incrementando la usabilidad de sus interfaces y haciendo posible el uso de componentes hasta ahora relegados a otros ámbitos. A pesar de que ya sabéis que era algo que existía hace tiempo, lo cierto es que ha sido como un truco de magia, "ahora ves un pañuelo, y ahora ves un conejo".
Pero ojo con la magia, porque siempre hay truco. Y eso es lo que no se debe olvidar. Como sabéis, la clave en AJAX es esconder las interacciones con el servidor, realizándolas en un modo asíncrono de modo que el usuario no se entera de que están pasando cosas. Si a esto le sumamos que el árbol DOM se actualiza dinámicamente, tenemos que se solventa el problema de las molestas transiciones entre páginas. ¿Cuál es el problema entonces, si todo es tan bonito?
El problema es que como en los trucos de magia, las cosas son de un modo diferente al que se ve. Aunque el usuario no lo vea, por detrás se siguen haciendo continuas llamadas a través de la red, como en las aplicaciones web de siempre. El peligro, es que muchos desarrolladores creo que no se están dando cuenta de esto, y están viendo a AJAX como una solución a todos sus problemas, un nuevo paradigma de programación que por fin ha solucionado los problemas de las aplicaciones web, y que hará que todo y absolutamente todo sea web.
Pero señores. Cordura. Como decía en mi charla en la TechBusiness Week (tenéis las transparencias en el post anterior), la web no es necesariamente el mejor lugar para las interfaces de usuario. Ni con AJAX, ni sin AJAX. La web es un excepcional lugar para cierto tipo de aplicaciones, sobre todo las que se han de distribuir a través de Internet, las que necesitan un acceso masivo y heterogéneo de usuarios, o para las aplicaciones que requieren una enorme ubicuidad. Y es que tenemos ejemplos de aplicaciones web modelo de éxito como flickr, amazon, las googles, y muchas más que se os ocurrirán...
Pero sin embargo, como decía en el párrafo anterior, hay muchos casos en los que un interfaz web está abocado al fracaso. No voy a entrar en las ventajas de las aplicaciones de escritorio frente a las web, porque las tenéis en las transparencias que comentaba. En lugar de esto lo que sí que voy a hacer es comentar un ejemplo que ponía en Alicante, y que creo que es descriptivo de uno de los problemas más importantes de las aplicaciones web, y más concretamente de AJAX. Este problema es la necesidad de conexión de las aplicaciones web; y es un problema de AJAX, justamente porque AJAX nos "esconde" esa necesidad, nos "engaña" haciéndonos creer que tenemos todos los datos, y puede hacer que los desarrolladores olviden que realmente las cosas no son tan mágicas como parece. Muchos sabéis que trabajo en ámbitos hospitalarios. Os voy a poner un ejemplo dentro de este mundillo:
En nuestro hospital hay muchas aplicaciones, entre las que como comprenderéis hay algunas bastante críticas. Una de ellas es la de mi amigo Ricardo, la de hemodinámica. Esta aplicación es utilizada por los hemodinamistas para controlar a los pacientes que tratan. Así, cuando un paciente por ejemplo va a ser operado, para que le hagan un cateterismo por ejemplo, quizás por que haya sufrido algún infarto, los hemodinamistas lo que harán será antes de nada abrir la ficha del paciente y comprobar todos los datos: si ha tenido lesiones en las arterias anteriormente, si se le han prácticado más cateterismos, comprobarán los diferentes parámetros (creedme hay muchísimos) de otras intervenciones realizadas sobre este paciente, etc. Si todo está correcto, el paciente entra en la sala y se procede a realizar la intervencion.
Ahora bien. Imaginaros que los hemodinamistas están ya operando al paciente, y que de repente el responsable de la operación ve un problema y necesita corroborar algunos datos. Entonces, ordenará a alguno de los asistentes que vaya al ordenador a localizar los datos que necesita. El asistente se acerca al ordenador, y recorre las diferentes solapas de la aplicación recolectando los datos sensibles. Una vez los va leyendo, se los va comentando al hemodinamista jefe, y la operación continua. Si hay suerte, el paciente saldrá adelante, y habrá un nuevo éxito.
Pénsemos en lo que podría pasar con un aplicación web con AJAX. Desde el punto de vista del usuario, aparentemente todo es lo mismo. A fin de cuentas, es lo que promete AJAX, mejores componentes gráficos y transparencia en el acceso a datos. Sin embargo, la realidad es otra. En este caso, la aplicación necesita estar conectada continuamente a un servidor. ¿Qué sucede si en el momento en el que se necesitan los datos se cae la red?, ¿y si se cae la base de datos?, ¿y si se estropea el cable de red?, ¿y si se cae el servidor de aplicaciones?, ¿y si algún técnico de sistemas se equivoca y desconecta un switch? ¿y si...? En fin, yo creo que se os pueden ocurrir decenas y decenas de posibles problemas que ya hemos vivido. En el caso anterior, no podría pasar nada de esto, porque los cientos y cientos de datos ya están precargados, y los hemodinamistas los tienen a su disposición. Sí, es cierto que pueden pasar otras cosas, pero por lo menos hemos minimizado enormemente el riesgo.
Ese es el peligro que yo le veo a AJAX y que nadie comenta. Todo es muy bonito, todo es muy fantástico, todo es muy drag and drop y muy desplegable, pero por debajo todo sigue igual, y conviene no olvidarlo, y si no, poneros en el pellejo de la persona del caso anterior.
En ámbitos hospitalarios este tipo de casos pasan mucho. Y en otro tipo de ámbitos también. Normalmente las aplicaciones que pueden requerir el tratar muchos datos que ya han sido cargados, y permitir el trabajo con ellos, están destinadas al escritorio. Esto es simplemente porque es el mejor lugar para estas aplicaciones. Las aplicaciones web tienen su sitio. Por ejemplo, el sistema de citas de nuestro servicio de salud es un sistema web, cosa que es absolutamente lógica, y que es un ejemplo de un buen lugar para un interfaz de usuario web.
Bueno creo que he soltado un buen rollo, ¿no?. Así que no sigo más. En resumen: señores, cordura y precaución con lo que usamos, lo que escogemos, y para qué lo escogemos. Que no todo es tan bonito como parece, y que no existe la tecnología "única", sino muchas tecnologías que están ahí para que las utilicemos cuando realmente se necesitan.
| Permalink Comentarios [12] |
Martín, bueno, supongo que en parte tienes razón, pero tu explicación me parece un poco simplista. Y que sucede si antes de operar tampoco tengo red con una aplicación de escritorio, y si se ha caído la base de datos?, y si se ha "escogorciau" el disco duro?, y si se te ha corrompido una aplicación en Windows, y si.... . Vamos, que imponderables hay en todas partes, de todo tipo.
Con esto no quiero decir que AJAX valga para todo,
se me ocurren muchas otras razones para no usarlo (como por ejemplo el caso de gmail y tener dos versiones de la aplicación por lo variopinto de sus usuarios), pero no creo que decir que "depende de la red" sea uno de los problemas, cuando de esas cosas (o muy similares) sufren todas las aplicaciones.
Enviado por Al en June 12, 2005 a las 11:32 AM EDT #
[Trackback] p > p > br />
a href =" http :// weblogs . javahispano . org / page / martin "> MartÃn a > nos habla en su post a href =" http :// weblogs . javahispano . org / page / mperez / 20...
Enviado por Aprendiendo de la vida en June 12, 2005 a las 02:19 PM EDT #
Al, al contrario, no es tan simplista. En hospitales, todas estas cosas están protocolizadas.
Si sucediese lo que tú comentas, el médico mandaría a una persona literalmente corriendo a por el histórico en papel. La diferencia está en hacerlo "antes", o "durante". Como paciente, yo prefiero saber que hay fallos siempre en el "antes".
Enviado por mpermar en June 13, 2005 a las 01:41 AM EDT #
<i>Ahora bien. Imaginaros que los hemodinamistas están ya operando al paciente, y que de repente el responsable de la operación ve un problema y necesita corroborar algunos datos.</i>
Martín, en tu argumentación has preguntado que sucede si durante la operación quieren consultar algo más. Y en ese momento tienen ambos casos las mismas probabilidades de que (por simplificar) <i>alguien pise un cable</i> (del ordenador, de la lámpara o de la máquina de xxxxxx). Por eso me parece simplista tu argumento.
Vamos, que lo único que yo quería decir es que como paciente, espero que sepan todo lo que tienen que saber antes de la operación, que si hace falta lo tengan impreso, lleven zapatillas de deporte para salir corriendo si hace falta, etc. Lo que quieras, pero no me vale esa situación como argumentación contra AJAX porque necesita de la red.
Enviado por Al en June 13, 2005 a las 03:55 AM EDT #
jejeje, cuanta polémica. El ejemplo está puesto a muy mala leche. Antes te respondía al problema "antes" porque simplemente hablabas de ese momento.
Ahora bien, es cierto que en el "durante" hay muchas posibilidades de error que son comunes a ambos casos , por ejemplo un apagado. Pero este hecho no es escusa para no minimizar el resto de probabilidades de error, como es el acceso a recursos remotos.
Y fíjate que yo no critico concretamente a AJAX por necesitar la red, sería absurdo, porque no hay otra forma razonable de hacer lo que hace. Lo que critico es que se está vendiendo como una tecnología mágica y mucha gente seguramente ni se enterará que por debajo hay lo de siempre. Yo, y tú sabemos lo que hay por detrás, pero muchos desarrolladores no lo sabrán, porque se están vendiendo como churros suites de componentes mágicos AJAX. Y habrá desarrolladores que soltarán su componente en el interfaz, lo unirán a un data source, y hasta luego Lucas.
Lo de necesitar la red más bien va por todas las aplicaciones web. Y no es una crítica, ni mucho menos. Es simplemente recalcar que las aplicaciones de escritorio, llegado el momento, pueden trabajar en "desconexión", algo que yo veo una ventaja a tener en cuenta, igual que las apps. web tienen otras ventajas a tener en cuenta.
Enviado por martin en June 13, 2005 a las 04:50 AM EDT #
Ok, es cierto que en mi primer comentario yo puse "antes". Porque es que no me imagino al cirujano en mitad de la operación usando el ratón con las manos ensangrentadas ;-).
El próximo post hablamos sobre lo que se puede y no se puede hacer offline, de los problemas de sincronización, etc ;-).
Enviado por Al en June 13, 2005 a las 05:31 AM EDT #
jejeje
Con las manos ensangrentadas... pues aunque no te lo creas, ¡pasa!. Y es más, a veces hasta andamos informáticos por ahí viendo como operan y con cirujanos ensangrentados de un lado para otro pidiendo cosas.
En fin, es que es un mundo que hay que verlo...
Enviado por martin en June 13, 2005 a las 05:45 AM EDT #
Dónde dije "imagino" quería decir "no quiero pensar en". Tengo una amigo médico y ya me comenta demasiadas de esas cosas, y la verdad... yo sufro de "dolor por simpatía", y esas cosas la verdad es que me duelen sólo de pensarlas.
Enviado por Al en June 13, 2005 a las 06:43 AM EDT #
"Ese es el peligro que yo le veo a AJAX y que nadie comenta"
No sería mejor...
"Ese es el peligro que yo le veo a las aplicaciones web y que nadie comenta"
En este caso, el problema no es AJAX, sino el propio paradigma de comunicación de una aplicación Web.
Ahora mismo estoy currando en una re-arquitectura de un banco sudamericano y para la parte de agenicas, existe el mismito problema para decidir si las agencias trabajan bajo un ambiente web o un cliente rico pero hay una característica (entre otras) que hace desechar web: la capacidad de trabajar off-line, que es similar a la problemática que tu planteas.
Saludos.
Enviado por javahispano en June 13, 2005 a las 08:21 AM EDT #
lo siento, no. ajax tiene truco, y una parte oscura con inconvenientes. es un hecho.
yo creo que depende del uso. usandolo de forma inadecuada puede ser un desastre en multiples aspectos. esto es una opinio.
pero lo que está clarísimo es que los inconvenientes no tienen nada que ver con lo que planteas. si te lo vuelves a leer, sobre todo el ejemplo, verás que es un enfoque horroroso. no tiene nada que ver eso con ajax o no ajax.
Enviado por yo en July 08, 2005 a las 05:25 PM EDT #
Creo que no tienes del todo razón, las grandes aplicaciones trabajan en modo Cliente/servidor, sean en web o en escritorio por lo que cualquier problema de comunicación entre el servidor y el pc afectará por igual a las dos aplicaciones. Otra cosa es que una de ellas trabaje via Internet y no Intranet, en ese caso si que existen más posibilidades de que falle.
Por otro lado estoy de acuerdo en el tema que AJAX no es la solución a todos los problemas. Yo utilizaba una solución parecida ya hace varios años pero como todo cada cosa sirve para lo que sirve.
Salu2
KAYETANO
Enviado por kayetano en August 03, 2005 a las 06:06 AM EDT #
Aumentando un poco más la polemica... como dice kayetano... las grandes aplicaciones funcionan en modo CLIENTE/SERVIDOR.... imagina todo lo que tendrÃan que hacer para actualizar cada PC que se encuentra en los quirofanos :S ... mucho dinero no lo crees.... EL problema no plantea realmente una desventaja de AJAX ... lo único que se nota es como los paradigmas de programación orientada a la Web estan cambiando ... y ... depende de cada uno de nosotros que vÃa seguir
Enviado por BlacKNasH en September 13, 2005 a las 01:46 AM EDT #