Open source : définition, étapes, avantages, application à l’IoT

À la base ce terme est utilisé pour décrire les logiciels / programmes informatiques. Est dit Open Source un code qui est accessible à tout public, quelles que soient tes origines, compétences, connaissances. C’est cool, non ? L’expression Open source apparue en 1998 est associée à Christine Peterson, scientifique américaine fondatrice d’une entreprise de nanotechnologie (un peu loin du code quand même).

Publié le

2.1.2023

par

Thilor Sene

Qu’est ce que les logos sur l’image ci-dessous ont en commun ?

Ils sont tous open source ! Vous ne savez pas ce que c’est ? Ça tombe bien, je vais tout vous expliquer ici 🙂

Les présentations d’abord

Mon nom est Mbaye Thilor Sene, Développeur backend et responsable Recherche & Développement IoT chez MerciYanis. C’est un peu dur à lire, je sais.

C'est en 2016, après avoir obtenu mon baccalauréat scientifique, que tout a commencé pour moi. J'ai entamé un BTS en informatique industrielle et réseaux. Entre l'électronique et la programmation, j'ai découvert une nouvelle passion : l'IoT (internet des objets). Toujours dans l'objectif de faire de ma passion mon métier, j'ai poursuivi avec une licence en génie logiciel, puis un Master 1 en science des données qui a clôturé mon parcours au Sénégal. En septembre 2021, je me suis retrouvé sur la côte basque à l'université de Pau et des pays de l'Adour, où j'ai obtenu mon Master 2 en informatique.

En septembre 2021, j'ai rejoint MerciYanis sous la supervision de Jordan Gayraud en tant qu'apprenti. Mon rôle consistait à intégrer des capteurs sur la plateforme MerciYanis, mais pas seulement : j'aidais également Jordan dans la recherche et le test d’objets connectés. Entre les opérations et les développeurs, il était difficile de me placer dans une équipe, ce qui faisait de moi littéralement un "voyageur" ! J’ai bien évolué depuis (comme le montre mon titre de poste 😅).

L’Opensource c’est quoi ?

Définition et origine

À la base ce terme est utilisé pour décrire les logiciels / programmes informatiques. Est dit Open Source un code qui est accessible à tout public, quelles que soient tes origines, compétences, connaissances. C’est cool, non ?

L’expression Open source apparue en 1998 est associée à Christine Peterson, scientifique américaine fondatrice d’une entreprise de nanotechnologie (un peu loin du code quand même). Ce terme vient alors éclairer les utilisateurs et lever les ambiguïtés sur l’expression “free software” (logiciel libre/gratuit). Cela signifie qu’un logiciel peut être Open Source et payant. 🤧

Les dix commandements de l’open source

Cette expression de 1998 est devenue plus que du vocabulaire, autour d’elle se sont développées bon nombre de communautés, dont l’Open Source Initiative crée en 1998 à Palo Alto par Todd Anderson, Chris Peterson, John Hall, Larry Augustin Sam Ockman et Michael Tiemann (et d’autres certainement moins connus).

Le but de cette association est de promouvoir et encadrer l’évolution de ce nouveau mouvement. Tous partisans du “libre”, ils se sont inspirés de ces principes pour établir les “dix commandements” qu’il faut respecter pour être considéré Open Source :

  • La redistribution doit être libre.
  • Le programme doit être distribué avec le code source, sinon il doit y avoir un moyen très médiatisé pour l’obtenir sans frais.
  • La licence doit autoriser les modifications et les œuvres dérivées, et doit leur permettre d’être distribuées sous les mêmes termes que la licence du logiciel original.
  • Pour maintenir l’intégrité du code source de l’auteur, la licence peut exiger que les œuvres dérivées portent un nom ou un numéro de version différent de ceux du logiciel original.
  • La licence ne doit discriminer aucune personne ou groupe de personnes.
  • La licence ne doit pas défendre d’utiliser le programme dans un domaine d’activité spécifique.
  • Les droits attachés au programme doivent s’appliquer à tous ceux à qui il est redistribué, sans obligation pour ces parties d’obtenir une licence supplémentaire.
  • La licence ne doit pas être spécifique à un produit.
  • La licence ne doit pas imposer des restrictions sur d’autres logiciels distribués avec le logiciel sous licence. Par exemple, la licence ne doit pas exiger que tous les autres programmes distribués sur le même support doivent être des logiciels open source.
  • La licence doit être technologiquement neutre.

Après sa création et sa délimitation, les premières licences commencent à voir le jour, toutes  fidèles aux principes de base de l’OSI avec des spécifications qui leurs sont propres.

Les licences servent à définir les méthodes d’utilisation du logiciel et son amélioration par la communauté autour du produit et de la fondation portant la licence.

Un petit tour des plus connues :

  • MIT License©, une licence de logiciel libre qui permet aux utilisateurs de modifier le code originel avec très peu de restrictions.
  • GNU General Public© (GPL) : il s'agit d'une série de licences de logiciels libres qui garantissent aux utilisateurs finaux la possibilité d'exécuter, d'étudier, de partager et de modifier des logiciels.
  • Apache® : la licence Apache 2.0 est une licence de logiciel libre qui permet aux utilisateurs d'utiliser, de modifier et de distribuer le logiciel dans n'importe quel but.
  • BSD : cette licence comporte moins de restrictions pour les développeurs, permettant aux utilisateurs d'utiliser et de modifier le code sans avoir à partager les modifications.

Ces licences sont portées par des organismes majoritairement à but non lucratif, et font tourner la boutique avec des dons de la part d’utilisateurs comme vous et moi ou de grandes entreprises partenaires qui utilisent les solutions sous ces licences. Donc si vous êtes fan d’un outil open source/libre, n’hésitez pas à contribuer à la fondation qui le porte !

Les étapes pour mettre un projet en open source ?

Après avoir développé le code il faudra :

  • Mettre le projet sous une licence
  • Ecrire un README, qui contient toutes les informations sur ce projet en répondant au questions suivantes :

Que fait ce projet ?

Pourquoi ce projet est-il utile ?

Par quoi puis-je commencer ?

Où puis-je obtenir plus d’aide si j’en ai besoin ?

  • Rédiger les directives de contribution définissant comment la collaboration va se dérouler pour l’amélioration du projet
  • Code de conduite qui permet de faciliter un comportement communautaire sain et constructif, ce qui évite les contentieux entre les membres de la communauté et de réduire stress en tant que responsable.

Et bien sûr : lui donner un nom 🙂

Où trouver le code ?

La disponibilité du code est primordiale dans un projet open Source pour faciliter l’accès, le suivi, et la collaboration des outils appelés VCS (Version Controle System), comme Github ou GitLab.

Ces outils sont des plateformes collaboratives sur lesquelles on peut sauvegarder du code, discuter sur les problématiques concernant le projet. Le plus intéressant, c’est le système de “forking” qui consiste à effectuer une duplication du répertoire d’origine sur son espace personnel en tant que collaborateur, et avoir sa propre version du code que l’on peut manipuler à sa guise avant de soumettre les correctifs/améliorations au propriétaire via un “pull request” (on envoie des demandes).

Quels sont les avantages de l’open source ?

On peut se demander quel est l’intérêt d’ouvrir notre code à d’autres.

Le mouvement met en avant la qualité du produit grâce à une méthode de contrôle originale : le “peer-review”. Celui-ci consiste à faire valider son code par ses compagnons de développement (ses pairs) intéressés par le produit et parlant le même langage que le concepteur. Ce sont les meilleurs testeurs, étant des utilisateurs/concepteurs. De ce fait le code est maintenu par la communauté de développeurs pour assurer sa pérennité à moindre coût (voire gratuitement).

💡 Je vous conseille de jeter un œil à l'article d'Alicia Vialle pour comprendre comment se passe la validation d'un code.

1. Coût : l'utilisation de logiciels open source est généralement gratuite, ce qui peut représenter un avantage pour les entreprises et les individus qui cherchent à réduire leurs dépenses informatiques.

2. Flexibilité : les logiciels open source peuvent être modifiés et adaptés à vos besoins spécifiques. Vous pouvez également ajouter des fonctionnalités ou des extensions pour améliorer leur performance.

3. Communauté : les logiciels open source sont généralement développés par une communauté de développeurs et d'utilisateurs, ce qui signifie que vous pouvez bénéficier de l'aide et des conseils de nombreuses personnes expérimentées.

4. Sécurité : les logiciels open source sont souvent soumis à une inspection rigoureuse par la communauté de développeurs et d'utilisateurs, ce qui peut les rendre plus sécurisés que les logiciels propriétaires.

5. Innovation : l'open source permet aux développeurs de travailler ensemble et de partager leurs idées, ce qui peut encourager l'innovation et l'amélioration continue des logiciels.

Open source et IoT ?

L’IoT est un domaine où le logiciel et le matériel se rejoignent, sans oublier la connectivité qui assure la transmission des données. A partir de là on va se laisser emporter sur un terme de la famille open source : l’open Hardware (matériel).

C’est un type de matériel qui est conçu de manière à être modifiable et accessible par tous. Cela signifie que les plans de conception, les schémas électroniques et le code source du matériel sont disponibles pour tous ceux qui souhaitent les utiliser, les modifier ou les distribuer. Rendant publiques de nombreuses conceptions libres de droit et accessibles à tous.

Le développement de l’internet des objets a dès lors connu une accélération exponentielle notamment avec arduino, nodemcu… qui permettent de prototyper très rapidement des objets connectés, facilitant ainsi les POCs (tests de la solution) et réduisant considérablement le “time to market” sur les produits.

Cette association Open Source / Hardware a produit un ensemble de progrès au niveau de l’IoT :

  • Accès à une technologie à coût réduit et de faible consommation pour des capteurs fiables et abordables
  • Une multiplication des protocoles réseau permettant aux capteurs de communiquer entre eux et vers le cloud
  • Des systèmes de gestion de base de données pour le stockage de la donnée et son traitement
  • Des bibliothèques et des frameworks de développement pour faciliter la mise en place de plateforme de suivi des données de capteurs et leur visualisation
  • Des intelligences artificielles (IA) conversationnelles qui ont permis aux terminaux IoT de gérer le traitement du langage naturel, communiquer et agir avec leur environnement à l’aide d’instructions vocales (vous les connaissez déjà : Alexa, Siri, Cortana sans oublier la dernière de la famille : Chat-GPT qui est un peu différente et que je remercie pour le paragraphe généré un peu plus haut 🤖).

L’Open Source chez MerciYanis

Avec un ensemble d’outils mis à disposition par les différentes communautés, chez MerciYanis nous avons pris notre part sur ces bienfaits technologiques :

  • PosgresSQL
  • Django
  • React
  • DBeaver
  • Pandas
  • Docker

Comme souligné au début, l’open est basé sur le partage et l’entraide pour s’assurer de la qualité d’un logiciel. D’ailleurs ce sont des valeurs extrêmement fortes chez MerciYanis :

L’humilité et l’écoute sont deux valeurs essentielles de notre équipe, ainsi que l'exigence.

Pour progresser, nous nous remettons continuellement en question, apprenons de nos erreurs et sommes ouverts d'esprit.”

Un passage issu de notre Manifest - donc vous voyez qu’en plus d’utiliser des outils, nous possédons les valeurs que prône ce mouvement !

La boucle est bouclée 😉

Découvrir nos autres articles

Qu'est-ce que la maintenance curative et à quoi sert-elle ? | MerciYanis
Qu'est-ce que la maintenance curative et à quoi sert-elle ?
23.1.2023

par

Alexia Benhaim

Il existe plusieurs types de maintenance et il est parfois difficile de s'y retrouver ! Ici, on revient sur ce qu'est la maintenance curative, comment elle s'inscrit parmi les autres types de maintenance, à quoi elle sert et pourquoi elle est importante pour les bâtiments et les entreprises à l'intérieur.

Découvrir
Stress au travail : conseils et exercices pour employés & employeurs | MerciYanis
Stress au travail : miser sur le bien-être
16.1.2023

par

Laura Belmonte

Les crises sanitaires et environnementales ces dernières années ont été de forts vecteurs de stress. Les changements apportés aux routines de travail, tels que le télétravail ou le travail hybride ont pu créer de nouvelles sources de stress.

Découvrir
Conseils pour améliorer la maintenance tertiaire : GMAO et IoT | MerciYanis
Installer une solution GMAO pour améliorer sa maintenance
9.1.2023

par

Alexia Benhaim

La maintenance d’un bâtiment est devenu un enjeu pour les entreprises et directions de travail : entretien, confort des occupants, économies d’énergie et financières… On vous parle GMAO et leur évolution vers des logiciels poussés et connectés.

Découvrir