Hace unos pocos años, se suscitó una discusión por todo Internet entre Jobs y Adobe, en donde el primero había ya decidido por sus pistolas que la plataforma Flash usaba muchos recursos y que ésta no sería implementada en el iOS, por lo que el iPad y el iPhone (y iPod Touch) no tendrían acceso a los contenidos escritos en Flash. Hubo cartas abiertas de Adobe, indicando que en este mundo de tantas posibilidades era ridículo que alguien quisiera imponer su punto de vista cerrando el acceso a una plataforma tan popular como Flash. Jobs no cambió de opinión y hasta donde entiendo, los dispositivos iOS siguen sin correr Flash.
Esa es quizás una de las razones para que a alguien se le haya ocurrido escribir un compilador compatible con Flash y que pudiese usarse en los dispositivos móviles sin los problemas que Flash tuvo. Así nace PlayScript, que es precisamente ese compilador de código abierto compatible con ActionScript (de Adobe), los dueños de Flash. Tiene un módulo de runtime compatible con Flash y corre en el medio ambiente de Mono .NET, buscando acceder a los dispositivos móviles a través de la plataforma Xamarin. Con una combinación de Adobe FlashBuilder para la Web y Xamarin Studio for mobile, se pueden crear aplicaciones complejas, las cuales pueden desarrollarse en un entorno completo (IDE), con depurador de código y soporte para intellisense en todas las plataformas. Se tiene pues acceso a todos los API nativos de la plataforma móvil.
El compilador PlayScript también puede compilar C++ y Javascript (similar al compilador Haxe), permitiendo que el código de ActionScript corra vía Javascript en la web, o nativamente en la PC y en algunas plataformas móviles (hay ciertas limitaciones). Cabe decir que por el momento Javascript y C++ están en etapa experimental.
Aparte del soporte exacto al lenguaje ActionScript, el compilador PlayScript también soporta un nuevo lenguaje -PlayScript- que es derivado de C# y ActionScript. Este nuevo lenguaje soporta todas las características de C# incluyendo propiedades, eventos, tipos de valor, sobrecarga de operadores, programación asíncrona, genéricos, linq, y al mismo tiempo es compatible con ActionScript. El lenguaje PlayScript puede ser usado para las plataformas web y móvil (vía Xamarin y Javascript) y el código Flash existente puede ser convertido fácilmente a PlayScript renombrando simplemente los archivos “.as” a “.play” y corrigiendo un par de detalles relacionados con la sintaxis más estricta de la asemántica del lenguaje PlayScript.
Así pues, hay siempre alternativas a las posturas radicales. PlayScript parece ser la solución amable en la disputa que Apple tuviese con Adobe hace años. Veremos como prospera.
Referencias: