En la fiesta por el décimo aniversario de Flash se han reunido todos los lenguajes de programación. Estamos en el jardín de la mansión donde se celebra el ágape. Java y .Net están un poco apartados del resto de la fiesta, sentados en un banco del jardín, mirando hacia la piscina, donde Flash es el anfitrión perfecto. De fondo, suena la música…
- Mira. Parece que el mundo gira gracias a él…
El tono de Java sólo podría calificarse de sarcástico, con cierto matiz de amargado.
- Psss. Déjale que disfrute, le quedan dos telediarios. En cuanto mi primo Silverlight empiece a extenderse…
- (Ya está otra vez el de Microsoft con sus delirios de grandeza. Dejémoslo correr). La verdad es que no le vendría mal una cura de humildad. Ser joven y tener éxito no debería hacer que la gente anduviera por ahí con esos humos. Total, los malos tiempos pueden llegar en cualquier momento. Míranos a nosotros, sin ir más lejos.
Java apuntaba sus ojos hacia su rival, aunque realmente miraba mucho más allá. En esos momentos no estaba viendo a Flash, rodeado de modelos y artistas, que se había convertido en el alma de la fiesta, sino que estaba viendo su pasado reciente, preguntándose qué es lo que Flash hizo distinto a él y que le convirtió en lo que es ahora.
La evolución de Flash
Porque Java recordaba perfectamente el día que le contaron que un tal Jonathan Gay había desarrollado una herramienta para Mac llamada Superpaint. También recordaba el día que le contaron que Mr. Gay, junto con Charlie Jackson y Michelle Welsh acababa de crear una compañía llamada FutureWave Software. También recordaba cómo las noticias en Silicon Valley corrían de boca en boca a la velocidad del rayo.
Java también recordaba, como si fuera hoy, el día en el que FutureWave lanzó Futuresplash Animator. Recordaba como si fuera hoy las risas de todos los lenguajes de programación al ver cómo se lanzaba una herramienta de animación, basada en línea de tiempo, y que se pretendía que competiera con lo que entonces era el producto estrella de una joven compañía: el Shockwave de Macromedia.
FutureWave, y esto Java no lo sabía, ofreció Futuresplash a Adobe y a Microsoft. Incluso, para mayor oprobio de .Net, que nunca hablaba de este episodio en público, Microsoft lo utilizó en sus primeras versiones de MSN.
Al final, Macromedia quiso eliminar la competencia de Futuresplash, como se suelen hacer las cosas en el mundo de la tecnología, y compró el software en diciembre de 1996, lanzándolo, posteriormente, como Flash 1.0.
- ¿Tú te acuerdas cuando tu jefe, ése de las gafitas, se empeñó en usar Futuresplash en el engendro ese de MSN? Espera, ¿dónde vas? ¿Cómo que tienes que ir al baño? (lo sabía, siempre que le mientas lo del MSN recuerda que tiene una cita muy urgente y se marcha dando destellos de pantallazo azul). En fin…
Java volvió a su ensoñación. Al menos, en los días de Flash 1, incluso en los de Flash 2 sólo era una herramienta de animación. Lo peor estaba por llegar. ¡Con Flash 3 se podían incluir scripts!
Lo que se rieron Java y sus amigos cuando vieron el primer script de Flash. ¿A eso lo llamaban programar? Madre del amor hermoso. La sintaxis era horrenda, muy muy complicada, nada intuitiva. Hacer cualquier cosa que fuera más allá de gestionar un rollover de un botón era una tarea casi titánica…
Y sin embargo, los que trabajaban con Flash eran capaces de generar contenidos con una interactividad como no se había visto en la Web hasta la fecha. Eso sí, también fueron los que pusieron de moda la peor de las aberraciones que en el mundo de Internet han sido, y eso que han ido muchas: la obsesión por las intros animadas con un botón de skip intro, que es lo que todo el mundo clicaba en cuanto veía.
Lo de las animaciones de introducción empeoró incluso cuando se liberó la siguiente versión de Flash, la número 4. Empeoró porque, de repente, el reproductor de Flash estaba embebido en las instalaciones de IE, Netscape y AOL. Casi sin tiempo para reaccionar, el 92% de los ordenadores conectados a Internet eran capaces de reproducir contenido basado en Flash (en realidad, de reproducir intros basadas en Flash).
No obstante, algo deberían tener esas intros animadas, pensaba Java, cuando todo el mundo las implementaba. Porque, en el fondo, él podría hacer lo mismo. No hacía mucho que uno de sus hijos, Applet, había pasado por su momento de gloria.
Se habían construido cientos de menús y de barras de navegación para sitios web gracias a que Applet había estado haciendo horas extras a destajo. Sin embargo era Flash el que ganaba adeptos.
Tal vez sería, pensó Java, porque el reproductor de Flash fuera más ligero y más fácil de instalar que su máquina virtual. O tal vez fuera porque los desarrolladores de contenido en Flash fueran como su entorno de desarrollo, poco convencionales, atrevidos incluso, y tal vez por ello proclives a llamar la atención en un mundo nuevo y emergente como era Internet. “Se lo debería decir a mi madre”, pensó Java, “ella que se ha pasado toda la vida diciéndome que vistiera bien, que fuera siempre bien peinado y con los zapatos limpios, y luego me come la merienda un hippy”.
Pero lo que a Java le dolía de verdad no fue la época del skip-intro, sino la que estaba por llegar, la que comenzó con la introducción de Flash 5 y el ActionScript (AS). Porque, de repente, los flasheros se atrevían a hablar de “aplicaciones”, “interfaces ricos”, “edugaming”… ¡Pero bueno! ¡Y lo peor es que se fueron creciendo!
De repente, las comunidades dedicadas a esa herramienta para diseñadores estaban plagadas de discusiones sobre programación orientada a objetos, herencia, composición, incluso ¡patrones de diseño! ¡Con un lenguaje basado en prototipos! ¿Cómo podía ser que esa gente se atreviera con tanto? ¿Cómo podían tener semejante desparpajo?
Pues lo tenían. Java recordaba cómo, de repente, empezaron a despedir a su hijo, Applet, de varias webs, y a sustituirlo por piezas desarrolladas en Flash, con el argumento de que eran más baratas de desarrollar, al necesitar menos tiempo y menos esfuerzo de programación.
Claro, que también se acordaba, sin poder evitar una sonrisita malévola, de algún fracaso de Macromedia, como Generator, ese intento de generar el contenido Flash en servidor.
Lo que Java no sabía era que ni siquiera el propio Flash estaba muy seguro de cuál sería su futuro. Si bien era cierto que había un gran abanico de desarrollos que Flash se sentía capaz de solventar con rapidez y elegancia, lo cierto es que el traje le empezaba a venir grande. Tanto decir que “eso lo puedo hacer yo”, tanto hacerse notar, hizo creer a todo el mundo que Flash era capaz de hacer cualquier cosa, por complicada que fuera. Sin embargo, Flash no tenía un arsenal de herramientas que le permitiera cumplir con las expectativas. Y ni siquiera el lanzamiento de Flash 6 supuso un cambio en ese sentido.
Pero en ese momento, Macromedia llegó al rescate con la release de Flash que marcó un punto de inflexión aún mayor del que supuso Flash 5: Flash MX 2004.
Súbitamente, Flash tenía ante sí un lenguaje orientado a objetos de verdad, un reproductor potente y eficiente, y una serie de herramientas que le permitían cumplir con las expectativas levantadas. Ahora sí que se hablaba de patrones de diseño, de extreme programming aplicado al desarrollo en Flash, de UML, de tantas y tantas cosas que hasta ahora sólo habían estado al alcance de otros, pero que de repente eran necesarias para sacar adelante los proyectos que se planteaban. También fueron los tiempos de los primeros pasos de otras de las tecnologías que luego constituirían la llamada Flash Platform como Flex, Breeze o Flash Lite.
Flash recordaba esa época con cierta añoranza. Miles de sus soldados, a lo largo y ancho del mundo, tuvieron que someterse a un esfuerzo de reciclaje brutal (esfuerzo que dejó a muchos por el camino) para convertirse, de la noche a la mañana, de “programadores multimedia” a “desarrolladores de aplicaciones”, sin dejar por ello de mantener su “actitud” rebelde.
Java, sin embargo, ya no quiere ni acordarse de esos días. Mucho menos aún, de lo que vendría después: Flash 8.
Aunque en su momento el lanzamiento de Flash 8 supuso una decepción para muchos de los miembros de la comunidad, en realidad fue la versión que definitivamente llevó a Flash a la mayoría de edad. El nuevo motor de renderizado de fuentes, que siempre había sido lo que traía al pobre Flash de cabeza, o los nuevos códecs de vídeo abrieron muchas puertas a la implantación de la plataforma. Además, meses después del lanzamiento de Flash 8, se liberó Flash Lite 2, de manera que ya no sólo se podía desarrollar aplicaciones para escritorio en AS2, sino que también se podían seguir las mismas metodologías en el desarrollo de aplicaciones para móviles.
También fue la época del despegue del fenómeno del Flash Open Source, de la aparición de varios frameworks para ayudar al desarrollador. Java siempre mira, con razón, a estos esfuerzos por encima del hombro, pero lo cierto es que son el germen de lo que pudo ser un futuro brillante.
Pero aún quedaba un paso más en el intento de Flash de convertirse en una plataforma de desarrollo integral: el lanzamiento del Flash Player 9 y de Flex 2 supuso un ataque directo al desarrollo de aplicaciones empresariales de tamaño pequeño y medio. Ataque que se mantuvo con el lanzamiento de Flash 9 basado en el mismo reproductor, y ActionScript3, que ya no es, como lo fue AS2, un mero recubrimiento estilístico de AS1, sino que es un lenguaje que compila a un nuevo bytecode, que proporciona una significativa mejora de rendimiento, y sobre todo, que facilita un modelo de desarrollo mucho más robusto, con revisiones de tipos real en tiempo de compilación y de ejecución, un sistema de emisión y gestión de eventos basado en el estándar DOM (¡por fin!), E4X, clases gráficas (¡por fin también!) racionalizadas…
De Flash 1 a Flash CS3 (Ilustraciones realizadas por César Tardáguila).
- ¿En qué piensas?; preguntó .Net, que ya había vuelto de su momento de íntimos pantallazos azules.
- En que no sé por qué Flash y yo siempre estamos a la gresca. Sinceramente, tampoco es que tengamos ámbitos de actuación solapados, sino que cada uno de los dos tiene su corralito bien definido.
- ¿Quieres que te dé mi opinión, Java? Pero no te va a gustar lo que te voy a decir.
- Dispara.
- Pues que Flash es sólo cuatro años más joven que tú, pero tú pareces veinte años más viejo que él. Que tú casi no has evolucionado nada desde que naciste, que tienes una pinta de aburrido y de tostón que no hay quien la aguante, y que él, sin embargo, vive en una montaña rusa, siempre cambiando, siempre haciendo cosas nuevas, siempre abriendo nuevos caminos.
- Vaya, la primera vez que dices dos frases seguidas sin tenerte que reiniciar y son ésas… Anda, pásame otra copita.
Cita recomendada: TARDÁGUILA, César. La historia de Flash. Mosaic [en línea], septiembre 2007, no. 60. ISSN: 1696-3296. DOI: https://doi.org/10.7238/m.n60.0730.