JApplets VS Flash

Hola amigos.

Estaba leyendo y repasando algunos conceptos básicos de java con ejemplos de applets de la clase JApplet y pensé:

Todo lo que los desarrolladores de aplicaciones de internet ricas (¿en multimedia? ) ¿no se podria desarrollar igualmente absolutamente todo a base de Applets (bueno, JApplets)?

No se absolutamente nada sobre Flash ni de similares... a duras penas lo básico de Applets.

Supongo que los applets fueron creados para el mercado de las aplicaciones en internet pero ... ¿será que no fué popular trabajar sobre ellos? ¿que sucedió? ¿que los hace una elección no tan buena para aquellos que utilizan Flex (¿eso es una extensión de Flash? ) y/o similares?

Uhm... ¿me esfuerzo aprendiendo a desarrollar applets para aplicaciones/paginas web o simplemente olvido hacer ese esfuerzo y salto a Flex [( o Flash... por ahora no lo tengo claro]) ?

Agradezco de antemano las respuestas.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Un poco de historia

Pues hay varias razones por las que no se usan applets actualmente para RIAs. Creo que el problema comenzó en los 90's cuando salió Java y estaban impulsando el desarrollo de applets (porque no servía para otra cosa) pero empezaron por una parte las preocupaciones de seguridad (todo el código corre en el cliente, así que hay que limitar la capacidad de estar abriendo conexiones y acceso al filesystem, etc) y por otra parte... Microsoft implementó su propia JVM incompatible con la de Sun, traía unas "extensiones" que no venían en la de Sun (en vez de dar las clases aparte, lo metieron a la JVM) y la idea era que los programadores las usaran para que las applets solamente jalaran en Windows, con IE, matando así la idea del WORA (Write Once, Run Anywhere) que en ese momento era lo más atractivo de Java.

Hubo broncas legales y en paralelo estallaba la guerra de los navegadores, donde perdió Netscape y de ahí nace Mozilla... ahí aprovecha Adobe para sacar Flash, y como MS no tiene control sobre Flash, pues pega mejor porque corre bien en Mac y Windows, incluso Linux.

Para cuando le dan su manotazo a Microsoft y los obligan legalmente a respetar la flexibilidad, y Sun logra meter su JVM en Windows, ya Flash estaba en todas partes. Había uno que otro applet todavía, pero no eran populares porque pues Adobe luego se metió en la cama con MS y ya venía IE con el plugin de Flash sin necesidad de instalarlo aparte, igual que ahora; sin embargo, igual que ahora, si quieres correr una applet, tienes que bajar el runtime de Java y el plugin para el navegador. Y la mayoría de los usuarios, cuando entran a un sitio que despliega un gran bloque negro con un mensaje que dice que tienen que bajar quién sabe qué cosa para ver lo que habría en ese cuadro negro, simplemente se van a otro sitio.

Y pues si comparas el look (sobre todo en Windows) de un applet AWT con el de una forma de Flash o Flex o incluso de puro HTML y Javascript, siempre la más horrible GUI es la del applet. Y la demás funcionalidad por lo general la puedes cubrir con AJAX, aunque no del todo (por ahí ve el blog de luxspes para sus historias de infortunios con las limitaciones de Javascript).

Imagen de luxspes

Bonito contra "Practico": Gana Bonito

Otro problema con los Applets fue que Sun subestimo el "factor estetico", mientras que Flash se diseño para ser "lo mas bonito posible", los Applets era para construir cosas "practicas y sobrias"... El resultado? La gente prefiere Flash. Si al visitar un sitio, su apariencia no resulta agradable a la vista, lo abandonaras rapidamente. Tu podias (y puedes) contratar un diseñador, y darle el software de Adobe para que te haga un sitio web/aplicacion flash que se vea todo lo bonito que te puedas imaginar, pero no puedes hacer lo mismo con un applet... lo mas gacho es que eso no se debe a que haya alguna limitacion intrinseca en los applets, se debe a que simplemente Sun no penso en atacar el mercado por ese camino y nunca saco una herramienta "para Diseñador" que utilizara las capacidades de Swing como su motor de graficos. Ahora, con JavaFX, Sun (bueno, Oracle) esta tratando de atacar ese mercado para las aplicaciones "bonitas", pero en mi opinion, a menos que empiese a ofrecer un entorno para diseñadores como el que ofrece Adobe para Flash (o el que ofrece Microsoft para Silverlight) JavaFX nunca va a despegar del piso.

Imagen de Shadonwk

luxspes no te olvides de

luxspes no te olvides de Flex y su FlexBuilder que es una herramienta excelente ademas de que si sabes ingles ya la hiciste yo aprendi y realice todo un sitio para una empresa que se dedica a dar cursos de capacitacion, y toda la parte adiminstrativa de ese sitio (panel de control) esta echo en Flex y AS3 es muy facil de aprender y utilizar ademas gratis.. sin duda JavaFX no tiene futuro almenos eso se ve.. que lastima

Imagen de Jvan

JWS

No se a que tanta comparación se puede prestar Java Web Start con respecto a Applets, Flash, JavaFX o Flex, pero sin duda es una gran alternativa, lo he utilizado y me parece bastante bueno, creo que lo podrias considerar como una opción.

Imagen de Marce

Y para que serviría un Applet??

Ummm, entonces descartan la posibilidad de utilizar Applets en aplicaciones web? O en que tipo de aplicaciones entraría un applet?

Además el hecho de utilizar flash en una página web para hacerla más BONITA es muy relativo según lo que quiere reflejar tu página. Es bien sabido que también el usuario se enfada de ver todo lleno de colores y con miles de imágenes en movimiento y sin sentido. Hay que especificar que toda herramienta bien usada es muy buena, y no solo decir que una tecnología es mejor que otra. Me parece mejor la explicación de ezamudio por que es menos técnica y enfocada a la realidad claro sin quitarle mención a ninguna otra : ) bunas aportaciones por todos.

JWS buena opción

Imagen de luxspes

Yo no descarto, solo digo lo que se

mmm, entonces descartan la posibilidad de utilizar Applets en aplicaciones web? O en que tipo de aplicaciones entraría un applet?

No lo descarto, todo lo que se puede hacer en Flash (y quiza mas) se puede hacer con un applet, simplemente afirmo que no es popular, y no es facil

Además el hecho de utilizar flash en una página web para hacerla más BONITA es muy relativo según lo que quiere reflejar tu página.

Claro, la belleza esta en los ojos del observador. Por otro lado, si tu piensas que el look por default de los applets es bonito (agradable para el usuario), serias la primera persona que conozco que lo afirma.

Es bien sabido que también el usuario se enfada de ver todo lleno de colores y con miles de imágenes en movimiento y sin sentido.

Quien dijo que "todo lleno de colores y con miles de imágenes en movimiento y sin sentido." es belleza?. Tal ves deberías leer al respecto? Yo lo que dije es que para un diseñador grafico (instruido en el arte de crear cosas agradables (bellas) que comuniquen ideas lo mas claramente posible a otros humanos) Flash proporciona herramientas. Java no proporciona herramientas. Cual tipo de aplicación web crees que recibe mas atención por parte de gente instruida en hacer interfaces agradables para los usuarios? Para ti como programador puede dar lo mismo, pero un diseñador va a preferir una herramienta que haga mas cómodo su trabajo. Si con Flash puedo hacer lo mismo que con un applet de Java, pero con Flash es mas fácil que me ayude el diseñador a que quede deberás estético (y no lleno de colores y movimientos sin sentido, como lo hacemos los no instruidos en el dicho arte), preferiré Flash (o Silverlight), asi de simple.

Hay que especificar que toda herramienta bien usada es muy buena, y no solo decir que una tecnología es mejor que otra.

Por supuesto, todo es bueno si se le usa bien, el arsénico es bueno si se le usa para envenenar, y malo si le le usa para darle sabor a la sopa. No crees que es bueno decir que es "malo" ponerlo arsénico a la sopa? Lo mismo con las tecnologías como los applets. No es que sean intrínsecamente malos. Pero si Flash y Silverlight tienen herramientas para que un diseñador te pueda ayudar a que tus interfaces sean consideradas agradables por los usuarios (bonitas), por que a los diseñadores gráficos los entrenan para eso, pues yo prefiero utilizar una tecnología donde puedo recibir esa ayuda fácilmente. (Si tu por otro lado prefieres complicarte la vida....)

Me parece mejor la explicación de ezamudio por que es menos técnica y enfocada a la realidad claro sin quitarle mención a ninguna otra

Mmm, y eso de "Hay que especificar que toda herramienta bien usada es muy buena, y no solo decir que una tecnología es mejor que otra." no aplica a las explicaciones también?: Hay que especificar que toda explicación bien interpretada es muy útil, y no solo decir que una explicación es mejor que otra. Zamudio explico por que los applets fracasaron mercadologicamente, yo lo explique estética y tecnológicamente ¿por que decir que su explicación es mejor que la mia? solo son diferentes, por que el fracaso de los applets fue multifactorial, pero ambas explicaciones te permiten ver un cuadro completo del fracaso de los Applets ;-)

Imagen de luxspes

Usos de los applets

Y para que serviría un Applet??

Bueno, el API de Java (inclusive para los applets) es todavia mas rica que la disponible en Flex/Flash (tal ves hasta mas rica que la de Silverlight? la verdad ahi si no lo se). Un applet puede conectarse por JDBC a una base de datos (una buena idea solo si se esta en una intranet). Un applet "firmado" digitalmente pude inclusive acceder al disco duro local siendo asi praticamente capaz de hacer cualquier cosa que una aplicacion normal puede hacer... y como el Java tiene un API rica (con objetos para manejo de archivos, acceso a base de datos, encriptacion, graficos 3D, JNI para poders hablar con dispositivos como scanners, lectores de huella digital, etc,etc) supongo que puede haber varios casos en los que puede ser mas conveniente usar un applet para resolver un problema determinado. De nuevo, no es que los applets sean inutiles, es solo que el campo de accion mas comun (hacer aplicaciones web) ya se lo gano Html/JavaScript (y lo que sobro se lo comieron Flash y Silverlight)

Imagen de Jvan

Licenciamiento

Y algo muy importante es que flash y silverlight no son software libre, java si.

Imagen de ezamudio

PKI

Tocas un punto importante: Los applets firmados digitalmente pueden hacer muchas más cosas. La firma digital es un mecanismo de autenticación bastante bueno, las matemáticas detrás son indiscutiblemente efectivas, pero también son bastante complicadas, y por eso mismo es que todo ese rollo de PKI que existe desde los 90's, no ha pegado, más allá de decirle a la gente (que puede ser tu abuelita o puede ser tu compañero de trabajo) que se fije en que el navegador tenga el candadito cuando entra al sitio del banco.

Ahora imagínate a la gente bajando applets y le sale la advertencia del plugin de que el applet quiere hacer algo que no debería porque no está firmado... o que el applet es seguro porque está firmado digitalmente... los pocos usuarios suficientemente paranoicos negarán permiso de todas formas, pero la mayoría de la gente tiene el síndrome de oprimir CONTINUAR a todo (por eso el infame UAC o como se llame de Vista fue un fracaso tan grande aunque MS diga que fue el sistema operativo más seguro de la galaxia; le echaron la bolita al usuario para que todo lo malo que pueda pasar sea su culpa porque dio permiso, pero piden permiso de absolutamente todo).

Imagen de Marce

Opiniones

Amm creo que será necesario no tomarse las cosas personales. Si todos vamos por el mismo camino de conocimiento y aportaciones no veo el problema con Opinar lo que se me hace mejor o peor. Además mi comentario estaba basado en lo que escribió la persona que abrió el foro y TODOS, aclaro TODOS los comentarios que se pusieron. TODA opinión y comentario es respetable, pero tomárselo personal no : | eso es raro. En cuanto a lo que pidió el que abrió el foro pues simplemente es una guía así que el sabrá lo que toma y lo que deja y creo que todas las aportaciones son MUY BUENAS.

Imagen de luxspes

Opina y deja opinar

Amm creo que será necesario no tomarse las cosas personales. Si todos vamos por el mismo camino de conocimiento y aportaciones no veo el problema con Opinar lo que se me hace mejor o peor.

Nada personal,no te preocupes. Tu simplemente opinaste que no te gustaba mi opinion... y yo opine que no me gustaba lo que opinabas de mi opinion (y explique por que pensaba que estabas equivocada)... y ahora tu opinas que no te gusta que yo opine que no me gusta tu opinion... en otras palabras... lo que pasa siempre en un foro de discusion (si todos opináramos lo mismo seria aburridismo) :-)

Imagen de Marce

Exacto

así es, sin discusión no hay avance :D, todos tenemos opinión y vale!!

Imagen de Marce

aun que...

En ningun lugar puse que no me gustaba tu opinión, simplemente se me hace mejor otra que la tuya, pero no significa que la deteste : ), ahora a hablar de Java!!

Imagen de samz550a

Genial el debate

He estado viendo las aportaciones en silencio estos dias mientras se desarrollaban y es muy valiosa la información desprendida de sus comentarios.

Muchas gracias ezamudio, luxspes, Jvan y Marce por lo comentado.

Tengo que reiterar que realmente no conozco para nada la tecnología Flash y Flex... solo tengo mas o menos la idea de que hacen algunas pequeñas aplicaciones en Flash... sobre todo en animación.

Por ahí estos dias habia estado emocionado viendo una animación sencilla pero medianamente compleja de programar en Java... en el contexto de una aplicación normal... pero la verdad no es muy bonita y no se hasta que punto trabajar con imagenes y las herramientas de Java pueda hacer una animación bonita.

Queria hacer unas pequeñas preguntas para tratar de clarificar el tema:::

El tema lo inicié nombrando a los JApplets ... o Applets mejor dicho... ahora::: Si con un Applet quisiera hacer lo mismo que con alguna de las tecnologías Adobe ¿que tecnología de adobe estaria "reemplazando"? ¿Acaso Flash?

Si Flex es otra cosa diferente a Flash (disculpen la ignorancia xD ) ¿con que tecnología Java oficial (que venga en el Java SE o EE) podria hacer algo que "reemplace" lo que haria en Flex? (así salga poco agradable a la vista)

Si las opciones de tecnología Java oficial (en los paquetes SE o EE de Java) son malas opciones para reemplazar a Flash, ¿que otras opciones Java (como JavaFx) existen para cada caso(para Flash X cosa, para Flex Y cosa)?

¿que otros campos cubren las tecnologias Adobe y cuales son sus nombres? Flash cubrirá un tipo de aplicaciones, Flex otro tipo ¿que mas areas cubren ?

Y por ultimo, si las tecnologias Java así no sean Java Oficial SE EE ni no-official (algun otro proveedor) ¿que otras buenas opciones hay de software libre o almenos que no nos cobren?

Saludos.

Imagen de Jvan

Requerimientos

Igual podrías comentar que es lo que quieres hacer para de ahí ver que onda con la tecnología a usar.

Imagen de samz550a

realmente no estoy

realmente no estoy desarrollando ningun proyecto. Mi interes primario es tener un panorama claro de la utilidad de las tecnologias Java de los paquetes SE y EE (que aquí yo llamo como oficiales), específicamente JApplet en comparación con las tecnologías Adobe que tienen mucha popularidad.

Actualmente estoy repasando-estudiando Java SE en la versión 1.4.x y el ver ejemplos donde se animaban imagenes y pensar en colocarlas en JApplets para montarlas en una página web me llevaron a preguntarme:::

¿No podria hacer con estas herramientas(JApplet y animación de imagenes con las herramientas de Swing) algo similar a una animación en flash? Igual también pienso algo similar a luxspes de que incluso podria haber mas poder en los applets por contar con el acceso a toda libreria para Java (depronto habrá una para preparar café xD ) PERO por apariencia visual bonita y facilidad de aporte por parte de diseñadores Flash parece llevar amplia ventaja.

Las preguntas de mi anterior mensaje también agradeceria fueran contestadas y comentadas

para entender aun mas y a partir de todo esto saber trazarme un camino para seguir aprendiendo-consultando sobre estos diversos temas.

Espero pronto saltar de lleno a estudiar Java EE (habiendo terminado primero la parte SE así sea de la version 1.4.x de Java[gracias a mi libro de Deitel] ) ... y cuando esté en Java EE y ya esté experimentando montar web, aplicaciones web saber que herramientas elegir y trabajar... inclusive de Adobe... para hacer las cosas como debe hacerlas un profesional.

Muchas gracias de antemano por vuestro tiempo, por sus aportes; el debate en este hilo ha sido y es interesante, seguramente también será de gran utilidad para quien lo encuentre en javamexico por medio de google y se sienta novato como yo y quisiera hacer las mismas preguntas (o almenos parecidas).

Un gran saludo.

Imagen de Marce

algo sencillo

samz lo que yo te pudiera recomendar es que si solamente estas probando e intentado conocer java o cualquier otra tecnología aquí yo no te puedo decir cual es mejor o peor eso depende de la experiencia del usuario con la herramienta, entonces si tu enfoque es java pues es bueno empezar con los Applets si ya estas ahí no creo que pierdas tiempo aprendiendo de todo. De ahí podrías compararlo tu mismo con Flash, Flex, JavaFX etc, la misma experiencia con la herramienta te dará las comparaciones, y como te dije antes de todas puedes aprender.

Te daré una rápida sobre todas las preguntas. Todas estas tecnologías que mencionas sirven prácticamente para lo mismo, con todas puedes insertar objetos complejos en aplicaciones web, los Applets pues fue la primer tecnología que saco java para atender a esta necesidad y como decía luxspes pues es una tecnología que al parecer a quedado olvidada pero tiene mucho potencial. Flash pues no te digo que fue la respuesta a los Applets pero si como comentaba ezamudio la tecnología con la que empezó a competir Adobe pero con más estética que los Applets, Flex pues es prácticamente la mejora de Flash aunque son diferentes pero esta se baso más en las RIA's igual que JavaFX. También existen las aplicaciones de microsoft que no se quiso quedar atrás y pues ahí saco a ActiveX y Silverlight.

Como vez hay varias opciones y en mi opinión compararlas tu mismo es la respuesta, a lo mejor no es lo que tu esperabas pero es lo que tengo jaja :p ahi que se discutan mis compañeros y te den más opciones : )

Imagen de luxspes

Si con un Applet quisiera

Si con un Applet quisiera hacer lo mismo que con alguna de las tecnologías Adobe ¿que tecnología de adobe estaria "reemplazando"? ¿Acaso Flash?

Se podria decir que si. un applet se puede usar para reemplazar a Flash...

Si Flex es otra cosa diferente a Flash (disculpen la ignorancia xD ) ¿con que tecnología Java oficial (que venga en el Java SE o EE) podria hacer algo que "reemplace" lo que haria en Flex? (así salga poco agradable a la vista)

Flex... esta construido encima de Flash... asi que Flex es Flash (pero Flash no es Flex) Flex es un conjunto de componentes hechos en Flash para facilitar la construccion de aplicaciones para la manipulacion de datos. (Flash normalmente se usaba mas que nada para hacer animaciones bonitas, y aunque se podia usar para manipulacion de datos tenias que armar los componentes para eso tu mismo, con Flex, ya todo eso viene hecho y lo puede usar, asi que resulta mas facil).
Originalmente se podia decir que Flash es como usar Java2D directamente, y Flex como usar Swing... pero ultimamente lo mas parecido a Flash+Flex seria JavaFX.

Si las opciones de tecnología Java oficial (en los paquetes SE o EE de Java) son malas opciones para reemplazar a Flash, ¿que otras opciones Java (como JavaFx) existen para cada caso(para Flash X cosa, para Flex Y cosa)?

Bueno, siempre puedes reemplazar Flash con un Applet, solo que te va a costar mucho trabajo. Se supone que Oracle/Sun van a crear algun dia herramientas de diseño para JavaFX (con lo que ya seria mas facil reemplazar a Flash con Java). Pero en este momento no existe nada del nivel de Flash Professional para JavaFx

¿que otros campos cubren las tecnologias Adobe y cuales son sus nombres? Flash cubrirá un tipo de aplicaciones, Flex otro tipo ¿que mas areas cubren ?

Todo sobre Adobe

Y por ultimo, si las tecnologias Java así no sean Java Oficial SE EE ni no-official (algun otro proveedor) ¿que otras buenas opciones hay de software libre o almenos que no nos cobren?

Hay muchas... pero depende de que quieras hacer....