Trois fêtes Firefox par an ?

Quand décider de la sortie d'une nouvelle version d'un logiciel ? Il existe en la matière plusieurs écoles. Les uns choisissent de sortir régulièrement des versions mineures, à chaque fois qu'une nouvelle fonctionnalité est prête. D'autres font le choix de la régularité et sortent des versions à date fixe, contenant les fonctionnalités mûres à cette date. C'est par exemple le cas d'Ubuntu qui publie deux mises à jour par an, en avril et octobre. D'autres enfin préfèrent décider d'une liste de fonctionnalités à intégrer à chaque version, et la publier lorsque toutes sont prêtes. C'est le choix de Debian et, jusqu'alors, de Firefox. Chaque solution a ses avantages et ses inconvénients, ses partisans et ses détracteurs, je ne lancerai pas le débat ici.

Mozilla a décidé en début d'année de modifier sa politique de publication de nouvelles versions de Firefox, en choisissant de proposer des nouveautés beaucoup plus régulièrement. Ce nouveau processus est en cours d'expérimentation avec le prochain Firefox 5. Fidèle à sa politique d'ouverture et d'implication de la communauté, la Fondation a publié les brouillons des documents le décrivant, et propose d'en discuter sur une liste.

Désormais, de nouvelles versions devraient donc être proposées à dates fixes. Si une fonctionnalité n'est pas prête à cette date, elle sera reportée à la version suivante, au lieu de retarder la publication (on devrait ainsi éviter de reproduire la sortie de Firefox 4, mainte fois repoussée et finalement survenue plusieurs mois après la date annoncée). Auparavant, les sorties étant très espacées, si une fonctionnalité était écartée d'une version, les utilisateurs devaient attendre de longs mois avant d'enfin pouvoir en bénéficier. Désormais, elle pourra leur être délivrée seulement quelques mois plus tard. Les utilisateurs vont donc pouvoir bénéficier beaucoup plus régulièrement des améliorations, tout en utilisant un logiciel stable avec lequel toutes leurs extensions favorites fonctionneront (jusqu'à présent, pour profiter des dernières avancées, il fallait utiliser des versions de développement, pas toujours compatibles avec toutes les extensions).

Mozilla a pour l'instant arrêté un cycle de 18 semaines, c'est à dire qu'une nouvelle version de Firefox devrait voir le jour environ tous les quatre mois.

Désormais, vous aurez donc le choix entre quatre "saveurs" de Firefox:

  • les versions stables : Firefox 5, 6, etc. Ce sont les versions pour le "grand public";
  • les versions beta: elles contiennent toutes les fonctionnalités des versions stables, mais sont encore en phase de test et peuvent rencontrer quelques bugs. Une nouvelle beta devrait être disponible chaque semaine;
  • deux versions instables, de développement, mises à jour toutes les nuits. Aux nightlies actuelles, compilées à partir de mozilla-central (le tronc) s'ajoute désormais Aurora. Aurora est une version intermédiaire entre les nightlies et les betas. Elle vise à stabiliser les nouvelles fonctionnalités en corrigeant un maximum de bugs, là où le but des betas est de s'assurer de la stabilité du navigateur en le testant à grande échelle. La branche Aurora sera synchronisée toutes les 6 semaines avec le tronc, après la création d'une beta;

Concrètement, toutes les 6 semaines une nouvelle version de Aurora sera créée à partir du tronc. Elle sera alors progressivement stabilisée, une nouvelle version étant disponible toutes les nuits. Six semaines plus tard, une beta sera créée à partir de cette Aurora. La beta sera validée pendant 6 semaines avant d'éclore d'une version stable.

Avec le processus précédent, le tronc devait être régulièrement gelé, c'est à dire qu'aucun nouveau développement ne pouvait arriver dans Mozilla Central le temps de stabiliser chaque beta. Les développeurs n'arrêtaient bien sûr pas de travailler, mais préparaient des patchs qu'ils appliquaient sur le tronc à sa ré-ouverture. L'application simultanée de nombreux patches à ce moment posait bien sûr des soucis. Désormais, le tronc ne sera plus gelé et les évolutions pourront être intégrées au fil de l'eau et disponible immédiatement dans Nightly.

Vous pouvez choisir votre saveur de Firefox soit en vous rendant sur cette page, soit depuis la fenêtre À propos de Firefox (disponible je crois uniquement pour Aurora pour l'instant, je n'ai pas le choix dans ma Nightly).

Les documents décrivant en détail ce nouveau processus sont disponibles sur Github:

Ce nouveau processus va bien sûr avoir de nombreux impacts, par exemple sur la gestion des traductions et des extensions. Un changement de politique en matière de compatibilité des extension vient ainsi d'être décidé. Jusqu'à présent, il revenait aux développeurs d'extensions de vérifier la compatibilité de leur travail avec les nouvelles versions de Firefox. A chaque nouvelle version du navigateur, ils devaient mettre à jour leur extension pour préciser qu'elle était compatible. Dans le cas contraire, l'extension était désactivée. Des solutions existent bien sûr, mais qui demandent quelques manipulations, donc ne sont pas accessibles à la majorité des internautes. Avec l'augmentation du rythme de sortie des nouvelles versions de Firefox, le risque était grand que de plus en plus d'extensions soient désactivées, simplement parce que leurs développeurs n'ont pas le temps de les mettre à jour. Désormais, les extensions seront donc automatiquement réputées compatibles, jusqu'à preuve du contraire. C'est une raison de plus d'utiliser des versions de développement de Firefox avec le Add-on Compatibility Reporter, pour signaler au plus tôt les problèmes de compatibilité.

La fin des aventures d'Ember et Spark

Pendant des mois, nous avons pu suivre en direct la vie de Spark et Ember, deux adorables bébé panda roux nées en juin 2010 au zoo de Knowville et adoptées par Mozilla. C'est à présent fini. Les pandas roux grandissent plus vite que les humains, Ember et Spark sont déjà adultes, et ont été envoyées dans deux autres zoos où elles vont à présent essayer de contribuer à la préservation de l'espèce en se reproduisant. Les webcams se sont éteintes il y a quelques jours, et je me sens triste, tant de ne plus les voir que de les savoir séparées. Saloperie d'espèce humaine qui ne leur laisse guère d'autre choix que de vivre en cage. J'espère que mon filleul Pinju est un peu plus heureux dans sa forêt népalaise. Sarah, qui a veillé sur elles, explique qu'elles vont avoir un rôle important : la population des pandas roux dans les zoos est peu nombreuse. Ember et Spark sont d'une lignée peu représentée, et devraient aider à éviter les problèmes liés à la consanguinité en introduisant un peu de diversité génétique. C'est à vrai dire un peu effrayant de voir que pour essayer de sauver l'espèce, toutes leurs relations sont planifiées par l'Association des Zoos et des Aquariums dans le cadre d'un programme de préservation des espèces menacées. L'intention est évidemment louable, mais la planification en ce domaine laisse une sensation assez désagréable (oké, ça se fait encore dans nombre de sociétés humaines).

Préparez-vous à accueillir Workspace

En tant que développeur Web, un des chantiers en cours dans Firefox qui m'intéresse le plus est l'intégration native d'outils de développement. Certes sur mon poste j'ai Firebug et toutes les extensions nécessaires pour travailler, mais étrangement, les bugs arrivent généralement sur les postes d'utilisateurs sur lesquels on ne dispose d'aucun outil pour essayer de comprendre ce qui se passe. Un groupe de travail a heureusement été constitué pour réintroduire nativement dans Firefox 4 et suivants les outils qui en avaient été évincés il y a quelques années (ah l'inspecteur DOM de la suite Mozilla). Firefox 4 contient ainsi une Console Web et robcee vient d'annoncer l'arrivée prochaine de Workspace, un éditeur pour exécuter simplement du JavaScript dans la fenêtre en cours, comme le permet Firebug. Actuellement, Workspace est déjà disponible sous la forme d'une extension. Pour qui utilise Firebug depuis des années, cela paraîtra sans doute anecdotique. J'y vois pour ma part une avancée intéressante: on va bientôt pouvoir programmer le Web directement dans Firefox, sans même avoir à installer la moindre extension. C'est un petit pas de plus pour rendre le Web bidouillable.

Je vous conseille d'aller jeter un œil au wiki du groupe de travail, beaucoup d'alléchantes merveilles sont dans les tuyaux.

Les sucreries pour développeurs Web pourraient aussi venir du côté de JavaScript. David Mandelin a posté la feuille de route des évolutions du moteurs JavaScript prévues ces prochains mois, en tête de laquelle figure une nouvelle API de debug, permettant entre autres de se connecter et de de debugger à distance un script s'exécutant dans une page. Avec la place croissante que va prendre JS, qu'il se dote d'outils facilitant le debug est plutôt une bonne nouvelle.

Les animations CSS arrivent dans Firefox !

A la différence des précédentes, la norme CSS3 n'est pas monolithique mais composée de modules indépendants (une quarantaine à ce jour). Apple, probablement pour des besoins internes à iOS et à sa gueguerre contre Flash, a dès 2007 proposé plusieurs spécifications permettant de réaliser des animations en CSS: gérer les transitions entre deux états d'un élément, des transformations dans un espace à deux ou trois dimensions, et enfin des animations. Les transitions et les transformations 2D ont commencé à faire leur apparition dans Firefox 4, et David Baron vient d'annoncer l'arrivée des animations dans Firefox 5 ! Elles sont d'ores et déjà disponibles dans Nightly et Aurora. Leur activation dès Firefox 5 ou leur report à Firefox 6 dépendra de leur stabilité, il est donc important de les tester et de rapporter des bugs (avis personnel: lire et comprendre la spec., créer des cas de test et comprendre si les éventuels bugs viennent de l'implémentation ou d'une interprétation divergente de la norme, le tout en quelques semaines, est un pari risqué). Paul Rouget s'est empressé de traduire un fameux exemple d'animation pour fan de Star War. Vous pouvez voir une introduction à la syntaxe des animations et quelques exemples sur MDN, ici et .

Si j'admire la performance, je ne suis pas sûr que cette nouvelle me réjouisse vraiment.

  • sémantiquement, je ne suis pas sûr que les animations soient encore du domaine des styles, que dans le triptyque HTML / JavaScript / CSS, la feuille de style soit le meilleur endroit pour faire cela. J'aurais plutôt vu des extensions du DOM pour animer des éléments en JavaScript;
  • je trouve la syntaxe assez rebutante. Affaire de goût sans doute, mais j'ai l'impression que si, sur des exemples simples, elle est aisée à comprendre, elle va rapidement provoquer des migraines dès lors que l'on voudra sortir un peu des sentiers battus.
  • l'avantage des animations CSS sur leur équivalent en JavaScript est censé être leurs performances, puisqu'elles sont implémentées nativement par le navigateur. Or, toutes les démos que j'ai regardées ce soir mettent ma machine (un vieux truc avec des pilotes de carte graphique libres, donc sans accélération) sur les genoux. Normal pour l'implémentation dans Firefox, toute récente et qui va sans doute être optimisée. Mais Webkit supporte ces animations depuis une petit moment déjà, et pourtant Chromium comme Midori sucent tout mon CPU sur chaque démonstration. J'attends donc qu'on me prouve que CSS aura de meilleures performances que JS;
  • pour l'utilisateur final, cela ne changera pas grand chose: si l'absence du support par les anciens navigateur de certaines propriétés CSS3 comme les bords arrondis ou les ombrages, si cette absence donc ne dégrade pas trop l'expérience utilisateur, il n'en sera pas de même pour les animations. Et je pense que celles-ci, pour des raisons de compatibilité, seront encore longtemps codées en JavaScript (même si les librairies comme jQuery pourront utiliser CSS3 pour implémenter la fonctionnalité);
  • Flashblock est à ce jour un de mes fidèles amis. Parce que les flasheries mettent quasiment systématiquement ma vieille machine à genoux. Je peux heureusement les bloquer pour éviter que mon processeur se fatigue inutilement. Je crains que la mode les prochains mois ne soit de farcir les sites Web d'animations, en CSS ou JS, pour s'amuser avec ces nouveaux jouets (je ne jette la pierre à personne, j'ai moi-même hâte de jouer). Et que cela donne un Web moins utilisable sur des configurations modestes;
  • enfin, bien longtemps avec CSS3, d'autres normes proposaient de faire des animations sur le Web, que ce soir SVG ou SMIL. Elles me semblaient plus adaptées, mais n'ont jusqu'à présent guère été mises à l'honneur. J'espère que les animations CSS ne vont pas renforcer la désaffection pour ces deux formats;

Implémenter ce module était sans doute nécessaire, pour assurer la compatibilité avec Chrome et Safari. Mais Mozilla a déjà fait le choix de ne pas implémenter certaines technologies dont elle ne voyait pas l'utilité (par exemple les polices SVG, qui font que Firefox n'aura jamais 100% au test Acid3). Je ne suis pas sûr que le module Animations soit une bonne idée, et ne pas l'avoir de sitôt dans Firefox ne me dérangeait pas. Il est à présent là, donc je salue évidemment le travail de David et des autres Mozilliens qui ont travaillé dessus, et vais essayer de voir ce qu'on peut en faire.