Je veux juste des adaptateurs

Publié le et mis à jour le par /

English version

Animal Lecteur, je dois te le confesser, je ne me réveille pas tous les matins en me disant « Aujourd’hui, je vais créer une application qui tournera surlnptgdlpobomlnàmoh » (La Nouvelle Plateforme Trop Géniale Dont Les Petits Oiseaux Bleus Ont Murmuré Le Nom À Mon Oreille Hier). Non. Par contre j’ai souvent envie de coder une application Web, et de l’adapter pour qu’elle puisse fonctionner sur diverses plateformes.

Or, la plupart des tutoriels de présentation technique des plateformes expliquent comment écrire de zéro une application, qui utilise l’arborescence recommandée, les styles spécifiques à la plateforme, etc. Mais rien sur comment adapter une application existante. Alors que ça serait probablement tout aussi utile. Un des principaux soucis des jeunes plateformes est de proposer des applications. Personne n’utilisera FirefoxOS s’il n’y existe pas de clients pour les principaux réseaux sociaux, les derniers jeux à la con et quelques outils dits de productivité. Il faut donc consacrer beaucoup d’énergie pour convaincre des développeurs de créer ces applications pour Firefox OS. Mais il serait surement plus efficace de fournir des outils pour adapter le plus simplement possible des applications Web existantes afin qu’elles puissent tirer le meilleur parti de la plateforme.

Je rêve d’une bibliothèque de haut niveau qui me permettrait de brancher en quelques lignes sur n’importe quelle application existante quelques fonctionnalités basiques, dans la syntaxe spécifique à cette plate-forme. Par exemple (liste commune pour des applications client et serveur, tous les items ne sont pas forcément pertinents) :

  • identifier des utilisateurs ;
  • stocker des données localement ;
  • synchroniser des données entre plusieurs instances
  • envoyer des messages électroniques (mail) ;
  • partager un contenu sur des réseaux sociaux ;
  • déclencher périodiquement un traitement (cron) ;
  • déclencher un traitement via l’appel d’une URL (webhooks) ;
  • faire des requêtes inter-domaines pour dialoguer avec des APIs tierces ;
  • pousser des informations depuis un serveur vers un client ;
  • gérer la localisation ;
  • etc.

Le Web est la plateforme. Les environnements d’exécution n’offrent essentiellement que des attelles pour corriger ponctuellement ses manques, le temps que les agents clients et serveurs intègrent nativement les fonctionnalités manquantes.

Si vous développez une nouvel environnement d’exécution pour le Web, ne me demandez pas de développer pour votre outil. Au contraire, offrez moi des outils, des bibliothèques, pour enrichir mon produit lorsqu’il s’exécute sur votre plate-forme. Vos utilisateurs, ce sont les développeurs. Mettez votre outil à leur service plutôt que de leur demander de se mettre à votre service. En mon nom, merci, bisoux ♥.

Ajout du 03 juillet : on me demande si des outils comme PhoneGap / Cordova ne correspondent pas à ce que je veux. Oui. Et non. Ces outils imposent eux aussi leurs propres conventions, sont une sur-couche à HTML5. Je ne veux pas qu’on m’impose un outil, une façon de travailler, je voudrais que chaque plateforme fournisse ce type d’outils de haut niveau. Que je puisse choisir mes outils, et que pour s’adapter à un environnement ou un autre, mon code n’ait qu’à appeler une bibliothèque d’interface. Il y a quelques semaines, un évangéliste me demandait de quels outils j’aurais besoin en priorité pour développer une application pour sa plateforme. Je lui ai répondu que je ne voulais pas développer une nouvelle application, j’ai déjà passé beaucoup de temps sur Àlir, et je voudrais juste avoir à y ajouter quelques lignes de code pour que l’appli puisse aussi tourner dans ce nouvel environnement d’exécution, comme j’ajouterais quelques ligne pour prendre en charge un nouveau périphérique d’entrée. Donc ne me demandez pas de ré-écrire mes applications, expliquez-moi comment les faire tourner avec votre produit.

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