Les applis Web arrivent sur GNU/Linux

Publié le par /

Il était une fois…

Au commencement, le Web était un système de gestion de documents. Il permettait de créer des documents (via un langage simple, HTML), de les publier, les consulter et de créer des liens entre eux (via HTTP). Puis apparut l’interactivité, on ajouta aux navigateurs la faculté d’exécuter des programmes contenus dans des documents Web. Le temps passa et l’on put progressivement utiliser des programmes de plus en plus complexes à l’intérieur des navigateurs. Cette évolution se concrétise depuis quelques années avec HTML5. HTML5 est un ensemble de normes qui permettent au Web d’endosser une nouvelle fonction : c’est désormais à la fois une plate-forme de gestion de documents, et une plate-forme où l’on peut exécuter des applications.

Les applications Web, ou WebApps, ce sont des programmes hébergés sur le Web qui s’exécutent à l’intérieur d’un navigateur. Les Webmails sont probablement l’exemple le plus connu. Avec HTML5, ces applications Web sont désormais capables, dans de nombreux domaines, de faire pratiquement les mêmes choses que des applications « classiques » ou « natives », qui s’exécutent directement sur l’ordinateur. Pratiquement, mais pas encore tout à fait. Quelques limitations demeurent, que les développeurs s’attachent à marches forcées à combler.

Combler la lagune

Une de ces limitations est qu’une WebApp s’exécutant à l’intérieur du navigateur, elle n’a pas accès directement à l’ordinateur. Elle ne peut par exemple pas lire de fichiers sur le disque, accéder à l’appareil photo, etc. Pour combler ces lacunes, HTML5 s’enrichit régulièrement de nouvelles spécifications, des APIs. Mozilla travaille activement à la définition de ces APIs, via son projet WebAPI. Cela consiste à définir la façon dont les applications Web peuvent par exemple utiliser les fonctions de téléphonie, stocker des données sur l’ordinateur, communiquer les unes avec les autres, etc. Bref, faire exactement tout ce que peuvent faire des applications natives. Ces fonctions sont progressivement intégrées aux navigateurs qui les mettent à la disposition des sites et applications Web.

Faire son marché

Autre chantier en cours, permettre aux utilisateurs de facilement découvrir les applications répondant à un de leurs besoins. Les ordiphones ont popularisé un concept connu depuis longtemps des utilisateurs de GNU/Linux, celui de dépôts d’applications ou logithèques. Ce sont des sites Web centralisés où les développeurs déposent leurs applications et qui permettent aux utilisateurs de les installer. Même s’il a entraîné de très discutables dérives, c’est un modèle qui a prouvé sa pertinence. Pour permettre aux utilisateurs de facilement découvrir les applications Web dont ils ont besoin, il faut donc créer des sites centralisés répertoriant les applications et permettant de les installer.

C’est l’objet du projet Marketplace de Mozilla. On peut voir les applications Web comme des sortes d’extension du navigateur. Lorsqu’on cherche une extension, on peut utiliser un moteur de recherche et installer l’extension directement depuis le site de son créateur. On peut aussi aller sur le site dédié de son navigateur (par exemple pour Firefox). L’avantage de cette seconde option est que les extensions sont plus faciles à trouver, catégorisées, évaluées par d’autres utilisateurs et ont généralement été vérifiées pour s’assurer qu’elles ne contenaient pas de saloperies. Le Marketplace de Mozilla est un site Web qui offrira les mêmes fonctionnalités pour les applications Web.

Jouer

Une fois trouvée une WebApp, reste à l’installer sur son ordinateur ou son téléphone, et à l’utiliser. L’utilisateur se moque probablement de connaître les technologies utilisées par l’application, code natif ou HTML. Pour rivaliser avec les applications natives, seule compte l’expérience. Pour convaincre les utilisateurs, les WebApps vont probablement devoir dans un premier temps se rapprocher du fonctionnement bien connu des applications natives. Par exemple pouvoir être installées et utilisées comme n’importe quel programme, en faisant oublier qu’elles s’exécutent en fait à l’intérieur d’un navigateur. C’est un des objets du projet Open Web Apps. Il définit comment transformer une application s’exécutant sur un site Web en application utilisable directement sur l’ordinateur. Il fournit des outils qui permettent d’installer l’application au sein du système d’exploitation et de l’exécuter dans une version spéciale du navigateur, débarrassée des éléments de l’interface spécifique à un navigateur (barre d’URL, marque-pages, etc).

La version spéciale de Firefox pour les applications Web n’était jusqu’à présent disponible que pour MacOS et Windows. Non par désaffection pour l’environnement GNU/Linux, mais parce que du fait de l’hétérogénéité de cette plate-forme, trouver une solution qui fonctionne sur toutes les distributions et tous les environnements de bureau était un peu plus complexe. Heureusement, le retard sur GNU/Linux est en train d’être comblé, grâce au travail de Marco Castelluccio dans le cadre d’un projet Google Summer of Code. Marco tient à jour une page où il décrit ses objectifs et ses progrès. Grâce à son travail, on peut enfin depuis quelques jours installer une WebApp sur notre OS. C’est encore très basique, il reste beaucoup de travail. Mais ce travail est en train de se faire, et « à la Mozilla », c’est à dire de manière ouverte. C’est pourquoi je ne peux que t’inciter, Camarade Libriste, si tu veux avoir une solution qui roxxe sur ta plateforme, à tester sans plus attendre le bouzin — il te faudra pour cela une nightly et créer tes propres applis ou aller en télécharger sur la version de test du Marketplace —, pester contre ce qui ne fonctionne pas, ouvrir des tickets et, pourquoi pas, bidouiller toi-même le code. La feuille de route de Marco est chargée, et vu la diversité de notre plate-forme, si nous voulons avoir la meilleure implémentation dans toutes les configurations, il ne va pas falloir hésiter à mettre la main à la pâte.

Pour réagir, n'hésitez-pas à m'écrire : clochix chez clochix.net ou à soumettre l'url de votre commentaire :
(Je traite les mentions à la main, elles peuvent mettre plusieurs jours avant d'apparaître)

Si vous avez un compte Github, vous pouvez me proposer des corrections en éditant ce billet

Fork me on GitHub