Note : Ce contenu faisait auparavant partie du site web ouimaisjellm.ca. Il a été importé ici pour archivage.

Je n’ai pas un parcours d’études en technologie, mais j’en connais une barge sur la conception de systèmes informatiques. Et ce qui m’attriste, c’est tous les freins qui sont mis en place par les Tech Bros™ pour rendre la technologie complexe, dispendieuse et mystérieuse. Ce système de fausse croyance est ensuite repris par les firmes de consultant pour faire croire que ça coute des centaines de millions pour faire une mise à jour d’un système informatique.

Aujourd’hui, je te donne des pistes de réflexion et de conception de systèmes pour éviter ça, à travers l’abondance des logiciels libres !

Parlant d’abondance, il reste moins de deux jours pour profiter du Cabinet des Curiosités et de ses 124 produits. Consulte les produits ici.

🌘 Le symptôme d’un manque d’interopérabilité

Des outils comme Zapier et Make, qui permettent de relier des applications entre elles, sont le symptôme d’un monde dans lequel les applications ne sont pas interopérables par défaut. Ou chaque entreprise entretient son jardin fermé et tire sa source de profit de la captivité et non de l’évolution ou du service.

Zapier connecte plus de 8 000 applications pour automatiser des flux de travail, démontrant paradoxalement à quel point l’écosystème applicatif est fragmenté. Sans ces “ponts”, de nombreuses entreprises seraient incapables de faire communiquer leurs outils essentiels.

🌘 L’interconnexion : fondement de l’informatique

L’interconnexion de composantes pour créer des systèmes complexes est à la base de l’informatique. Mais maintenant, c’est devenu un luxe. Juste à voir le prix des forfaits Zapier ! Sauf si on adopte le logiciel libre et ses standards ouverts qui favorisent naturellement l’interopérabilité.

🌘 La puissance du pipelining et des fichiers

Des logiciels interconnectés, on peut faire ça sur notre ordinateur, au travers de fichiers, tout simplement ! Un logiciel écrit un fichier, et un autre le lit ensuite. On peut aussi le faire en mémoire, avec la composition de logiciels. C’est ce qu’on appelle le pipelining. C’est généralement dans la ligne de commande, avec l’opérateur |.

Exemple pratique : ls -l | grep ".txt" | wc -l - Ce pipeline compte les fichiers texte dans un répertoire en combinant trois commandes spécialisées : ls (liste), grep (filtre) et wc (compte).

🌘 Écosystèmes ouverts : Linux, Homebrew, Nix et Windows

Les distributions Linux, et les plateformes comme Homebrew ou Nix offrent jusqu’à 120 000 logiciels qu’on peut relier entre eux avec ces opérateurs. Il y a un énorme potentiel lorsqu’on prend le temps de les découvrir ! Sur Windows, c’est aussi possible de plus en plus, avec PowerShell ou avec le sous-système Linux.

Avec Nix, vous pouvez déclarer précisément les versions de logiciels et leurs dépendances, garantissant que vos pipelines fonctionnent de manière reproductible sur différentes machines, contrairement aux approches traditionnelles où les conflits de versions sont courants.

🌘 Microservices et Docker : l’interopérabilité à l’échelle

Dans le monde des serveurs, on parle de services, d’architecture en microservices. La plateforme Docker a simplifié la composition de logiciels sur des serveurs, au travers du protocole HTTP. Les sites web et les applications que tu utilises au quotidien sont souvent des interfaces derrière lesquelles se cachent de nombreuses applications, services et bases de données qui sont reliés entre eux par un réseau informatique virtuel.

Exemple d’architecture : Une application e-commerce typique peut être composée de :

Tous communiquent via HTTP et sont conteneurisés avec Docker.

🌘 L’intégration des outils génératifs

Les outils génératifs deviennent aussi vraiment utiles quand on les intègre aux bons endroits dans nos processus. Et nos processus, ils sont beaucoup plus visibles quand on contrôle chaque morceau indépendamment.

C’est ce que permettent les bibliothèques LlamaIndex et LangChain, qui sont des outils pour créer des flux de travail avec l’IA générative. Ces deux plateformes sont ce qui alimente l’interface Flowise, pour les visuels !

🌘 La philosophie Unix : faire une chose et la faire bien

Derrière ça, il y a une philosophie, qui est celle des systèmes Unix, “do one thing and do it well”. La spécialisation, puis la composition des spécialités pour travailler en équipe. C’est une approche fondamentalement différente des gros logiciels qui essaient de tout faire.

Principes clés de la philosophie Unix :

  1. Écrire des programmes qui font une chose et la font bien
  2. Écrire des programmes qui travaillent ensemble
  3. Écrire des programmes qui gèrent les flux de texte
  4. Utiliser des mécanismes standards pour l’interopérabilité

🌘 Contre les bloatwares : la spécialisation

Jusqu’à oublier leur première raison d’être. Le mastodonte Teams de Microsoft, Canva qui se met aux chiffriers, Zoom qui a une suite bureautique, ça crée des logiciels qui perdent leur essence et qui deviennent ce qu’on appelle des bloatwares, des logiciels bourrés.

🌘 Le plaisir de construire brique par brique

L’abondance n’a pas à être livrée toute en même temps, il y a un plaisir à construire brique par brique des systèmes qui font exactement ce dont on a besoin ! Chaque outil excelle dans son domaine et communique naturellement avec les autres via des formats ouverts et des standards.

Bonne construction ! Fais attention de ne pas marcher sur un Lego !

Étiquettes