A veces veo applets ...
Llevo dándole vueltas al tema desde hace meses, pero parece que el asunto está saliendo a la luz cada vez con más frecuencia. Por ejemplo en los últimos días un interesante hilo en programanía o la noticia que comentaba martin en su blog. Y es que cada vez más gente se pregunta si habrá llegado el momento de los applets ...
La historia de los applets es curiosa, nacieron con la promesa de que iban a traer a la web que por aquel entonces era bastante sosa y aburrida un dinamismo espectacular, permitiendo a los usuarios descargar y ejecutar programas allá donde estuvieran. Pronto surgieron miles de páginas que incluían vistosos efectos gráficos como figuras 3D en movimiento, o los omnipresentes paneles de noticias con scroll. Sin embargo esto tenía un precio: el tiempo que se necesitaba para descargar estos programillas al equipo del usuario a veces era desesperante, lo que provocaba que el visitante abandonara la página antes de que se cargara en el navegador (por no hablar de los problemas con el jre). Por eso los applets se convirtieron en una tecnología maldita, y como todo lo maldito sobre ellos existe una tremenda leyenda llena de mitos y rumores.
Sin embargo los applets nunca dejaron de existir aunque muchos desarrolladores los miraran "mal", y es que en este proceso de "webalización" del software que hemos vivido últimamente (yo diría que a veces se trata de "borreguización") ahora nos damos cuenta que los clientes ricos molan y que necesitamos alguna nueva tecnología para facilitarle la vida al usuario. Ahí es donde aparecen AJAX, Flex, los applets,... perdona ¿has dicho applets?
Yo lo tengo muy claro, para mí los applets se adelantaron a su tiempo. Nacieron cuando el mundo no estaba preparado para recibirlos (bueno, cuando la infraestructura de red no estaba preparada), sin embargo creo que están llamados a tener una importante participación en el desarrollo de software de los próximos años. Y por eso empezaba este post comentando que cada vez se ven más applets, parece que están saliendo del armario y son muchos los proyectos que los están incorporando, como por ejemplo los que comentaba martín en su blog, o como editores de texto "ricos" (el software de wikis JSPWiki incorpora uno muy ligero) o en cualquier página que necesite "algo más". De hecho estoy estudiando en utilizar applets como interfaz de usuario para algunas de las aplicaciones que próximamente desarrollará mi departamento porque creo que se dan ciertas características que lo aconsejan: usuarios distribuídos por toda la geografía nacional, entorno de trabajo controlado (sé que todos los equipos tienen jre y plugin para el navegador), necesidad de manejar hardware en el cliente (impresoras, escáneres,...) y una de las cosas que yo considero importantes y de las que se ha comentado muy poco: la proporción tiempo_de_uso/tiempo_de_descarga. Me explico: para una página web normal es muy importante la velocidad de descarga para que el usuario no "huya" antes de tiempo, sin embargo para una aplicación corporativa, en la que el usuario va a estar varias horas trabajando importa poco esta "perdida de tiempo" inicial, ya que queda asimilada por una larga sesión de trabajo. Claro que ahora la pregunta es ¿por qué no un cliente swing directamente? pero ese es otro tema y como ya he dicho lo que yo intento transmitir en mi organización es la necesidad de estudiar detalladamente cada problema y de huir de soluciones "estándar" o "por costumbre" (o por "moda" o por "decreto", o por ...)
(2007-02-15 08:10:00.0) Permalink Comentarios [5]


No lo había pensado nunca, pero es cierto que probablemente nacieron demasiado pronto. ¿Quién iba a usar un applet hace 7 años? Había que estar loco. AWT, lentísimo, ineficiente, problemas de acceso en los navegadores, no había motores de ofuscación decentes, etc.
Pero ahora, sinceramente, en nuestra empresa los usamos y no veo la diferencia con usar Java Web Start, salvo que Java Web Start es inoficialmente inestable. Es decir, es estable en el papel, pero en cuanto te pones a distribuirlo en serio en tu empresa, empieza a cruzar los dedos.
Enviado por martin en febrero 18, 2007 a las 02:37 PM CET #
Yo implementé una solución basada en un applet para una intranet que tenía que conectarse a una impresora especial, a través de una DLL, y funcionó perfectamente y en los dos años que lleva funcionando sólo me han llamado para arreglar una cosa, que al final pudieron arreglar ellos mismos.
Tambien he probado Java Web Start y me gustó, aunque tiene un par de cosas que no me gustan, sobretodo la falta de flexibilidad a la hora de especificar los permisos a conceder. Sin embargo no encontré problemas de inestabilidad, aunque tampoco lo he usado intensamente. ¿Que problemas has tenido, Martin?
Un saludo,
Enviado por GreenEyed en febrero 19, 2007 a las 11:48 AM CET #
En su momento lo utilizamos, hace años. Fue una pesadilla. Une diferentes clientes, con diferentes sistemas operativos, diferentes service packs, diferentes máquinas virtuales, y ... petaba. Las cachés a veces no se actualizaban, al final acababamos con usuarios utilizando versiones obsoletas, etc.
En fin, que en un programa tipico de los que se distribuye por internet con jws puede no ser un problema que el 10% de tus usuarios no puedan ejecutar la aplicación, pero si en un hospital el 10% de un servicio no funciona... la has cagado.
Unos compañeros incluso lo solucionaron en su momento con OpenJNLP que funcionaba muchísimo mejor. Pero al final, no sé que problemas hubo que acabamos todos a traves de terminal server :D
Enviado por martin en febrero 20, 2007 a las 12:24 PM CET #
Cualquier solucion que requiera 9 megas para desplegar no es viable sea AJAX, FLEX o Java.
Hasta que los navegadores no venagan preinstalados con plugin que permitan desplegar ete tipo de programas, no son viables.
Los applet dejaron de usarse cuando el JDK1.2 obligo a bajarse 9 megas.
Hasta ese momento era viables respecto a flash, ahora que los diseñadores ponen flash en todos los sitios no hay persona que no tenga el flash instalado por lo que flex o javascript son mejores alternativas.
De todas formas, depende cada tecnologia de las personas que tengas. Si tengo un experto en java seguramente montare html o applet pero si tengo alguien con flash y el cliente me lo permite flash.
Creo que como motor de AJAX es mas rapido java o activex que flash o javascript pero ni todo el monte es microsoft, ni todo el mundo puede permitirse tener instalados multiples jdk y ese es realmente el problema.
Actualmente hay paginas que me obligan a bajarme la 1.5 cuando tengo que tener la 1.4 y claro prefiero dar servicio a mis clientes que ver esas paginas.
Enviado por batch4j en marzo 04, 2007 a las 07:40 PM CET #
No se yo... los applets molan, sin duda se pueden hacer miles de cosas (sobre todo si pensamos en applets firmados y usuarios que aceptan la ejecuciOn del applet). El problema siguen siendo los navegadores.
El caso de MSIE sigue siendo una batalla perdida, con cada versiOn meten la pataza un poquito mAs. Si un applet tiene que hacer "algo interesante" tendrA unas cuantas clases y un peso importante (digamos de 50 a 100 Kb). El maldito MSIE tirando de cachEs o la propia JRE te la pueden liar, porque empiezan a ejecutar init() antes de haber cargado por completo la aplicaciOn... con terribles consecuencias...
Yo sigo apostando por depender lo menos posible del cliente (navegador) en aplicaciones Web. Y en caso de necesidad, Flash sigue siendo mejor alternativa... mira quE poco le cuesta a la gente instalarse el plug-in de Macromedia...
En fin, yo el applet lo usarIa si no me quedan alternativas y nunca para interfaces grAficas, sino para procesos "ocultos" al usuario. Es la humilde opiniOn de un amante de los applets : ))
un saludo
Enviado por pac de 3 en agosto 20, 2007 a las 07:42 PM CEST #