Mise à jour des fiches sur les technologies riches
Evidemment maintenant je pense qu'il faudrait en rajouter quelques unes... (WPF/e, Slingshot, Eclipse RCP, etc.) A méditer tout de même sur le caractère riche de certaines technologies.
Mozilla est un acteur important des technologies riches, notamment grâce à sa technologie XUL et tout ce que l'on peut trouver autour. Pour vous en parler, Laurent a bien voulu répondre à quelques unes de mes questions et je l'en remercie.
XUL n'est pas la technologie riche la plus connue en France (moi-même j'avoue ne l'avoir jamais utilisé). Pourrais-tu nous présenter XUL de manière assez succincte ?
Concrètement, XUL est un langage en XML, qui permet de décrire une interface utilisateur. On a ainsi des balises pour afficher des boutons, des arbres, des menus déroulants, des onglets etc. Il est utilisé depuis des années dans les navigateurs de Netscape et de Mozilla (officiellement depuis Netscape 6), pour réaliser l'interface de ces logiciels. C'est donc un langage mature et relativement complet, dont s'est grandement inspiré Macromedia (racheté par Adobe depuis) lorsqu'ils ont crée Flex ;-)
Cependant, XUL n'est pas tout seul dans le framework Mozilla, et ce qui fait la richesse de XUL, ce sont les autres technologies que l'on peut utiliser conjointement :
Ce qui fait que souvent, par abus de langage, on appelle XUL l'ensemble de ces technologies. Notons que, hormis XUL en lui même, la plupart des technologies dans Mozilla sont des standards et que Mozilla est un logiciel libre. Ce qui est un vrai plus pour le développeur au niveau de la capitalisation des compétences et au niveau de la pérennité de la plateforme.
Parlons d'un point de vue plus technologique maintenant. Concrètement, que peut-on faire avec XUL ?
Tout ? :-) Ça va de l'application de gestion de stock, de contenu, au lecteur multimédia sophistiqué, en passant par des outils de messageries instantanées, de VOIP, des éditeurs en tout genre etc. Les témoignages d'entreprises que l'on trouve sur http://xulfr.org/entreprises/ le prouvent.
L'api de Gecko est très riche et embarque des fonctionnalités modernes, en particulier tout ce qui est lié au web, Firefox oblige. Ainsi, aucun souci de faire un client riche, interrogeant des serveurs par le biais de services web (soap, xmlrpc, ajax, rest...). Mais il y a d'autres types d'API bien sûr, comme DOM/XML, protocoles mail, édition wysiwyg et j'en passe. Firefox 2/XulRunner 1.8.1 embarque même le moteur de base de donnée Sqlite ! Bien entendu, le framework prend en charge certains concepts comme l'accessibilité, la localisation, la mise à jour, la sécurité, la correction orthographique etc. Et il est disponible sur bon nombre de système d'exploitation.
L'avantage de la plateforme Mozilla, c'est son extraordinaire extensibilité, que ce soit au niveau des interfaces utilisateurs (grâce aux overlays XUL et au système d'extension), qu'au niveau des composants métiers en XPCOM (intégration de bibliothèques tierces aisées, pour peu que l'on connaisse C++ ou python), et même au niveau de la prise en charge de nouveau format de fichier (vidéo, son, pdf etc.) grâce aux système de plugins que l'on connait bien au travers de la balise <object>. Ainsi le multimédia dans une application XUL n'est pas un problème. Il y a d'ailleurs sur xulfr un petit tutoriel qui montre comment développer un media player en quelques lignes de code.
Bref, aucune limite théorique. Les nombreux projets qui reposent sur Mozilla en témoignent (Joost, Etna, codeEditor...).
Notons que l'on peut aussi utiliser XUL dans des applications web, sans rien installer sur le poste utilisateur. On a moins de possibilité que pour les applications "locales" pour des raisons de sécurité (on ne peut pas accéder aux fichiers locaux par exemple), mais XUL apporte déjà de gros avantages par rapport au HTML que l'on utilise dans les applications web classique ou ajax : moins de javascript à écrire, code plus léger, plus rapide à écrire etc. Et bien sûr, on peut continuer à faire de l'Ajax avec du XUL (utilisation de json, xmlhttprequest etc.). Xul offre même un système de template, basé sur des sources de données en RDF.
De la même façon, qu'est-ce qu'il lui manque ?
Pour XUL en lui même, il lui manque quelques widgets de base, comme des spinbuttons, un calendrier etc. Il manque aussi un meilleur support de SVG et de CSS. Mais la version 1.9 de Gecko (qui sera le moteur de Firefox 3) va combler une grande partie de ces manques, et on peut même déjà tester toutes ces évolutions dans MineField 3.0a3 (le futur Firefox 3) ou XulRunner 1.9a3.
Par le passé, ce qui manquait, c'était la documentation pour les développeurs, mais depuis 1 an ou 2, ce n'est plus le cas grâce aux efforts que l'on a fait à xulfr.org en traduisant des tutoriels, en écrivant des articles dans le wiki. Il y a aussi le site developer.mozilla.org qui progresse très vite et qui contient maintenant énormément d'informations (et une équipe du tonnerre pour traduire les articles anglais !). Même si ce n'est pas complet à 100%, on ne peut toutefois plus trop se plaindre de ce coté là. D'autant qu'avec le forum de xulfr ou le canal irc, on arrive à trouver les réponses manquantes à ses questions :-)
Aujourd'hui ce qui manque vraiment aux développeurs, c'est un environnement de développement complet. Il y a toutefois des efforts fait en ce sens par la communauté. On a par exemple XulBooster, un plugin pour Eclipse très prometteur, qui peut être utilisé dés maintenant pour le développement d'extensions.
Il y a aussi des efforts de fait pour simplifier certaines API rébarbatives de Mozilla. C'est l'objectif du projet FUEL, qui facilitera grandement le développement d'extension dans Firefox 3, et on l'espère aussi d'applications basées sur XulRunner si c'est aussi intégré dans XulRunner.
Joost, Songbird : on voit déjà que XUL a gagné la confiance des connaisseurs et que le résultat est très bon (j'avoue être un grand amateur de Songbird :D). Aurais-tu d'autres applications XUL à nous présenter ?
Et il y en a plein d'autres. Il y a aussi de plus en plus d'entreprises qui développent leurs applications internes en XUL, sur Firefox ou XulRunner. Je pense notamment à Renault F1, LeMonde.fr, Sixt...
En ce moment, l'actualité concerne Apollo. WPF risque aussi de faire de bruit. Tu as déjà donné ton point de vue sur ton blog où tu es plutôt direct. Pourrais-tu détailler ton avis ?
Je vais d'abord rappeler le contexte, pour que les lecteurs comprennent bien :-)
Toutes les technologies de Mozilla, y compris le XUL donc, sont utilisées intensivement dans Firefox. Jusqu'à il y a quelques années, si on voulait utiliser XUL pour réaliser ses propres applications, il fallait soit faire une extension à la suite Mozilla ou Firefox, soit modifier et recompiler les sources de Firefox sans son interface, ce qui était franchement fastidieux.
Mozilla a eu l'idée il y a 3-4 ans, de séparer le moteur de Firefox, Gecko, incluant toutes les technos de l'interface de Firefox. Ainsi, on pourrait réutiliser facilement Gecko pour exécuter des applications faites en XUL, sans avoir une dépendance à Firefox. XulRunner était né. Il suffit d'indiquer à XulRunner un paquet .app ou un répertoire, contenant les fichiers d'une application XUL, pour que celle-ci s'exécute. Un Apollo-like bien avant l'heure donc.
XulRunner a évolué. La dernière version officielle est 1.8.0.4 (l'équivalent de Firefox 1.5). Il est même maintenant largement utilisé dans bon nombre d'applications (dont parmi les plus célèbres dernièrement, Joost, Songbird, Wengo...).
XulRunner a cependant un aspect "inachevé" : il manque quelques trucs pour attirer plus de développeurs. Et malheureusement, la fondation Mozilla en a ralenti son développement, concentrant ses efforts sur Firefox 3. La raison principale étant que pour Mozilla, Firefox est une priorité, qui fait parti de ses objectifs, alors que XulRunner non. Pour Mozilla, c'est Firefox la plateforme, une plateforme de développement web par excellence.
Sachant ceci, la déferlante Apollo m'a quelque peu agacé. D'un coté on a XulRunner, un produit utilisable, avec un potentiel énorme, qui existe depuis longtemps, contenant des technologies dont XUL, existantes depuis encore plus longtemps. Et de l'autre, on a Apollo et WPF, (dont le premier reprenant tous les principes de XulRunner), débarquant à la faveur d'un raz de marée marketing de la part d’Adobe et Microsoft.
D'où le coup de gueule dans le billet auquel tu fais référence, témoignant d'une certain frustration alors que moi même j'essaie de promouvoir XUL depuis 3 ans :-)
Mais il faut voir ce coup de gueule pour ce qu'il est : un simple coup de gueule. Mon engagement envers les technologies Mozilla est toujours le même. Et surtout, il ne faut pas y voir comme une mort annoncée de XUL/XulRunner, ou je ne sais quoi d'autre de dramatique.
Puisque Mozilla se préoccupe plus de Firefox 3 que de XULRunner, cela ne risque t'il pas d'être dommageable pour les personnes désirant réaliser des applications XUL ?
Je dirais que non. De toute façon, depuis toujours, Firefox a été la priorité chez Mozilla. Mozilla n'a mis qu'un développeur sur XulRunner, et encore, pas à temps plein. Cela n'a pas empêché à XulRunner d'être devenu ce qu'il est, un bon produit, une bonne base pour le développement, même si il a quelques défauts (qui ne sont pas forcément ceux de XUL), et d'être utilisé pour des gros projets, comme ceux que j'ai cité précédemment.
Et puis, puisque XulRunner repose sur Gecko, Xulrunner continue donc d'évoluer "passivement" au rythme des évolutions du moteur Gecko. J'en veux pour preuve que, même si ce n'est pas annoncé officiellement, il y a un XulRunner 1.8.1 (équivalent au moteur de Firefox 2) et un XulRunner 1.9a3 (équivalent du futur moteur de Firefox3), disponible en téléchargement sur le ftp de Mozilla. Donc ces versions contiennent les toutes dernières avancées à tous les niveaux, notamment XUL, SVG, CSS (test acid2 !)...
De plus, XulRunner n'est pas XUL, et XUL n'est pas XulRunner ! Il ne faut absolument pas confondre les deux comme j'ai pu voir sur certains sites ! XUL est un langage, XulRunner est un lanceur d'application XUL, incluant Gecko. XUL et toutes les technologies Mozilla vont continuer d'évoluer, puisqu'elles sont toutes utilisées dans le projet phare (et hautement prioritaire) de Mozilla : Firefox.
Au pire, si XulRunner n'est pas totalement satisfaisant par rapport aux besoins d'un projet, les développeurs peuvent se rabattre sur Firefox, en réalisant leurs applications sous forme d'extensions. Ils profitent de toutes les technologies de Firefox, donc de XUL, SVG etc. C'est ce qu'a fait par exemple Allpeers, avec leur produit de partage de fichiers "personnel".
Quel futur vois-tu pour XUL à moyen terme ?
Firefox a 20% de part de marché. Cela ne va pas diminuer à mon avis (Firefox 3 promet !). Ce qui veut dire qu'il y a 20% des utilisateurs qui ont une plateforme XUL installée sur leur poste, donc autant de runtimes XUL qui peuvent lancer des applications XUL (sous forme d'extensions).
L'un des objectifs de Mozilla, c'est aussi de se reposer un maximum sur les standards. C'est déjà le cas en prenant en charge CSS, SVG, RDF, DOM, XML etc. On a aussi par exemple la version 2 de leur langage XBL, qui est sur le point de devenir un standard au W3C. Les spécifications sont maintenant terminées et acceptées. Il ne manque plus que deux implémentations soient réalisées (dont une a débuté chez Mozilla), pour que le processus de normalisation se termine. Il y a aussi un groupe de travail au W3C qui réfléchi à un langage de type XUL. Est-ce qu'ils reprendront le XUL de Mozilla comme ils l'ont fait pour XBL ? On ne sait pas encore. Mais si ce sera le cas, alors cela permettra de rassurer les derniers septiques :-)
De plus Mozilla continue d'innover, en faisant progresser le langage Javascript vers une version 2 (qui est lui aussi en cours de normalisation à l'ECMA, en collaboration avec Adobe et Opera je crois). Mozilla continue d'apporter des améliorations pour les applications web, comme la possibilité d'exécuter des applications Ajax même lorsque l'on est déconnecté, la prise en charge des microformats etc.. Il y a aussi des améliorations au niveau de CSS, notamment de CSS3 (des propriétés CSS que l'on utilise pour le XUL sont en faites des choses qui feront partie de CSS3).
Toutes ces améliorations sont profitables à ceux qui veulent réaliser des applications en XUL, qu'elles soient distantes (web) ou desktop (extensions ou applications xulrunner).
Si on parle de l'avenir de XulRunner : il est moins certain, mais il serait franchement hasardeux de lui prédire avec certitude un avenir sombre, même si Mozilla n'en fait pas un produit officiel. N'oublions pas que c'est un logiciel libre, reposant sur des technologies libres et ouvertes ! Il y a fort à parier que la communauté des développeurs XUL va prendre en charge la suite du développement de ce fantastique produit, surtout quand on voit ce qu'en font les équipes de Joost, Songbird etc. En tout cas, à l'association Xulfr, on ne compte pas en rester là. Stay tuned ;-)
Merci beaucoup pour tes réponses Laurent. On le voit bien, XUL a d'énormes capacités : une technologie éprouvée, des applications "pilotes" réussies, un environnement open source favorable, etc. Mozilla met l'accent sur Firefox 3 et cela leur réussit bien : la seule chose que je souhaite maintenant c'est que XUL arrive à faire encore plus parler de lui et devienne LA solution open source de développement d'interface bureau. A très bientôt j'espère !
Joyent a présenté presque en même temps que la sortie d’Apollo son framework pour déployer des applications rails sur votre bureau : Slingshot. Passé un peu sous silence, Slingshot mérite tout de même que l’on s’y attarde un minimum.
Au niveau des fonctionnalités, Slingshot propose :
De plus, Slingshot est gratuit... si vous hébergez votre application chez Joyent (appelé Accelerator). Il n’y a pas de prix fixé pour une utilisation extérieure.
Joyent propose un produit très professionnel, avec quelques fonctionnalités mais qui seront à mon avis bien exploitées par certaines applications. Par exemple, Joyent propose déjà une suite appelée Connector servant de suite collaborative, d’outils de back-ups et d’hébergement pour les petites structures. L’utilité de pouvoir porter l’application sur le bureau serait un avantage certain vis-à-vis des entreprises.
Je suis séduit par la clarté du message qui est passé : Joyent fait bien les choses, et leur site est classe (ça me fait penser à Squarespace). Néanmoins je trouve Slingshot tout de même limité. Dommage surtout que son utilisation ne soit pas gratuite si l’hébergement se fait « à l’extérieur ». Je souhaite tout de même que cette technologie rencontre un succès qui permettra aux développeurs Rails de faire leurs propres applications de bureau.
Quelques liens :

< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 >