Ajax vs. Flex

O Flex vs. Ajax. O Silverlight. O JavaFX. Menudo debate. A muchos no les gustará y sé que generará mucha controversia. Yo hablaré de Flex pues es el que conozco, pero podríais hacer la misma comparación con los otros dos.

Para el que a estas alturas no lo sepa, FLEX es la tecnología Flash orientada a programadores. Tradicionalmente Flash ha sido una herramienta de animación y diseño, la que conoces de toda la vida. Después de un primer intento más o menos fallido con Flex1 y 1.5, Adobe, tras adquirir Macromedia, decidió reorientar el rumbo, construyendo algo auténticamente revolucionario con Flex2. Las secuelas, además de Flex3, han sido AIR (para aplicaciones de escritorio) y próximamente Thermo (diseño de R.I.A.). Con Flex2 han conseguido crear una herramienta para la construcción de interfaces de usuario en Flash.

No cabe duda que las R.I.A. están de moda. Da igual la tecnología utilizada, cada día aumentan las aplicaciones online. Desde sistemas operativos online hasta aplicaciones de edición de fotografías o vídeos pasando por aplicaciones corporativas de gestión de cualquier tipo.

Pero ¿qué es mejor para construirlas? La respuesta es sencilla: depende de para qué. No me sirven argumentos sobre plugins (¿Javascript funciona en Lynx?) o software libre vs. privativo (¿acaso al usuario habitual le importa o sabe lo que es?) o SEO (¿Javascript es search engine friendly?). Hablemos mejor de utilidad y de conveniencia para el desarrollador y el usuario.

Lo primero que deberíamos preguntarnos es

¿Qué voy a hacer?

No es lo mismo hacer una web o una aplicación que va a utilizar mucha gente que hacer una aplicación de gestión para una empresa de seguros o un banco. ¿Alguien se imagina a una aseguradora haciendo su software de gestión en Javascript? Pero sí en Flex como de hecho están haciendo ya. Por otro lado a nadie se le ocurriría hacer una web en Flex, no tiene sentido, no es su cometido. Pero sí que harías una aplicación como la de Flickr para editar fotografías online o la de Youtube para hacer montajes de vídeo. O pequeños módulos concretos que no podrías hacer de otro modo o que te costaría demasiado, o widgets varios como está haciendo mucha gente utilizando feeds, mapas, etc. Este creo que sería el punto clave diferenciador. Con Ajax hacemos complementos para aplicaciones web o pequeñas aplicaciones, con Flex hacemos aplicaciones completas. Lógicamente estoy generalizando y cada uno puede pensar y hacer lo que quiera, hay aplicaciones completas realizadas 100% en Javascript, no hay ningun inconveniente, para ejemplo EyeOS. ¿Por qué opino esto entonces? Sencillo, por una simple cuestión de ingeniería del software y productividad. Flex es un lenguaje orientado a objetos 100% y con todas las ventajas que aporta. Crear interfaces de usuario con Flex es impresionantemente sencillo. ¿Alguien puede decir lo mismo de Javascript? Que se puede hacer es indudable, pero a costa de convertir la aplicación en una auténtica telaraña de Javascript‘s. ¿Qué ocurrirá cuando otro programador deba tomar esa aplicación y modificarla? Cualquiera que haya hecho lo más mínimo en Ajax sabe que es una locura. No hay un patrón MVC y la interacción con la interfaz de usuario (html) es harto difícil, innerHTML está muy bien y es muy rápido, pero siendo puristas deberíamos utilizar DOM, a medio plazo lo agradeceremos, y sino intenta modificar atributos de código insertado con innerHTML :P.

Mejor aún, encontremos un responsable de proyectos, director técnico o el cargo que se os ocurra que se comprometa a realizar un proyecto medianamente importante en Ajax. Si conoce Flex verá las similitudes con Java, de hecho se hizo con Java en mente. Si no lo conoce pensará directamente en Java, difícilmente se le ocurriría pensar en Ajax, su cuello es el que está en juego en definitiva.

¿Para qué hemos utilizado nosotros Flex?

Hemos hecho widgets de distintos tipos, paneles de control y gestión, aplicaciones de audio/vídeo multiusuario (chat, audio-chat y vídeo-chat). Ahora mismo trabajamos en un cliente IRC en colaboración con una de las principales redes de IRC.

En backoffices y otros paneles administrativos hemos comprobado que para el usuario la comprensión y utilización de la aplicación es muy superior a interfaces html puesto que son más parecidas a una aplicación de escritorio tradicional y tienen más interactividad, algo que el usuario agradece.

En artículos posteriores os expondré algunos ejemplos de cosas que hemos ido haciendo a lo largo de los dos últimos años, aunque también veremos cosas en Ajax, no son tecnologías excluyentes.

Añadir que Flex ya es de código abierto, el SDK es libre y hay un excelente plugin para Eclipse. Lo único que es de pago es el Flex Builder de Adobe, la aplicación oficial, pero puedes hacer tus aplicaciones con el plugin de Eclipse del mismo modo.

Por cierto, Adobe no me paga nada por este post :P.

10 comentarios en “Ajax vs. Flex

  1. Hola, yo tengo que hacer una web para una empresa (una web normal, no una ria), que tecnologia deberia utilizar?? Esque llevo 1 lio… Quieren que sea llamativa, que sea original, distinta a las demás webs que hay actualmente, deberia utilizar html, ajax, css y algun lenguaje de servidor (php/jsp…) o deberia utilizar flex (aunque no le veo mucho sentido). Ayuda porfavor.

  2. Buenas Jubox70,

    ¡Menuda pregunta la tuya!
    Lo principal es pensar qué es lo que tienes que hacer, una web es una web y punto. Los términos “llamativa y original” dependen más del equipo creativo que del técnico. Si es una web tal cual, informativa, no veo sitio para ninguna tecnología adicional. Piensa además en el SEO, con ajax lo perderías completamente.

    Yo, sin duda, buscaría un buen equipo creativo, trataría de tener bien claro lo que el cliente quiere y necesita, tanto en términos de contenidos como estructurales, y lo dejaría en manos de los diseñadores.

    Un saludo.

  3. Solo un comentario, existen frameworks que ocultan lo tedioso y la rutinaria creación de una aplicación AJAX. Te puedo nombrar dos ejemplos, el primero para Java sería richfaces para el estándar JSF y para .NET existe una extensión que te permite incrustar componentes que son AJAX, en ambos casos no existe la necesidad de escribir un código en JavaScript. Aún más existe un esfuerzo en estándarizar la utilización de Ajax, http://www.openajax.org.

  4. Otra debilidad de flex es a la hora de cambiar el plugin de flash player que es la debilidad a la hora se usar flash player muchos usuarios no usan este plugins o si lo usan es una version anterior o posterior a la que usa la web y puede dar problemas

  5. para crear aplicaciones de empresa online y lejos de querer seo, sin lugar a dudas flex es muchisimo mas potente estetica y tercnicamente., ajax ha evolucionado mucho con la ayuda de los framewroks para javascript pero aun asi esta a años luz, en mi opinion flash, AIR, Flex.. y este tipo de aplicaciones son el futuro web dejando a un lado los sistemas basados en pagina (HTML..).

  6. Como comentario a @jnzulia

    Si vas a presentar un nuevo a un cliente, le debes indicar los requerimientos mínimos, la versión, el software, y cosas necesita para verlo adecuadamente. Por si fuera poco, el Flash Player bien configurado en una web RIA tiene el mecanismo de autoactualizar el mismo, sino por ejemplo Youtube lo usaria?, ellos ya han contemplado ese tipo de inconvenientes.

    Desarrollo en Adobe Flex hace varios años, ya vamos en la versión 4.5, y nunca he tenido problemas típicos de JavaScript de “no se ve igual, no me carga, no me lo soporta el navegador, no se puede hacer esto con JS, me salen errores en tiempo de ejecución, etc).

    Aprendamos a usar lo nuevo y lo más potentente, ahora el punto son las RIAs, cuando salga algo mejor cambiémosnos.

    Lo de moda es el android, y existe Flex para Android, de tal forma se pueda integrar todo en una gran RIA

    Excelente aporte, suscribeme a tu blog

  7. Muchos usuarios no tienes este plugin ?? jajajajajaajaaja por dios.! si es el mas difundido en el mundo, 95% de las computadoras lo tienen, ademas las aplicaciones flex, corren desde flash 9, y es el que se requiere en youtube y muchas paginas mas.!

    Mi primer aplicacion desarrollada en Flex

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *