INTERVIEW 
 
Mike Chambers
Responsable Apollo
Adobe
Mike Chambers (Adobe Systems)
"On peut construire une application Apollo juste en combinant HTML, JavaScript
et CSS"

Révolution chez Adobe, où Flash est au coeur d'un projet dont l'idée directrice rappelle celle de Java, mais avec Flash, HTML et ECMA Script. Le responsable d'Apollo nous dit tout sur ce futur moteur multiplate-formes.
01/12/2006
 
JDN Développeurs. Le grand projet actuel d'Adobe est bien entendu Apollo. Pourriez-vous nous le résumer ?
  En savoir plus
 Adobe Systems
Dossier Les plates-formes applicatives
  Le site
Projet Apollo
Mike Chambers. Nous travaillons en effet sur un projet dont le nom de code est Apollo, dont l'objectif est de créer un runtime (ndlr : moteur d'exécution) multiplate-forme, avec lequel les développeurs Web pourront utiliser les techniques qu'ils connaissent déjà - Flash, Flex, HTML, JavaScript/Ajax - pour concevoir et déployer des applications riches. Il s'agit d'utiliser exactement les mêmes techniques pour ne plus concevoir des applications dépendantes du navigateur.

Ce projet est proche de Macromedia Central, lancé il y a quelques années. Quelles leçons en avez-vous tirées pour Apollo ?
Nous avons rapproché ActionScript du document de travail ECMA Script 4."
Central n'a jamais vraiment été diffusé, c'était avant tout un test, limité aux développeurs intéressés, pour voir ce qui marchait et ne marchait pas dans cette manière de concevoir des applications. Nous appris beaucoup de choses pour Apollo.

Tout d'abord, Central était une application coquille dans laquelle s'imbriquait l'application du développeur. Cette façon de procéder impliquait une perte de contrôle au niveau de l'interface et de la personnalisation de l'application... Nous nous sommes rendu compte ensuite que le lecteur Flash n'était pas encore prêt pour une telle approche. Ses performances n'étaient pas suffisantes pour offrir un environnement Flash sur le poste client, hors navigateur Web.

Central, et Flex dans sa première version, ont été révélateurs de la nécessité de revoir en profondeur le lecteur Flash. Cela nous a mené aujourd'hui aux solutions Flash Player 9 (FP9), à ActionScript 3.0 (AS3) , à la nouvelle AVM (ndlr : ActionScript Virtual Machine)... Apollo se base sur la version 9 du lecteur Flash.

Qu'avez-vous eu à revoir au sein du Flash Player pour parvenir à vos fins ?
Depuis Flash Player 4 et son premier langage de script, tout le monde nous demandait à chaque nouvelle version de meilleures performances. Mais pour les besoins d'Apollo, il fallait quasiment repartir de zéro et réécrire la machine virtuelle. Les versions du lecteur Flash précédentes n'avaient pas été créées pour la programmation.

Dans la foulée, nous avons rapproché ActionScript du document de travail ECMA Script 4, auquel nous participons par ailleurs. Le lecteur Flash 9 implémente donc ECMA Script 4 pour les fondamentaux du langage, et y ajoute des API spécifiques à Flash, tout comme un navigateur le fait pour son implémentation JavaScript. La spécification ECMA Script 4 devrait être terminée mi-2007, et toute modification sera appliquée à AS3.

Un développeur pourra utiliser son JavaScript dans le navigateur ou avec Flash selon ses besoins."
L'aspect sympathique, c'est qu'ActionScript devient donc du JavaScript, et tous les navigateurs finiront par implémenter également ECMA Script 4, ce que Mozilla fait déjà grâce à la machine virtuelle que nous avons ouvert pour eux. Un développeur pourra à terme utiliser le même code JavaScript, à quelques adaptations près, dans le navigateur ou avec Flash selon ses besoins.

Apollo semble marcher sur les plates-bandes de Java et .Net. L'objectif était-il de proposer un concurrent ?
Je ne peux pas dire que nous cherchons à entrer en compétition avec Java ou .Net : Java est là depuis très longtemps déjà, et .Net est vraiment destiné au monde Windows. Notre but consiste à trouver la meilleure manière d'exploiter les applications Web sur le bureau pour n'importe quelle plate-forme, et ce avec un moteur d'exécution léger : nous visons les 5 à 9 Mo.

Côté programmation, je pense pouvoir dire que nous touchons à un développement un peu plus haut-niveau que Java ou même .Net par certains côtés, car en utilisant les technologies du Web, les technologies d'Apollo s'avèrent très accessibles.

2007 verra l'arrivée de Vista. Avec Windows Platform Foundation, XAML et WPF/E, comment comptez-vous pousser les développeurs à utiliser Apollo plutôt que les technologies Microsoft ?
On ne voit pas vraiment de concurrence entre les deux plates-formes : nous visons avant tout les développeurs Web habitués à Flash et JavaScript, habitués à voir leurs créations tourner sur plus d'une plate-forme, tandis que Microsoft vise les développeurs Microsoft. Nous ne construisons pas un environnement Windows mais un environnement de développement Web, et surtout multiplate-forme.

Un développeur Apollo pourra-t-il obtenir une interface native pour chaque plate-forme ?
Apollo permettra d'utiliser les langage du Web pour créer des applications desktop multiplate-forme."
Bien sûr. Mieux, Apollo dispose de deux principaux modes de fenêtrage : soit vous utilisez le chrome (ndlr : suite de composants graphiques) standard du système courant, avec ses spécificités ; soit vous concevez, très facilement votre propre chrome, à partir de Flash/Flex ou de HTML/CSS, et qui fonctionnera de la même manière sur tous les systèmes. Il est même possible de mélanger HTML et Flash, car HTML est en réalité affiché par le biais d'une image bitmap créée à la volée par le lecteur Flash d'Apollo, ce qui offre une intégration complète entre les deux technologies.

Faudra-t-il obligatoirement utiliser ActionScript 3 pour exploiter Apollo, ou sera-t-il possible d'employer les syntaxes précédentes ?
Apollo autorise ActionScript ou JavaScript en fonction de l'application. C'est d'ailleurs un point important : Apollo n'est pas juste du Flash : HTML est tout autant mis en avant. On peut construire une application Apollo sans même utiliser Flash, juste en combinant HTML, JavaScript et CSS.

Pour ce qui est d'utiliser l'ancienne syntaxe, je répondrai "oui et non". En ActionScript 3, on n'est pas obligé par exemple de typer ses variables, à la manière des précédentes versions. Mettons que vous disposez d'une bibliothèque de codes ActionScript 2 que vous voulez utiliser dans votre application Apollo, vous le pouvez. Vous pouvez même n'utiliser que AS2 pour votre application.

Les utilisateurs commencent à voir en Flash un outil de développement plutôt que seulement d'animation."
Le problème, c'est que les APIs d'Apollo sont disponibles en ActionScript 3, donc il ne serait pas possible de s'en servir avec l'ancienne syntaxe. Dans tous les cas, nous parions sur le fait que les applications seront créées en Flash/AS3 ou HTML/JavaScript, tout en disposant de méthodes pour exploiter son code AS2.

Pourquoi avoir sorti FP9 alors que l'environnement Flash 9 est encore en développement ?
C'est un point très intéressant. Nous avions toujours synchronisé les sorties du Flash Player avec celles de l'environnement Flash, mais aujourd'hui cet environnement n'est plus le seul outil faisant appel au Player. Nous en avons d'autres désormais, dont Flex et FlexBuilder. Le Player se trouve au centre de ce que l'on appelle l'écosystème Flash. Il devait donc être séparé de l'environnement, et disposer de son propre calendrier de sorties de manière à éviter que les équipes de l'environnement Flash et celles de Flash Player ne dépendent l'une de l'autre.

Mais le réel avantage, selon moi, concerne le taux d'adoption. Le Flash Player 9 dispose d'un taux d'adoption proche de 30%, et d'ici la sortie de l'environnement Flash 9, les développeurs auront accès à une base d'utilisation touchant 80 à 90% des machines, au premier jour. Cela met un terme au délai d'attente habituel, entre six mois et un an, entre la sortie de l'environnement et le moment où le Flash Player est suffisamment diffusé pour pouvoir l'exploiter. C'est un réel atout pour les développeurs.

Malgré l'évolution de Flash vers un écosystème de développement, l'outil est-il toujours perçu avant tout comme un programme d'animation ?
Malheureusement, oui. Nous croisons encore beaucoup de personnes qui ne voient que cela, même s'il nous semble que cette perception évolue. Par exemple, sur Slashdot, les commentaires sur Flash sont de plus en plus informés depuis deux ans. Flash reste de toute manière un superbe outil d'animation, mais nous travaillons à faire savoir qu'il a évolué et mûrit pour pouvoir mettre au point des applications riches.

Depuis la fusion entre Adobe et Macromedia, des craintes existent sur une possible fusion entre le lecteur PDF et le lecteur Flash. Qu'en est-il ?
Les plugins Flash et PDF ne fusionneront pas... sur le navigateur."
Nous avons effectivement mal écrit une réponse de FAQ à ce propos, peu après les annonces de la fusion et d'Apollo. Malgré que le texte ait été corrigé aussi vite que possible, l'idée reste encrée dans les esprits. Donc non, les deux ne fusionnent pas en ce qui concerne le navigateur, ce serait la pire manière de les faire évoluer car la taille des plug-ins deviendrait trop imposante.

Par contre, côté bureau, on peut imaginer avec Apollo les voir se rapprocher pour mieux travailler ensemble, en générant du Flash ou du PDF selon le besoin. Mais je le répète, cela ne concerne pas les plug-ins pour navigateurs.

Quelles sont les promesses de Flash 9 pour les développeurs ?
De bien meilleures performances, pour commencer. Beaucoup de progrès ont été faits autour de l'éditeur de code, qui disposera d'un véritable outil de débogage, enfin. En parallèle de cela, nous proposons désormais FlexBuilder, qui se destine en priorité aux concepteurs d'applications. Cela nous permet de laisser Flash faire ce qu'il sait bien faire vis à vis des créatifs. Mais nous ajoutons également à Flash des fonctionnalités, notamment des composants graphiques plus cohérents...

  En savoir plus
 Adobe Systems
Dossier Les plates-formes applicatives
  Le site
Projet Apollo
Avec Flash MX 2004, nous avons essayé de faire évoluer Flash pour plaire aux concepteurs d'applications, par exemple en introduisant les Écrans (ndlr : Screens en anglais, lire notre article). Ce faisant, nous avons déçu les designers sans parvenir à contenter les développeurs. Cet échec nous a mené à Flex et FlexBuilder, même si Flash reste autant un outil de développement que de conception graphique. FlexBuilder, de son côté, part de la même base pour proposer un outil de développement avancé. Il est d'ailleurs basé sur Eclipse.
 
Propos recueillis par Xavier Borderie, JDN Développeurs

PARCOURS
 
 
Mike Chambers Senior Product Manager pour Apollo, chez Adobe.