
Desde que Steve Jobs se negó a ver el producto de Adobe en sus plataformas móviles comenzó la batalla de tecnologías como Flash en estos aparatos. Poco a poco cada marca se ha ido posicionando de un lado u otro. Mientras Google anunció que Flash estaría disponible de forma nativa desde la versión 2.2 de Android, HTC distribuye con sus Android una versión de Flash y Microsoft dijo que estaría también de forma nativa en Windows Phone 7.
Pero para quienes hemos navegado con Flash en el móvil (mi actual HTC Legend) y sin Flash (mi antiguo iPhone 3G) sabemos que la experiencia de navegación dista mucho que desear por aquellos que tienen Flash. Los principales problemas son: rendimiento, consumo y seguridad. Esto se debe a que si dentro de una página tenemos algo en Flash ya no solo se debe cargar el propio motor de renderizado de la Web sino que también se debe cargar el motor de Flash eso hace que la página tenga peor rendimiento, mayor consumo ya que tiene un mayor coste computacional. Silverlight en ese aspecto no se queda corto.
Desde hace mucho tiempo se ha puesto en entredicho el rendimiento de Flash y la mayor parte de las veces no en vano. Hasta hace poco, en ordenadores que no tenían suficiente procesador, la carga de Flash era muy lenta. En el caso de los móviles por sus reducidas capacidades esto se vio acrecentado, como dije en un principio no estoy contento con el rendimiento de Flash en mi HTC Legend. Aún así hay bastantes matices con respecto a su fiel competidor: Silverlight.
La idea de Microsoft es algo que intentó Adobe con Flash en el iPhone: generar aplicaciones para los dispositivos móviles. Haciendo un repaso de los dispositivos móviles que a día de hoy tienen Silverlight, estos son:
- Symbian: Microsoft publicó hace poco una beta de la primera versión de Silverlight para Symbian
- Windows Embedded 7 CE: Como decía ayer en esta versión especial para tablets se podrán desarrollar aplicaciones con Silverlight.
- Windows Phone 7: Windows Phone 7 no tendrá soporte de Silverlight en el navegador pero, junto con XNA como dije el martes, es su único modelo de desarrollo.
- BlackBerry: Manu ya nos contó que Blackberry tendrá soporte para Silverlight.
Pero Flash tras el último cambio de contrato Adobe se quedo fuera totalmente del iPhone. En cambio, la idea de Microsoft es meter la posibilidad de desarrollar aplicaciones con Silverlight en todos los dispositivos que se pueda. Así, no sería necesaria la inclusión del plugin de Silverlight en el navegador de Windows Phone 7 u otras marcas, y así no les pueden achacar peor rendimiento. De esa forma para los desarrolladores tendrán una plataforma que con muy pocos cambios, al igual que XNA, se puede portar a distintas máquinas sin necesidad de disminuir el rendimiento.
Pero no solo eso, sino que Silverlight de serie trae muchas cosas que Flash carece como puede ser:
- Soporte multitáctil: elemento necesario para cualquier pantalla táctil
- Aceleración por hardware: que mejora el consumo y rendimiento
- Un entorno seguro de ejecución: que le da una seguridad extra
Creo que es muy importante que este tipo tecnologías estén presentes en dichos dispositivos. Para empezar porque la cantidad de diseñadores que se dedican a hacer cosas para ellos es mayor que para aplicaciones de escritorio y tanto Flash como Silverlight está pensado para estos profesionales. Por otra parte, la cuestión de si soportar Flash o no en el navegador es algo realmente trivial, no creo que hoy en día haya ninguna web que necesite ni uno ni otro para ser eso: tan solo una web. Si se necesita algo más, puede ser una aplicación que además como desarrollador podrás monetizar.
Foto: Inside Tech










Un par de matices. Flash es completamente multitactil: http://theflashblog.com/?p=1975
Flash a partir de la versión 10.1 (para este mes) llevarà acceleración por hardware: http://www.adobe.com/devnet/flashplayer/articles/fplayer10.1_hardware_acceleration.html
@Xavi: Gracias, no sabía lo del multitáctil. De todas formas lo de la aceleración por hardware si bien llevan tiempo diciendo que Flash 10.1 tendrá aceleración por hardware, todo depende de si el dispositivo lo soporta esa capacidad. En cambio hace más de un año que Silverlight lo tiene de serie.
De momento lo soportan los Android con Froyo (o sea los Nexus One actualizados). En Engadget US hicieron una comparativa con dos Nexus One: http://www.engadget.com/2010/05/23/flash-10-1-on-froyo-goes-tete-a-tete-with-flash-lite-4-on-eclai/
Tendremos que ver como evoluciona…
@Xavi: Por supuesto, pero a mi eso de que solo un dispositivo lo soporte… no se… sigo diciendo lo mismo… cuando lo vea en mi HTC Legend hablamos. Yo seguramente busque la forma de deshabilitarlo en mi móvil.
Silverligh es pésimo, es sólo por estar en contra de Adobe
@José Miguel: ¿En que te basas para hacer esa afirmación? Es una tecnología potente, con un lenguaje de programación que le da mil vueltas a ActionScript de Flash, más ligero, con mejor rendimiento y además incluso Youtube hizo streaming en directo con Silverlight (partidos de la NBA) por ser mejor que Flash. Yo ahora ya no te pregunto porque dices que es mejor Flash, que dependerá de cada lo que comparemos, te preguntó por qué afirmas que es pésimo.
Lo afirma porque es de microsoft nada mas. Ami lo que me molesta de silverlight esque los de microsoft se empeñen en no sacar una version para linux, si esta moonlight pero siempre ira un paso detras de microsoft.
En que te basas para decir que .NET(en este caso C#) le da mil vueltas a ActionScript?
C# es muy buen lenguaje cuando hablas solo del rendimiento de las aplicaciones, en cambio ActionScript 3 ayuda para el desarrollo rapido tambien, puede ser tan tipado como quieras y tan estatico como quieras.. otra de las grandes desventajas de C#.. yo no digo que C# no pueda ser dinamico.. pero la forma en la que lo implementas simplemente parece un mal parche a un lenguaje que nunca fue pensado para eso
claro.. puedes usar otros lenguajes totalmente dinamicos para trabajar con silverlight, pero ahi estarias perdiendo todo tu rendimiento .
yo no digo que silverlight no sea una buena tecnologia, simplemente pienso que el argumento que tiene jose miguel es correcto..
Silverlight es pesimo, por que no tiene herramientas una forma sencilla y rapida de crear animaciones y aplicaciones como las tiene Flash.
vamos, que pagate una licencia de visual studio y expression ;)
kibo: ActionScript es un lenguaje: lento, feo e inseguro. No se porqué dices que la implementación como lenguaje dinámico es un mal parche, lo han implementado en la plataforma y por ejemplo IronPython (Python en .NET) que hace uso de esas mismas características le da mil vueltas en rendimiento al Python oficial, como así ha reconocido la Python Foundation.
El rendimiento de Silverlight es el mismo programes con C# o con el lenguaje que sea.
Y sobre las herramientas… pues tienes las suficientes en http://www.microsoft.com/express gratuitas.
Otro tema son las versiones profesionales, que vamos es el mismo argumento que no pagar AutoCad por un arquitecto :-P
hablamos de la calidad de las herramientas.. incluso los precios son mas accesibles los de adobe. en cuanto a calidad y precio, adobe les gana por mucho.
ningun lenguaje dinamico que corra en .NET va a ser mas rapido que C#.. no hay forma que pueda pasar, lo mismo pasa con la JVM.
http://stackoverflow.com/questions/145191/dynamic-net-language-performance
Yo no estoy a favor de Adobe, ni Apple, ni HTML5, ni Google, etc.. simplemente si se va a hacer una reseña o comparacion de tecnologias.. seria bueno que muestres ventajas y desventajas de las dos plataformas.
Ademas… no se en que te basas para decir que es inseguro ? quizas si sea mas lento que C#, pero gracias a eso viene lo que hace al lenguaje tan dinamico y funcional.. intenta usar high order functions en C# de la misma manera que AS3.
no digo que ninguno de los dos sea mejor, simplemente digo que cada uno tiene su mercado, y el mercado de ActionScript es mejor para este tipo de cosas.. vamos que poner C++ en vez de Javascript para lenguaje de la web no es buena idea :).
PD: programo en C#, no soy diseñador ni uso ActionScript(bueno, ya no lo uso)
En el tema de precios de las herramientas no me voy a meter, una versión gratuita en uno y en otro no.
Me baso en que es inseguro en las continuos problemas de seguridad que tiene Adobe por inyección de código malicioso.
De todas formas, por mi parte no voy a continuar el tema, porque es evidente que ni tu me vas a convencer a mí, ni yo a ti :-P Y sobre todo porque este no es un blog de programación.
De todas formas, si quieres, mándame un email y te cuento como hacer las “high order functions” cómodamente en C# :-P
PD: Yo también programo en C#, pero también soy diseñador y si estoy especializado en Silverlight
y en tus tiempos libres salvas al mundo?
Yo no he dicho que esté a favor de Flash, que fue un bombazo en su tiempo, pero que está quedando muy atrás.
También os digo que finalmente sacarán un lenguaje de programación implementado en el explorador, compatible con todos los sistemas operativos, y no por un plug-in por el cual Firefox se quede bloqueado :-)
¿Y qué pasa con “ninguno de los 3”? Las aplicaciones deberían ser todas nativas, basta ya de malgastar ciclos de reloj en intérpretes para obtener aplicaciones que van como el culo por evitarse una innstalación de 1 minuto… Para cosas concretas está bien, pero para todo no joer…
Silverlight no es un intérprete, ejecuta código nativo. :-)
Pues mira que pasaba por completo de ella por que no me gusta tener tanta aplicación para ejecutar aplicaciones instalada pero así a lo mejor hasta la instalo =D Pero a lo que yo voy es que si gracias a facebook un truño como es Farmville ha llegado hasta donde está ¿Qué no podría hacer un juego nativo con una instalación sencilla? Estos sistemas de ejecutar código en ocasiones son útiles pero más de una vez frenan el crecimiento en mi opinión, además de abrir brechas de seguridad que el usuario no puede controlar.