Bonjour à tous !
Je fais ce post un peu pour râler, aussi parce que j’aimerais qu’une solution soit développée.
Si vous êtes de très bonne humeur, il n’est peut-être pas nécessaire de lire ce post et de peut-être être frustré. Cela dit, j’explique aussi pourquoi les choses sont comme elles sont, tout n’est pas noir.
Internet est nécessaire… là où on n’en a pas besoin
Il y a beaucoup de choses que l’on peut faire avec une connexion directe entre appareils : synchroniser les photos depuis le téléphone vers l’ordinateur pour qu’elles soient éditées, contribuer sur un document à plusieurs appareils sans avoir besoin d’une connexion parfois indisponible ou peu efficace (je pense notamment aux endroits accueillant du public comme une école), jouer à un jeu en réseau, communiquer par messages textuels, faire du partage d’écran, streamer une vidéo entre appareils, commander à distance son ordinateur depuis son téléphone pour, par exemple, les contrôles médias…
Toutes ces choses existent actuellement, mais quasiment toutes nécessitent internet ou un contournement (par exemple, on peut commander son ordinateur depuis son téléphone avec KDE Connect sur un partage de connexion, mais c’est laborieux à mettre en place). Ces fonctionnalités ne nécessitent pas internet, il n’y a pas besoin de communiquer avec des personnes de l’autre côté de la planète ou de faire appel à des fichiers dont on ne dispose pas localement. Internet n’est pas strictement nécessaire dans ces utilisations, et pourtant les technologies auxquelles nous sommes habitués ne fonctionnent pas sans lui.
Faisons un petit exercice de pensée pour comprendre l’absurdité de la chose.
Nous disposons d’un homme préhistorique très intelligent qui a été amené à notre époque. Il comprend tout ce qu’on lui montre, mais n’a pas les préjugés du « c’est comme ça ». Nous lui montrons la merveilleuse technologie dont nous disposons et nous lui expliquons que, pour qu’un changement fait sur un appareil soit reflété sur un autre appareil à deux mètres de lui, il faut se connecter au gigantesque réseau mondial qui connecte des gens du monde entier et utiliser un troisième ordinateur dont le seul but est de faire dialoguer les deux autres entre eux. Et le pire, c’est que les deux appareils concernés sont parfaitement capables de communiquer sans aucun intermédiaire.
Et pourquoi c’est comme ça ?
Très bonne question. Il y a des réponses sympas, et d’autres moins sympas.
Quand Internet a été créé, c’étaient les premières prémices de communications entre appareils. On n’imaginait pas d’autres manières de faire parce qu’il n’y avait rien d’autre. À l’origine, le modèle client-serveur était présent partout, jusque dans un ordinateur : on connectait plusieurs moniteurs et claviers à un seul ordinateur qui faisait tout le boulot. Ce modèle est ancré dans le Web et internet en général : le protocole HTTP est fait pour une communication entre un client et un serveur.
Quand on crée de nouveaux services, il est « facile » d’utiliser ce modèle, car on dispose de beaucoup d’outils déjà faits.
À ce propos, il existe très peu d’outils disponibles actuellement pour une communication directe et décentralisée entre plusieurs appareils via une connexion directe, filaire ou non. Si l’on veut créer une application qui se connecte à d’autres appareils directement, il faut tout créer soi-même : c’est compliqué pour un résultat qui ne semble pas extraordinaire : tout ce qu’on pourrait faire avec un tel modèle, on peut déjà le faire à moindre coût (de développement) avec Internet.
En plus des coûts, il y a une autre raison économique : il existe présentement plusieurs écosystèmes assez cloisonnés. Il y a Windows pour les ordinateurs contrôlé par Microsoft, Android pour les téléphones contrôlé par Google, iOS et dérivés et macOS pour les appareils contrôlés par Apple, et puis les distributions Linux pour les ordinateurs personnels, contrôlés par plein de monde qui n’a pas forcément beaucoup de ressources.
Ces environnements sont contrôlés par des entités très diverses qui partagent peu d’intérêt : Apple n’a pas l’intérêt d’aider sa compétition, de même pour Microsoft et Google. Ces entreprises créent leurs propres écosystèmes et évitent de les partager avec les autres. Google a fait un petit pas avec NearbyShare sur Windows, mais c’était dans leur intérêt car leur compétiteur est assez peu utilisé par le grand public.
Des solutions ?
Pour le moment, non.
Un modèle dans lequel les appareils fonctionnent hors ligne en utilisant de préférence des communications locales comme une communication directe par Wi-Fi demande la création de logiciels et de standards pour la communication logicielle non disponibles pour le moment. La technologie qui permettrait une telle infrastructure, le Wi-Fi direct, n’est pas disponible sur les iPhone.
Cependant, malgré leur support incertain et la difficulté logicielle pour les mettre en place, les technologies au niveau matériel existent : le Bluetooth Low-Energy est largement supporté et est utilisé par les AirTag, AirDrop et NearbyShare pour découvrir les appareils proches. Le Wi-Fi Direct permet une connexion avec une plus grande bande passante entre différents appareils.
Pour réaliser un tel rêve, il faudrait un logiciel qui permette la synchronisation d’informations en pair à pair, idéalement chiffrée de bout en bout pour pouvoir faire des sauvegardes sécurisées et passer par des tiers sans confiance, fiable pour éviter les mauvaises surprises, agnostique concernant le type de connexions, et brancher tout ça avec différents moyens de partager de l’information : via Internet, en pair à pair, en connexion direct via le Wi-Fi ou même par câble.
Tout le reste existe déjà : on a libp2p qui permet de connecter deux appareils dans tous les cas de figure possibles, et Nearby Connections de Google qui a été open sourcé et qui commence à gagner le support d’autres plateformes.
Il nous manque une couche d’abstraction pour tout ce bazar, un modèle pour créer des profils personnels et être le plus transparent et simple possible pour l’utilisateur, la pièce centrale concernant le stockage de données, et on peut tout construire.
Et il faut l’adoption du grand public… Ce qui n’est pas gagné.
TL, DR : on pourrait parfaitement créer un monde dans lequel tu n’as pas besoin d’internet pour que ton téléphone et ton ordinateur communiquent, et il nous manque seulement un morceau (conséquent) de logiciel et beaucoup, beaucoup d’effort pour avoir des applications qui supportent ce modèle.
Corrigé avec LanguageTool, c’est une dinguerie ce truc