XUL est mort, vive le Web ?
Par Clochix le vendredi 15 juillet 2011, 00:12 - Lézarderies - Lien permanent
GROS LAPSUS au moment de la mise en ligne de ce billet, le titre est
évidemment XUL est mort
et non Mozilla est mort
:S
Ce billet n'est que le reflet de mon état d'esprit actuel, de ce que je ressens à la lecture de différents canaux d'information sur Mozilla, essentiellement les blogs et leurs commentaires, et des discussions entre Mozilliens. C'est un ressenti et une tentative de réfléchir un peu avant de me réfugier dans l'amertume et le trollage.
Le futur est au Web
Je suis depuis longtemps persuadé que l'avenir des applications pour périphériques mobiles passe par le Web plutôt que des développements natifs à chaque plateforme. Mais j'avais jusqu'à présent refusé de pousser la logique jusqu'au bout, de l'appliquer au PC. Je viens d'un temps où le PC était roi et les téléphones des gadgets tout juste capables de faire tourner poussivement Tetris. Mais je dois me rendre à l'évidence: le PC ne sera bientôt plus qu'un périphérique comme un autre, et l'évolution entamée sur les mobiles ne l'épargnera pas. En d'autres termes, sous peu, les applications Web vont prendre le pas sur les applications natives. Pas pour tout bien sûr, il y aura toujours des niches où l'on aura besoin d'applications "lourdes". Mais ces niches vont se réduire. Pour la messagerie déjà, et bon nombre de fonctions de communication, les Webmails et les applications Web ont supplanté les clients lourds. La bureautique suit peu à peu, les jeux aussi, le traitement en ligne de photos, son, vidéos, devient chaque jour plus envisageable. Ce n'est plus qu'une question de mois avant que des applications Web ne puissent répondre à l'essentiel de nos besoins[1].
La conséquence est évidente: les applications clientes lourdes n'ont d'avenir que dans des niches. Mozilla veut rendre Internet meilleur pour l'ensemble des internautes. Maintenir une plateforme de développement pour applications lourdes n'entre pas dans cette mission: donc Mozilla va cesser de défendre et de développer la plateforme XUL.
XUL n'est par mort pour autant. Par bien des aspects, lui et ses technologies sœurs (XBL, XPCom, etc) sont pour l'instant irremplaçables. Mozilla va encore les utiliser pendant quelque temps dans Firefox, même si je pense que leur remplacement par une interface entièrement en HTML n'est qu'une question d'années. Mais l'écosystème qui depuis longtemps s'est développé autour de ces technologies est lui sérieusement menacé.
Chronique d'un abandon annoncé
L'abandon de la plateforme XUL ne devrait être une surprise pour personne. Il est implicite depuis des mois. Mais comme il n'a jamais été officiellement annoncé, je refusais de voir la réalité, j'étais dans le déni. Aujourd'hui, vu la mauvaise tournure que prennent les évènements, je pense qu'il est temps de crever l'abcès, de cesser d'être dans le déni, de regarder la vérité en face.
Car si Mozilla n'a jamais dit ouvertement arrêter de s'occuper de la plateforme, c'est implicite dans l'évolution de sa communication et dans de nombreux documents publiés ces derniers temps.
Le Manifeste
parle d'Internet
(le mot est cité 21 fois, contre une seule fois pour
Web
). La description de la mission de Mozilla, plus
récente je crois, ne parle elle plus que du Web: Mozilla's mission is to
promote openness, innovation and opportunity on the web
. Le reste des
usages d'internet n'est donc plus au cœur des préoccupations de la Fondation.
Il y a quelques années, elle développait un navigateur Web, un logiciel de
messagerie et une plateforme permettant de créer des logiciels pour d'autres
usages du réseau. Aujourd'hui, elle ne semble savoir que faire de Thunderbird,
et la plateforme n'est plus du tout mise en avant.
C'est encore plus clair dans l'un des meilleurs documents que j'ai trouvé
pour éclairer la stratégie actuelle de Mozilla: la feuille de route de Firefox pour
2011[2]. Elle dit explicitement Our mission is to
promote an Open Web Platform which is the most compelling environment for
modern applications.
Dit autrement, le Web est la plateforme d'avenir, la
seule que nous défendons. Dans l'ensemble du document, comportant pourtant
quelques parties techniques, XUL n'est pas cité une seule fois.
Il suffit donc de lire pour réaliser que Mozilla est en train d'abandonner la plateforme. Une plateforme qui pourtant a grandement contribué à son actuel succès.
Séquence nostalgie
Je fais partie des développeurs pour lesquels la plateforme Mozilla avait suscité de l'espoir dès le début des années 2000. Pour qui a touché au développement d'applications "lourdes" et se souvient du bordel que c'était (c'est ?), Mozilla offrait une solution simple, élégante et multi-plateforme. Un socle solide permettant de créer facilement et rapidement des applications, avec un minimum de connaissances techniques (XML, JavaScript, CSS). L'environnement était de plus extensible pour qui en avait besoin via des bibliothèques externes. Mozilla promouvait l'utilisation des technologies, et en a fait une véritable la plateforme: le cœur en a été extrait, devenant un moteur d'exécution à part entière, XulRunner, au dessus duquel s'exécutent les applications de la Fondation, Firefox et Thunderbird.
Entre ses qualités techniques et le soutien implicite de Mozilla via la création de XulRunner, beaucoup ont cru en cette plateforme et l'ont adoptée avec enthousiasme. Le wiki de Mozilla liste une cinquantaine d'applications basées sur XulRunner et plus encore d'autres utilisant certaines des technologies de la plateforme. Parmi les dizaines de milliers d'extensions disponibles pour Firefox, bon nombre sont bien plus que des bookmarklets améliorées (ce que sont les extensions Chrome <troll>ou Jetpack dans Firefox</troll>). Elles n'ont étés rendues possibles que parce qu'elles ont pu accéder au cœur du navigateur, se brancher dans l'interface avec les overlays, la bidouiller en XUL, utiliser des composants binaires externes avec XPCOM. Si Firefox n'avait pas été bâti sur une plateforme, nous n'aurions pas eu autant d'extensions. Et je suis sûr qu'il n'aurait pas eu un tel succès. Les extensions ont été un formidable terrain d'expérimentation pour bidouiller le navigateur et étendre ses capacités dans de nombreuses directions inédites. Les extensions ont permis de réellement personnaliser Firefox. Je n'utilise pas un navigateur nommé Firefox, j'utilise mes propres navigateurs, adaptés à mes besoins, l'un outil pour surfer protégé, un autre pour développer… Par leurs contributions au code, par leurs apports à l'expérience utilisateur des internautes, tous ces développeurs XUL ont grandement contribué aux succès tant de Mozilla que du Web.
Les histoires d'amour finissent mal…
Aujourd'hui, ces développeurs se retrouvent abandonnés et, quelque part
trahis. Lorsqu'on a passé des années à s'investir sur une technologie, son
abandon par son créateur est pour le moins douloureux. Et encore plus
douloureux lorsque la communication autour de cet abandon est mal faite. La
situation actuelle est détestable, faute de position claire sur le sujet se
multiplient les débats avec leurs lots de trolls, de phrases définitives, de
pathos et de drames. Les décisions mal assumées ou mal expliquées, les phrases
maladroites, les trolls stériles peuvent faire énormément de mal. Les
séparations sont rarement des moments joyeux. Celle-ci est en train de virer au
tragique. Les récents débats, certains propos lus, m'ont rappelé la tristement
célèbre « courbe du deuil » et surtout l'utilisation qui en est faite
par les "managers" chargés d'organiser le changement dans de grosses
sociétés[3]. La comparaison est sans doute méchante,
excessive, mais c'est l'image qui m'est venue lorsque j'ai lu certain
responsables de Mozilla entonner un "marche ou crève
". Les développeurs
d'extension devront s'adapter, marcher, migrer vers JetPack, ou crever. Idem
pour ceux développant des applications tierces: passe à js-ctype, recompiler
toutes les 6 semaines, ou crever. Ce sont des propos particulièrement durs,
violents, adressés à des gens qui ont tant contribué au succès de Mozilla et
que l'on abandonne sur le bord du chemin.
Je ne discute pas du fond, car je pense que la décision de ne plus soutenir la plateforme est la bonne pour Mozilla. Le but de la Fondation et de promouvoir l'ouverture et l'innovation sur le Web. Dans le contexte actuel, avec l'arrivée de Chrome qui a fortement relancé la compétition et Microsoft qui semble enfin réellement se réveiller, Mozilla doit se concentrer sur Firefox pour qu'il reste techniquement crédible, donc continue d'attirer un nombre suffisant d'internautes pour pouvoir peser sur les évolutions du Web (on l'a vu par exemple lors des débats sur les codecs pour la balise Video: le refus de Firefox d'implémenter le format H264 n'a de poids que parce qu'il impacte un tiers des internautes). Je comprend et approuve que Mozilla mette l'essentiel de ses forces dans Firefox, je comprend également que cela implique de considérer le navigateur comme une application à part entière, optimisée de base en haut, et non plus comme un client s'exécutant au dessus d'un moteur d'exécution.
Mais je conteste fortement le calendrier, la méthode et l'absence de communication.
Le calendrier, parce que malgré toutes ses évolutions, HTML ne sera pas à mon avis crédible "sur le bureau" avant plusieurs années. Dans l'intervalle, on a encore besoin de XulRunner. Prenons l'exemple du mail. Je suis persuadé que l'avenir est aux Webmail, que les clients lourds sont condamnés (du moins chez les particuliers). Pourtant, il leur reste une fonctionnalité que je ne vois pas les Webmails implémenter à court terme: la sauvegarde locale des mails. L'archivage de ses mails sur son disque pour les sauvegarder sur d'autres supports, etc. Je sais que certains font déjà confiance au Nuage pour cela. Mais beaucoup d'internautes veulent encore avoir des copies locales, et tant que les Webmails ne le permettront pas facilement, nous aurons besoin de Thunderbird, donc de XulRunner.
La méthode parce que je l'ai dit, certains propos sont particulièrement violents et à mon sens inacceptables.
La communication enfin, car comme lors du récent débat sur l'intérêt de Mozilla pour les entreprises, je la trouve mauvaise. Mozilla sait lancer de jolies campagnes de marketing à destination du grand public, mais j'ai l'impression que la Fondation a beaucoup plus de mal à communiquer avec ses fans. L'abandon de XUL est déjà assez douloureux à vivre, ne rendons pas les choses encore plus difficiles en ne disant pas les choses clairement. J'aimerais que, si Mozilla ne soutient plus la plateforme XUL, elle l'annonce officiellement.
Alors Mozilla, s'il te plait, exprime toi, sans langue de bois, sur tes intentions vis à vis de la plateforme.
Yes future ?
Je voudrais finir ce billet sur une note un peu plus optimiste. Si Mozilla arrête de soutenir la plateforme, ça sera un coup rude, mais ne signifiera pas forcément la mort de la technologie. Je pense que quoi qu'il arrive, elle a encore de beaux jours devant elle, tant de par ses qualités propres que par la valeur des développeurs qui l'investissent. L'abandon de la suite Mozilla au profit de Firefox, Thunderbird et Composer a donné naissance au projet SeaMonkey. Qui sait si l'annonce de la fin du soutien de Mozilla à la plateforme XUL ne provoquerait pas un sursaut de la part de l'ensemble des développeurs de l'écosystème pour créer un projet spécifique. Il serait certes autrement ambitieux, car il ne s'agirait plus de bâtir des applications sur un socle maintenu par Mozilla, mais bien de prendre en charge la maintenance d'une version spécifique de ce socle lui-même. Bref, pour le coup, de forker XulRunner. Laisser Mozilla en développer une version optimisée pour Firefox, et probablement à terme réintégrée avec le navigateur, et créer à partir de l'existant une branche spécifique permettant le développement d'applications clientes multi-plateformes lourdes. Beaucoup de gens ont besoin de cette version de la plateforme. Tant les très nombreux projets qui se basent dessus, dont certains développés par des entreprises qui ont quelques moyens, que certains utilisateurs actuels de Firefox et Thunderbird (entreprises, administrations). Ceux qui ne peuvent ni ne veulent suivre le nouveau rythme de sortie de Firefox, mais ont besoin de produits stables sur de longues périodes. J'ai cru entendre qu'au sein même de Mozilla, certains développeurs du cœur ne seraient pas contre donner un coup de main à un tel projet, ne serait-ce que pour rétro-porter les correctifs de sécurité. De nombreuses sociétés commerciales y auraient sans doute un marche. L'écosystème XUL n'est donc pas condamné à court terme, certaines conditions sont réunies qui permettent d'espérer.
Mais encore une fois, pour que cet avenir s'éclaircisse, il faudrait lever les doutes, les incertitudes. Il faudrait que Mozilla s'exprime explicitement sur ses intentions à long terme vis-à-vis de la plateforme. Cela permettrait peut-être à la créature, enfin sûre de ne plus avoir grand-chose à attendre de son créateur, de rebondir. J'espère que cette clarification va venir rapidement, avant que trop de gens n'aient quitté le navire, dégoûtés, avant que la confiance et le respect entre gens unis dans un projet par un même idéal n'aient volés en éclats.
Notes
[1] je passe sous silence l'aspect "moral" de cette évolution, elle n'est pas l'objet de ce billet
[2] c'est d'ailleurs intéressant: en 2008, Mitchell Baker avait lancé une réflexion sur les objectifs de Mozilla d'ici 2010. Je n'ai pas trouvé de document plus récent concernant le projet Mozilla dans son ensemble, juste Firefox. Si vous en connaissez, merci de me les signaler
[3] l'exemple le plus emblématique est France Telecom
Commentaires
Merci pour ce billet. Tes propos, que je n'aurais pas mieux écris, correspondent tout à fait à ce que je pense et ressent. Seule différence : j'ai encore du mal à faire ce "deuil"...
Ce qui est bien avec le libre, c'est qu'on a la possibilité de forker, et de maintenir des technos, même si leur éditeur n'en veut plus.
Bonne chance.
Petite question : qu'est-ce que Mozilla va utiliser pour déveloper Firefox quand il n'y aura plus de support pour XUL (pas avant plusieurs années d'ailleurs)? à priori quelque chose d'aussi complet non? Et qu'est-ce qui empêchera les developpeurs tiers d'utiliser le même système?
@Laurentj : j'ai un peu plus de recul parce que ce deuil j'ai dû le faire depuis quelque temps. Mon principal projet en XUL était une application Web. Elle est morte officiellement avec Firefox 4, lorsque Mozilla a retiré le support natif des applications Web dans le navigateur (dans les faits, elle était morte depuis plus longtemps). Donc ça fait un an que j'ai appris que pour la partie qui m'intéressait, utiliser XUL pour faire des webapps riches, la techno était morte.
@fabrice: je pense que Mozilla va continuer à utiliser XUL encore un petit moment, mais en réintégrant XulRunner et Firefox. Je ne sais pas si c'est ce qui est prévu, c'est l'impression que j'ai. Mais que XulRunner soit réintégré ou non, Mozilla a clairement l'intention de ne plus se préoccuper pour ses évolutions que de Firefox. Donc ce qui empêchera d'autres développeurs de l'utiliser, c'est la nécessité de modifier leur code toutes les 6 semaines pour prendre en compte les évolutions des API du cœur.
XUL va disparaître. Mais surtout parce qu'il devient peu à peu inutile. Aussi longtemps que la triade du Web — HTML, CSS, JS — ne permettait pas de créer de véritables applications, il permettait de combler cette lacune.
Depuis quelques années, ces trois langages ont évolué, dans leur capacité (HTML5, CSS3), dans leur support chez les éditeurs et dans leur performance.
Ils forment une plateforme de développement comparable à celle du XUL.
Google et Apple ne voulaient pas de SDK non-web pour leurs OS mobiles. Microsoft parlent de déprécier .NET en faveur de la plateforme web.
La véritable question n'est pas si XUL est mourant, mais comment migrer: Firefox migre déjà. Une part de plus en plus grande de son interface est réalisée en HTML! Maintenir deux plateforme, web et XUL, en parallèle est un surcoût énorme.
Est-ce que cela va supprimer les extensions? Absolument pas. Seulement au lieu de faire des overlays XUL, il faudra utiliser DOM + HTML. Exactement comme on peut le faire avec Greasemonkey aujourd'hui, mais sur tout le navigateur.
De même que les extensions binaires utilisant XPCOM ne sont plus guère utiles (depuis 2007, même s'il y a sûrement des cas particuliers très spécifiques), XUL ne sera un jour plus utile à Firefox. Quand? Difficile à dire, je dirais vers 2015.
Peut-être qu'alors XUL survivra comme plateforme séparée, c'est possible, mais cela dépendra de la communauté. Si des gens pensent que XULRunner doit survivre c'est déjà maintenant le moment de monter une communauté. Je suis sûr que Mozilla aidera au niveau de l'infrastructure (TenFourFox a par exemple pu ajouter un compilateur JIT pour PPC dans le trunk de Mozilla, alors même que Mozilla ne l'utilisera pas).
Est-ce que Mozilla doit mieux communiquer sur le sujet? J'en suis convaincu et je pense que Mozilla en est conscient. Le nouveau cycle de release met bien en évidence la différence de besoin entre la web (qui veut avancer vite car la plateforme évolue vite) et les utilisateurs de XUL qui ont un besoin de stabilité. Je suis convaincu que la prise de conscience est là. Et j'espère que la communication va bientôt venir, encore cette année.
@teoli (désolé, ton IP est blacklistée par un RBL utilisé par Gandi, d'où le retard de publication)
Sur le fond on est d'accord, XUL va peu à peu disparaître de Firefox. Mais j'ai l'impression que vas un peu vite en besogne. Oui, HTML et CSS évoluent, mais ils sont encore loin d'offrir toutes les fonctionnalités de XUL. Oui, Jetpack est prometteur mais ne permet pas encore tout ce qu'on peut faire avec le mécanisme d'extension en vigueur jusqu'à il y a peu. Quant aux composants binaires, je crois que plus de 10% des extensions en utilisent. Ça fait encore beaucoup pour dire qu'ils ne servent plus à rien.
Bref, si la disparition de XUL de Firefox semble inéluctable, il me semble un peu prématuré de l'enterrer dès aujourd'hui.
Attention! Il y a composant binaire et composant binaire.
L'accès à une bibliothèque système ou à bibliothèque tiers est toujours possible sans avoir à recompiler à chaque fois. Cela se fait avec les js-ctypes.
Ce qui est mort (ou presque), ce sont les extensions entièrement écrites en C/C++ ou Java. Mais tout ce qu'elles faisaient peut être fait avec un stub JS (qui accède au navigateur) et un composant binaire accédé depuis le JS. Cela change l'architecture, n'est pas forcément facile, mais c'est faisable... depuis 2007 (avec des améliorations depuis). Le véritable problème c'est les applis basées sur le XULRunner. Là, il faudrait une LTS, et je vois bien la communauté s'en occuper.
Quant à l'HTML-CSS-JS. Certes c'est moins puissant que le XUL aujourd'hui. Mais cela avance vite, très vite (il suffit de voir les nouveautés soumises au WG CSS par Microsoft ou les HTML5 Forms, encore un peu en retard dans leur implémentation dans Firefox). Et les développeurs d'extensions/d'applications doivent l'utiliser le plus possible, de manière à n'avoir que le moins de choses possibles à adapter dans le futur. C'est ce que fait Firefox pour sa propre interface (de plus en plus de la GUI de Firefox sont en HTML-CSS-JS: addons manager par exemple).
Tant que Firefox a besoin du XUL, il sera maintenu par Mozilla. Dès qu'il n'en aura plus besoin, il ne sera plus maintenu. La communauté pourra reprendre le flambeau (éventuellement déjà maintenant d'ailleurs). Cela fait de nombreuses années que le XUL n'est d'ailleurs plus vraiment développé, mais seulement maintenu.
Certes la période est incertaine: XUL ne semble pas avoir d'avenir à terme (sauf si la communauté le reprend), la triade HTML-JS-CSS n'est pas encore adulte.
Pour que HTML accède au même niveau de développement que le permet XUL, il faudrait que le XBL soit porté et utilisable dans du HTML. Il faudrait donc que le W3C et les éditeurs s'intéressent à XBL2 et pas seulement à HTML5 et au CSS3
Enfin pour les composants binaires, js-ctypes n'a pas encore fait ses preuves en termes de performance et d'utilisation.
We need xulrunnerLTS!
Merci pour cet intéressant billet. Moi aussi je vois mal comment Thunderbird peut se développer quand mozilla est centré uniquement sur le web. Pourtant je pense que nous avons besoin d'outils de messagerie (pas forcément web) pour gérer le courrier électronique, la messagerie instantanée, mais aussi le partage et l'échange de fichiers et documents...
Pouvons nous compter sur Mozilla pour ce genre de choses ou faut-il se tourner ailleurs ?
Je suis sur le cul à la lecture de tous ces messages... en voyant les "spécialistes" FR du XUL si peu optimistes quant à l'avenir de XULRunner.
Je ne suis pas développeur de métier (prof) et XULRunner m'a permis de rapidement pouvoir faire tout ce que je désirais : une application multi-plateforme (et surtout belle graphiquement sur toutes, pas comme GTK+), multi-lingues, multi-thèmes.
Le Javascript est un langage accessible dans lequel on peut évoluer (je travaille de plus en plus proprement avec de l'objet au fil des années) et je viens même de me mettre aux XBL que je trouve absolument géniaux pour réinvestir mon code.
Je peux pratiquement tout faire simplement : Mises à jour automatiques sécurisées, ouverture de zip, de fichiers, enregistrement SQLite, enregistrement XML, impression papier,...
Je me suis un peu penché sur Java ou sur du développement Android, mais à mes yeux, la complexité est toute autre !
Si XULRunner disparait, c'est non seulement la quasi-totalité de mes connaissances en programmation qui disparaissent aussi (10 ans de recherche), mais également pour moi la seule possibilité de développer quelque chose de beau sous Linux, Windows et Mac.
Si quelqu'un connait une alternative pour développer des applications multi-plateformes avec un look'n'feel natif, merci d'avance, je suis preneur !
Car si je comprends bien, il faut que je fasse aussi mon deuil... et que j'arrête de bosser sur cette plateforme ?
@Raph :
Non, aucune obligation de faire son deuil. Qu'une techno cesse d'être maintenue ne signifie pas qu'elle disparaisse pour autant. Si Xul couvre effectivement vos besoins, c'est ce qu'il vous faut.
De plus Xul est sous licence libre. Rien n'empêche une communauté de fans/dev/autre de prendre le relai et continuer à faire 'vivre' Xul, comme déjà dit plus haut.
Vous ne serez pas à la pointe, ou à la mode, mais n'étant pas développeur de profession je doute que ça vous touche particulièrement...