Pourquoi les applications Flatpak, c’est l’avenir
Régulièrement, j’entends des utilisateurs se plaindre de ce format de paquet, qui occuperait un peu plus d’espace disque ou qui aurait encore quelques bugs de jeunesse, comme le thème de l’application qui pourrait différer de celui de l’utilisateur ou, plus ennuyeux, l’impossibilité de pouvoir jouir de certaines fonctionnalités, qui seraient pourtant disponibles dans la version standard, non exécutée dans un « bac à sable ».
Mais il faut voir sur le long terme. La version 1.0 est enfin sortie au mois d’août 2018, après plusieurs années de développement, ce qui permet de franchir un premier cap. Maintenant, il faut savoir que si elles n’ont pas été directement pensées pour ce mode de fonctionnement, certaines applications ont besoin d’être adaptées pour pouvoir fonctionner parfaitement. Mais ce n’est qu’une question de temps et ça ne doit pas éclipser pour autant les nombreux avantages déjà permis.
Tout d’abord, nous pouvons citer la sécurité. Les applications Flatpak sont exécutées dans un environnement « bac à sable » (sandbox) sûr, isolé du reste du système. Mieux encore, comme pour les applications mobiles, les développeurs doivent déclarer dans un manifeste de quelles autorisations ils souhaitent pouvoir bénéficier : accès au dossier personnel de l’utilisateur, à certains périphériques (webcam, micro…), à la géolocalisation… Droits que l’utilisateur est libre d’accorder ou révoquer à tout moment. Alors oui, pour un logiciel libre dans lequel l’utilisateur a toute confiance, ça n’a pas forcément grand intérêt, mais dans le cas de logiciels propriétaires, véritables boîtes noires dont on ne sait rien, ça peut tout de suite être plus intéressant.
Autre avantage important, la possibilité offerte aux développeurs de pouvoir atteindre directement l’ensemble de leurs utilisateurs sans attendre le bon vouloir des différentes distributions. Une nouvelle version vient de sortir, un Flatpak est proposé et tout le monde peut en bénéficier, sans avoir à se soucier du système de paquet utilisé par la distribution (DEB, RPM…) ou de la compatibilité des bibliothèques.
Non seulement les développeurs pourront proposer un paquet universel dès la publication de leur application, mais ce dernier pourra représenter la version idéale telle qu’ils l’ont souhaité.
Parce qu’il faut savoir que les paquets des différentes distributions sont souvent bien loin de correspondre à cet idéal. Par exemple, pour des raisons philosophiques ou juridiques, les distributions peuvent très bien désactiver certaines fonctionnalités au moment de la compilation. Des distributions comme Debian ou Fedora, qui font très attention aux quatre libertés du logiciel libre ainsi qu’aux brevets logiciels, préfèrent ainsi se passer de certaines fonctionnalités (par exemple, un algorithme qui serait protégé par un ou plusieurs brevets), plutôt que de se priver de l’application dans son ensemble. Sans parler des nombreux patchs que les distributions peuvent appliquer, dans le but de modifier volontairement le comportement de l’application. Que ces changements soient ou non positifs, l’utilisateur peut très bien préférer la vision des développeurs officiels.
Puis comme les paquets sont identiques pour tous et que les applications sont exécutées dans le même environnement, là encore identique, si l’application fonctionne bien chez le développeur, elle fonctionnera tout aussi bien chez les utilisateurs. Et si l’utilisateur rencontre un bug, ce dernier devrait être plus facilement reproductible par le développeur. Il sera donc bien plus simple d’offrir des garanties et de corriger certains problèmes.
C’est également un gain de temps pour les développeurs, qui n’auront plus à se soucier que d’un unique Flatpak, plutôt que de créer de nombreux paquets pour différentes distributions (quand ils ne se contentent pas, bien souvent, de ne viser qu’une ou deux distributions majeures, laissant les autres sur le carreau).
Alors bien sûr, on se dit que les différentes distributions ont leurs propres contributeurs pour empaqueter toutes ces applications (petite parenthèse pour rappeler que les distributions ne se préoccupent, en général, que de logiciel libre, et que l’éditeur d’une application propriétaire ne bénéficiera pas de toute cette main d’œuvre). Mais quand on y pense, que de temps humain gaspillé à recréer tous ces paquets, chacun dans leur coin, pour les mêmes applications… Sans parler des plus petites distributions, qui n’ont pas forcément les moyens humains de gérer tout ça. Ne serait-il pas plus intéressant de pouvoir créer un paquet universel une fois pour toute, et de pouvoir ensuite se concentrer sur des tâches plus gratifiantes ou plus utiles ?
Autre avantage auquel on ne pense pas forcément, la possibilité d’installer sans risque plusieurs versions en parallèle. Que ce soit une version stable et une version de développement à des fins de test, ou une ancienne version stable qui pourrait proposer des fonctionnalités dont on a besoin mais qui auraient malheureusement été supprimées des versions plus récentes (l’évolution des logiciels que l’on utilise ne nous convient pas toujours).
La compatibilité dans le temps devrait également être renforcée. Aujourd’hui, de souhaiter utiliser de vieilles applications abandonnées par leurs développeurs (et donc non adaptées à des systèmes modernes) peut rapidement devenir compliqué, pour ne pas dire impossible pour la plupart des gens, puisque toutes les distributions n’acceptent pas forcément le risque et la charge de travail supplémentaire que représentent de vieilles applications abandonnées ou des bibliothèques obsolètes. Et si ce n’est pas géré par la distribution ou la communauté, ça implique bien souvent de devoir mettre les mains dans le cambouis et de compiler soi-même. Tandis qu’avec un Flatpak et son runtime d’époque associé (qui contient les différentes bibliothèques nécessaires à son bon fonctionnement), la distribution n’a plus besoin de s’en préoccuper.
Donc même si ça ne vous intéresse pas et que vous ne prévoyez pas de changer vos habitudes, on ne peut honnêtement pas dire que cette technologie n’a aucun intérêt (ne serait-ce que pour tout le temps que ça fait gagner aux développeurs de logiciels libres, qui travaillent bien souvent bénévolement). Tout comme il faut arrêter de penser que les distributions de type rolling release telles que Arch Linux ou Manjaro soient le Saint Graal. La première exclut tous les néophytes et la seconde, qui désactive (à raison) le dépôt communautaire AUR par défaut, n’offre donc pas forcément le même catalogue applicatif ou les mêmes versions. Et bien évidemment, en dehors de leur capacité à proposer des versions plutôt à jour, ces distributions ne règlent aucun des différents problèmes soulevés (sécurité, reproductibilité, compatibilité, gain de temps…).
Il est donc préférable de se mettre un instant à la place de l’utilisateur néophyte qui peut enfin bénéficier, à tout instant et de façon sécurisée, des dernières versions de ses applications préférées sans avoir à se soucier de toutes les questions techniques sous-jacentes, qui ne l’intéressent pas et ne l’intéresseront jamais : le choix de la distribution et du format de paquet qui en découlera, les éventuels dépôts tiers à activer (parfois gérés de façon plutôt hasardeuse, pour ne pas dire risquée), les dépendances nécessaires, l’installation d’éventuels outils de développement pour compiler soi-même et bien faire attention à chaque installation ou mise à jour à ne surtout rien casser…
La question est donc de savoir si l’on souhaite ou non démocratiser l’utilisation de GNU/Linux auprès du grand public. Et si c’est le cas, Flatpak pourrait grandement nous y aider.