« Cómo convertirse en programador independiente en 1068 días | Inicio | Cambio de servidor »

¿Flash Lite o J2ME?

Hace casi un año, escribí una pequeña comparativa entre Flash Lite y J2ME.

Como a estas alturas es probable que todo el mundo sepa, el Flash Lite 2 update for Flash Professional 8 acaba de ser lanzado a través de Macromedia Labs, y ha llegado la hora de actualizar aquel post.

¿Ha habido algún cambio?

Afortunadamente, sí. Mientras la plataforma J2ME ha continuado avanzando lentamente por su camino perfectamente asentado, añadiendo nuevas apis, el lanzamiento de Flash Lite 2 va a suponer una sacudida para muchos de los desarrolladores de aplicaciones móviles.

¿Por qué, qué hay de nuevo?

Obviamente, lo más importante en el nuevo player es el soporte para ActionScript 2.0. Se acabó el hacer vudú, se acabó la sintaxis de flash 4, se acabaron las estructuras de movieclips anidados, el código en cualquier parte...

Ya no hay que saltar entre dos sintaxis diferentes, ni siquiera entre dos formas de desarrollo diferentes. Por fin tenemos un lenguaje orientado a objetos con todas sus ventajas: reutilización de código, entidades pequeñas con responsabilidades pequeñas... el rollo de siempre.

Pero no es sólo en la sintaxis o en la forma de atacar el desarrollo donde va a haber ventajas. Ser capaz de desarrollar un apliación de escritorio, una aplicación web, o una aplicación móvil escribiendo exactamente el mismo código, va a permitir que muchos más programadores intenten realizar su aplicación para Flash Lite. Y más programadores trabajando en la "cosa brillante" va a permitir que haya más aplicaciones de calidad, lo cual hará que aumente la demanda de aplicaciones. Así que todos ganan, usuarios y desarrolladores.

Bueno, vale, AS2, ¿pero no hay nada más?

Sí, hay por lo menos dos novedades más que, desde mi punto de vista, son fundamentales para el despegue definitivo de la plataforma.

La primera es el soporte para guardar datos en el dispositivo. Al precio que están las conexiones es fundamental poder guardar paquetes de datos en el teléfono y no en un servidor remoto. Era algo que hacía muchísima falta, y que por fin se ha implementado. Demos las gracias por ello.

Pero es que también se ha añadido soporte para carga y parseo de XML, por lo que se acabó también el cargar datos en los querystrings de las URLs o en archivos de texto en pares clave|valor. Por fin se puede estandarizar el protocolo de comunicación, permitiendo además desacoplar el interfaz (que podría ser Flash Lite,
o una aplicación web normal y corriente) de la fuente de datos. Aparte de que se abre la puerta a trabajar con webservices, claro está.

Sí, pero con J2ME se pueden hacer más cosas.

Sí, el punto más débil de Flash Lite en comparación con J2ME es la falta de funcionalidades. No se puede acceder al hardware bluetooth, ni a la api del PIM, ni a la cámara, pero en realidad, en la mayoría de aplicaciones, eso no va a ser necesario (no todas las aplicaciones móviles son juegos multiusuario basados en bluetooth). Sigue habiendo una enorme desventaja, pero ya no es tan insalvable como lo era antes.


Conclusión

La plataforma J2ME está más o menos donde estaba hace un año. Flash Lite no, ha dado un salto cualitativo muy importante, y ahora, más que nunca, la sensación que tengo es que, antes de comenzar el desarrollo de una nueva aplicación, puedo pararme a pensar seriamente sobre cuál es la mejor herramienta para resolver el problema, si J2ME o Flash Lite.

Finalmente, puedo elegir.

ACTUALIZADO: Durante un tiempo limitado, que creo no está especificado, se puede comprar el player de Flash Lite por 0€ (cero euros, regalado, vamos). Más información en Macromedia Labs

Comentarios

Que tal Cesar?

La verdad que se esta poniendo interesante la cosa.

Lo que no pude averiguar es si habra novedades de actualizacion para el player en PocketPC o algo para Palm, ya que tengo un desarrollo que me gustaria portar a esas plataformas ademas de celulares.

Muy util el blog!
Saludos!

Hola Víctor.

Gracias por tu comentario. En cuanto a Palm y PocketPC, no hay nada nuevo que yo sepa, aunque hace no mucho tiempo el player de flash para pocketpc estuvo a punto de desaparecer, así que no sé hasta qué punto se podrá esperar nada nuevo.

Aun no me he molestado en mirar... pero esto de flash lite... donde corre? en Symbiam? En pocketpc?? en cualquier movil?

En principio en symbian, joven, y sólo en teléfonos selectos (por ahora), aunque también hay por ahí alguna cámara de fotos que lo corre o lo va a correr, algún iRiver... (por poner un par de dispositivos exóticos)

http://www.macromedia.com/software/flashlite/

Bueno, me estreno comentando tu blog con este post.

Yo entre a ver J2ME hace 4 años, y le eche un ojo de nuevo hace 3. La sensacion que me dio es que seguia en pañales. Como siempre Java iba a lo standard, seguro, y multiplataforma, y mientras se consensuaban APIs para cosas mas "guays" cada compañia iba sacando las suyas. Nokia tenia toneladas de documentacion para hacer cosas super chulas, ya no solo con moviles sino con hardware que trabajaba en las redes de moviles. Pero todo estaba pero no estaba. Era una sensacion rara.

Al final el asunto J2ME vs Flash Lite, es como Applets vs Flash ... Flash llego mas tarde, pero lo hacia mas facil y mas bonito ... lo que pasa que ahora la derrota sera mas aplastante, primero porque flash ya tiene cierta popularidad, y segundo pq como comentas viene mas poderoso (AS2) que cuando empezo en Web.

Pero fue bonito que Sun llegase primero, y seguira siendo util que persista. En mi opinion.

Ahora que veo que no salen acentos, es posible qu no sea mi primer comentario ¡que memoria la mia!

No salen acentos? Cielos...

Estoy de acuerdo contigo en que probablemente las implementaciones de los perfiles J2ME están siendo muy conservadoras, en el sentido en que sólo incluyen unos mínimos demasiado mínimos. Vamos, que casi cualquier cosa se sale del perfil, por eso de un teléfono a otro va un mundo.

En cuanto al tema del Flash vs java, no sé, no creo que se deba plantear como una pelea, sino más bien como "conoce las herramientas a tu disposición y elige la que mejor te resuelva la papeleta". Cada uno tiene sus puntos fuertes...

De todas formas, sea tu comentario de debut o no, me gusta verte por aquí...

(gracias, cuando me lanzo me lanzo)

ahora sí sale, creo que esta mañana usaba explorer, que lo integra el RSS OWL, pulsas acento + la vocal, y solo sale la vocal.

Sí es un poco pelea, a mi entender, pelea de popularidad. Flash, super conocido en web, tenía una carencia. Y Sun, siempre en ese segundo plano, tenía un "hueco" donde hacerse escuchar (en las caracteristicas de los moviles suele poner "soporta Java" y muchos lo conocerán gracias a eso, muchos que ni saben que en web existe).

Y me refería a que las mismas virtudes y comodidades que los diferencian en la web, los van a diferenciar en los moviles. No sé con qué proporcion se harán juegos en Java frente a C++, xq creo que se puede hacer en ambos, pero flash lo pone más facil, así que Java perderá presencia, C++ no creo, pq quien se come tanto la pinza es pq necesita su potencia.

Y luego viene el segundo "torbellino", me parece más probable que un diseñador haga sencillos juegos gratis (como los hay ahora en web) a que los haga un programador (yo hice uno muy cutre, hace tiempo ví repositorios de midlets, y por mi mísero arcanoid se han interesado hasta portales rusos, un jaleo, porque no sé cómo estará de cómodo el poderlos acceder y descargar). Flash es mas popular y sus fans se esforzarán más por hacerlos facilmente accesibles, me imagino.

Hola:

Os cuento un poco mi visión, desde dentro del mundo del desarrollo de videojuegos para móviles.

Primero: desde el punto de vista técnico no tengo ni idea cómo es FlashLite, pero sí J2ME (lo uso a diario). He leído comentarios diciendo que J2ME es demasiado escaso, que se ciñe a los mínimos, etc... pues yo diría que a veces es demasiado grande. Hay que tener en cuenta que en el desarrollo para móviles cada byte cuenta, y que ahorrar 5 ó 10 KB en un juego es un abismo. Así que no sé cómo lo tendrá planteado Flash, pero cosas como que incluye un parser XML y demás me parecen fuera de lugar (nadie ni se plantea meter un parser XML en un móvil y ni mucho menos utilizar XML como formato de almacenamiento o intercambio).
También hay que tener en cuenta para qué dispositivos se desarrolla en cada plataforma: Java se centra en *todos* los dispositivos, desde la gama más alta de Nokia (aunténticas PDA) hasta los serie 40 con 128 KB de heap (ahí hay que hacer malabares para que arranque cualquier juego); mientras que parece que Flash tiende más a gamas altas, tirando a PDA etc. (más potencia de cálculo, más capacidad de memoria... otro mundo).

Desde el punto de vista de despliegue (comercial), los publisher de juegos para móviles tienen muy en cuenta el parque de móviles, y en cuantos más móviles funcione tu juego, más posibilidades tiene ser distribuirse y por tanto de venderse y dar beneficios (el objetivo final del desarrollo). Así que si yo desarrollo para J2ME (quizá más difícil y más "feo" que Flash), tengo asegurado un parque de móviles bestial, mientras que si desarrollo para Flash, sólo servirá para los dispositivos de gama alta, lo cual, hará difícil que un publisher me distribuya el juego y al final me lo como con patatas.

En definitiva, que en este mundo a veces cuenta más el factor económico (nos tienen cogidos por "las orejas") que el aspecto técnico y estético (aunque nos joda a los programadores y diseñadores).

Bueno, es mi opinión, lo cual no significa que no me equivoque (:

Saludos y enhorabuena por el blog.

JM

Gracias, JM.

Tienes razón en lo referente a la escasez de recursos sobre la que debe poder correr un programa J2ME, que viene dado precisamente porque debe correr en todos los dispositivos. Por otro lado, también tienes razón en cuanto a la penetración actual y en un plazo corto de FlashLite, sobre todo comparado con J2ME.

Yo creo que hoy por hoy, J2ME sigue sacando ventaja, desde luego, pero ¿en un futuro cercano?. Ahí creo que va a estar más igualado.

Los swf no suelen ocupar mucho, no en sí mismos otra cosa es que metas mil imagenes ... y el player "ya venía de casa", es posible que sea pesadito, y por eso solo venga en los moviles de alta gama, pero esto se soluciona con el tiempo, entre que la gente se entera, y se comienzan desarrollos, Flash Lite puede estar ya "en todos". De todos modos, el adicto, el que se deja los euros, no tendrá un movil cutrecín, cada vez oigo más "esto es lo que yo quería, un movil para llamar y ya está", el mercado se divide claramente, los que querrán flash lite & camara & bluetooth & whatever... y los que les sobra todo lo que no sean los dígitos del 0-9 y los dos botone verde y rojo.
Yo creo.

Los .class de java, al ser código compilado, tampoco ocupan mucho, pero en J2ME, se hace inmanejable tener un .class de 8-10 KB. Por eso se han ido introduciendo técnicas poco recomendables en el mundo de los grandes, pero esenciales para el "micromundo" de los móviles: ofuscadores (que cambian los nombres comprensibles y descriptivos por cosas como "a" o "bz"), optimizadores de código (que intentan construir código más compacto pero que haga lo mismo).
La ventaja de Java es un lenguaje con todas las de la ley, que genera bytecode estándar (con un formato público y conocido), y todo el mundo puede escribir herramientas para optimizar ese código. Sin embargo, Flash es propietario, y aunque Macromedia seguro que saca alguna herramienta de optimización y ofuscación, eso no suele ser suficiente (como ocurre con Java, que las herramientas que saca Sun son las peores de todas y hay que tirar del trabajo de la comunidad).

Y sobre cómo estarán las cosas en un futuro... pues no sé, pero Flash ya lleva unos años de desventaja y les va a resultar difícil recuperar ese tiempo perdido.
Yo creo que Flash a triunfado en la web porque era el único de conseguir páginas atractivas (la otra opción eran los applets de java, o sea: nada).
Sin embargo, en el mundo de los móviles Flash no es ni mucho menos el único que es capaz de conseguir juegos atractivos, es más, yo diría que todavía le quedan unos años para poder decir que está listo para usarse en el mercado real. Además, recuerda que Java ya ha desbancado a otros lenguajes y entornos, como Brew, Mophun. Con el único que todavía no ha podido es con Symbian, pero en ello está (:

Y que conste que no estoy en contra de Flash, todo lo contrario: me gusta su facilidad, pero sólo digo que soy muy escéptico con esas promesas, y más viviendo todos los días con los problemas que supone "meter" un juego completo en un móviles que no sean gran cosa.

Un saludo

JM

No tengo nada nuevo que argumentar, pero sepas que he leido la charla hasta el final. Un placer.

Bueno, sea como fuere, yo espero impaciente a ver qué nos trae el nuevo Flash Lite.
¡¡Quizá la solución definitiva pase por combinar Flash y Java!!

Un saludos y hasta la próxima charla!

JM

Bueno, opciones a Flash para la web, siempre las hubo mejores y las sigue habiendo, como Shockwave. Sino mirad las cosas que estan haciendo por ahi en Shockwave: http://www.shocksites.com.

Lo que pasa es que ultimamente se insiste en pensar que es Flash o nada, y eso es un poco simple ignorancia.

Shockwave soporta 3D en tiempo real, y es seguro y rapido. Al contrario que Flash, con el cual cualquiera puede bajar tu aplicacion web a su disco duro, y descompilarla hasta el final. Eso con shockwave o Java es imposible. En el caso de Java, descompilarlo, siempre que no este obfuscado, si, pero bajarlo al disco duro sin permiso no.

Y un poco Flash es la moto de siempre, que no anda, pero se vende mucho.

Bueno, Pepo, creo que ésa no es exactamente la discusión, pero creo que estás confundiendo un poco las cosas.

Seguro en web no hay nada. Lo que se publica es bajable y descompilable. Y punto.

Y en cuanto al shockwave, yo hace ya unos cuatro años que no hago nada en director, simplemente porque no hay demanda.

Puede que el flash no sea lo mejor, pero no creo que shockwave sea una mejor opción porque sí. Como para todo lo demás, cada problema necesitará de una herramienta apropiada para solucionarlo.

Bueno, una aplicacion Shockwave o Java no la puedes bajar al disco duro sin permiso. En Flash hay programas, que te bajan lo que estas viendo en la pagina, y por encima te lo decompilan de nuevo a .fla, con sus graficos y su codigo. Eso en Shockwave es imposible. Es imposible decompilarlo, y ver el codigo, aunque te hayan regalado el .dcr

Ya se que no es una discusion, pero queria dejar mi comentario.

Si piensas que Shockwave no tiene demanda, te dire que a lo mejor no la tiene aqui, que anda todo el mundo abducido con Flash, por simple desconocimiento, pero mirate en Shocksites.com, por poner un ejemplo, para que veas la base de desarrolladores que hay haciendo cosas bastante más interesantes, artística y técnicamente, que los minijuegos vectoriales de Flash, que estan mas repetidos que el ajo.

Yo gano dinero trabajando en shockwave. Mirate mi pagina en: http://www.geocities.com/deplastic

Y trabajo tambien con Flash, con gusto o sin el.

Flash fué excelente para crear animaciones en paginas web, y punto.

En cuanto a J2ME, con el cual tambien trabajo eventualmente, en MIDP 1.0, creo que Flash se viene quedando en promesas desde hace mucho tiempo. En su momento no consiguio nada de Nokia practicamente, y no veo que ahora lo vaya a conseguir. Y menos en el ambito que ahora tiene J2ME.

Incluso en cuanto a PocketPC, el Flash player es de pago (400 euros), y para Director hay un Xtra gratuito, que te convierte ejecutables a formato de PocketPC, y sin embargo, por desconocimiento, la mayor parte de gente ni se entera.

http://www.sharp-software.com/products/

Venga un saludo.
Y perdonadme si me sali un poco de tema.

No te preocupes, pepo, aquí se puede discutir de todo.

Pero no estoy de acuerdo contigo. Tanto los applets como los shockwaves se puden bajar a disco, sin ningún problema, y hay decompiladores al menos que yo sepa, para cualquier applet java. Repito, si quieres que algo sea privado de verdad, no lo publiques en web.

En cuanto al shockwave, yo he currado con director bastante tiempo a tiempo completo, y hace tiempo que está muriendo, sobre todo porque a Macromedia parece que no le interesa seguir invirtiendo en él.

No digo con eso que no sea una buena solución para algunas cosas, como los típicos cd-dvd interactivos, pero tampoco es ése un mercado con mucho tirón.

Entiendo que, viniendo de director, pienses que flash no es ni la mitad que shockwave, pero tampoco estoy de acuerdo con eso. Y como dije antes, y repito, para cada problema hay una herramienta, y hoy por hoy, es mucho más eficaz, barato y mantenible un desarrollo en flash que en director (generalizando, por supuesto, y sin entrar a discutir funcionalidades de uno u otro, hablo sólo de costes de desarrollo).

En cuanto a la comparación de flash y J2ME, está claro que J2ME tiene mayor implantación hoy por hoy (y eso es importante, lo de hoy por hoy), pero eso no va a seguir así mucho tiempo:

http://www.flashdevices.net/2006/01/macromedia-flash-now-shipped-on-more.html

No estamos de acuerdo en NADA pero eso es bueno, supongo. :)

No queria extenderme mas sobre el tema, pero te aseguro que un applet java no te lo puedes bajar y decompilar en el disco con un solo programilla. Y eso con Flash lo hace cualquier pringadillo con un PC, sin ser un hacker. Eso no es forma de publicar en la web.

En Java si esta obfuscado puedes sacar los graficos, pero no el codigo,(suponiendo que consigas bajar el applet) y en Shockwave el codigo de ninguna manera tampoco.

Esta claro que tu eres usuario de Flash y ahi quiza no seas del todo objetivo (tampoco yo), pero para mi, particularmente Flash es la ultima como opción. Primero estan Shockwave y Java para la web. Para mi, a años luz en cuanto a funcionalidad.

En los moviles, la realidad es la que es. En Nokia no consiguieron meter el player practicamente, y el PocketPC casi de mala manera. No creo que tenga mucha implantacion, porque tendran que convencer a los fabricantes para que metan por defecto el Flash Player en los dispositivos, y eso no es facil para nada.

Una cosa es la publicidad de macromedia o adobe y otra la realidad final. Y con el Flash player Lite disponible desde hace creo que dos años, la realidad salta a la vista. Lo puedes ver tambien en la cantidad de desarrollos disponibles en esa tecnologia, que es practicamente nulo.

¿Java para la web?. Me temo que si de verdad piensas eso no vamos a poder seguir discutiendo porque nunca vamos a estar de acuerdo.

En cuanto a lo de flashlite, que era el tema de la discusión, estás diciendo exactamente lo mismo que se decía en la comunidad de director o lo que decían hace unos años los programadores java del flash: que eso no iba a ninguna parte. En un año más o menos lo veremos. Mira dónde están shockwave y los applets ahora.

Y otra cosa, a mí no me ofusca la publicidad de adobe. Son ya unos cuantos años, y unas cuantas tecnologías, para valorar las cosas por mí mismo. Y por cierto, el pocketpc, como plataforma tampoco es que tenga demasiado futuro. O al menos, ahora mismo no tiene mucho más futuro que el que tenía hace tres años, cuando yo empecé a programar en él (en flash y Visual Basic, porque no había otra cosa).

Pero eso sí que es una discusión totalmente diferente.

Por cierto, se me había olvidado. Prueba a descompilar un applet ofuscado con JODE (vaya nombre)

http://jode.sourceforge.net/

El usuario tipo no sabe lo que es Java. No distingue entre la máquina virtual de Java de Sun y la de Micrososoft. Se la trae al pairo la versión de la misma.
El usuario tipo no sabe lo qué es shockwave. Se la trae al pairo, su versión y si Macromedia ahora es de Adobe.
El usuario tipo no sabe lo que es flash, un plugin, o la versión del mismo.
El usuario tipo sabe que una página de alto y rico impacto visual (y porqué no, a estas alturas de la movieclip, usable e incluso accesible) la ve con su pc,y el navegador que tenga instalado.
Flash Player viene de serie en todas las instalaciones de Windows desde hace 3 años.
Su actualiazción es automática, ligera e invisible para el usuario.
¿Damos al usuario un curso de administración de software y tal, o mejor le dejamos que navegue tranquilamente por el web?
La pato al agua en lo que a multimedia en la web se refiere se lo ha llevado Flash Player. Por méritos propios... o por el de los desarrolladores que lo han hecho posible.

Estas hablando de diseñar paginas web, eso es distinto.

Prueba tu a meter contenidos multimedia de este tipo en Flash o incluso en Java, acelerados por hardware OpenGL o DirectX:

http://www.skivedomain.com/bp/

Por poner el primer ejemplo que me aparece en shocksites, por ejemplo.

Lo que el usuario conozca no tiene que ver con lo que el desarrollador o vendedor conoce. El usuario pilla lo que le conviene, y si quiere usar un juego guapo en la web, no le importa bajarse el plugin de Java, o el de shockwave (que ocupa 4 megas este ultimo).

O sea que... enfin.
Cuando vea Flash en todos los moviles, de fabrica, (o tan solo la posibilidad de ponerlo gratis, por parte del usuario), te dire lo que pienso de el, como opcion de desarrollo.

Vale, cuando vea yo también el plugin de shockwave instalado en todos los ordenadores de sobremesa, comparamos también...

Está bastante más extendido que el Player de Flash en los dispositivos móviles. Y la diferencia, es que si lo necesitas, lo puedes poner en dos minutos, y el Player de Flash, ni lo tienes, ni lo puedes poner, y menos gratis.

Mala cosa.

El player de shockwave?. Como no sea en pockeptc, y con aplicaciones de terceras partes, no sé cómo. Debe ser que vivimos en mundos totalmente distintos. Bueno, yo personalmente lo dejo aquí, porque esto no va a ir a ninguna parte.

Decia:
El player de Shockwave en Mac y Windows: Bastante más extendido que el Flash Lite en los dispositivos móviles.

Que es muy fácil de decir que el Shockwave Player, no se lo van a bajar, porque ocupa 2 megas (!), que si no conocen... cuando, ciñendose al tema, el Flash Player, es prácticamente anecdótico en los dispositivos móviles.

Cuanto más, cuando el usuario del dispositivo tampoco va a tener opcion de instalarlo, si lo quisiera, y menos gratis.

¿Tu crees que ese es un modelo de distribución válido para el mercado?

Para el mercado de Macromedia, ellos sabrán, para el resto de desarrolladores no.

¿Tu crees que es necesario pagar 2000 euros por el Flash Streaming Server, cuando en Java, con las Java Media Framework, haces cosas mucho mejores y gratis?

Lo que pasa es que a muchos les acojona programar en Java o Director. Esa es la cosa. ;)

Vale, valiente. Fin del hilo. Que disfrutes tu shockwave

Hombre, no te enfades.

Tomatelo con calma, que yo solo te estoy exponiendo lo que hay.

Que yo estoy trabajando en un proyecto grande en ActionScript 2.0, y llevo desperdiciadas más horas, intentando que Flash se dé por aludido, que programando realmente.

Pero como mencione Java por aqui, se me caga todo Dios en los pantalones.

O sea que... asi andamos.
Paciencia y mucha filosofía.

Venga, un saludo muy amistoso.

;)

¿Qué pretendes, joven? ¿Darme a mí lecciones de java o de as?. No te pases de listillo, anda.

Por cierto, revisa tus habilidades con el AS, a lo mejor ése es tu problema.

Y cuando desarrolles aplicaciones empresariales distribuídas, en proyectos de 1 o 2 años, como hago yo, vuelves y comparamos.

Adiós.

¿Joven?

Pues tengo 37 tacos.
Y varias medallas.

No estoy hablando de ti en concreto. Ni siquiera estoy seguro de estar hablando contigo.

Solo estoy exponiendo mi opinión sobre un tema.

No es mi intención enfadarte.

:D

Pues en años me ganas por más bien pocos...

¿Cerramos ya el hilo, de todas formas?

... ay ése ombligo :(
... si ejj que ...

Si, vale.

Venga, un saludo, Cesar.

Muy bueno el Blog.

;)

Vale, Pancho, tienes razón, me he calentado un poco y me he pasado...

Disculpa, pepo

.. no me refería a TU ombligo... pero igualmente la concialición mola!
descansen armas hermanos...

La culpa es mia, por andarme quejando de las "penurias tecnológicas".

De disculpas, nada.
Gracias por la conversación.

;o)