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 😉

Proposez des locaux sains, sûrs, agréables et durables grâce à MerciYanis.

Demander une demoDécouvrir MerciYanis

Découvrir nos autres articles

Repenser l'Hospitality Management : Améliorer l'expérience collaborateur dans l'environnement de travail | MerciYanis
Repenser l'Hospitality Management : Améliorer l'expérience collaborateur dans l'environnement de travail
20.5.2024

par

Alexia Benhaim

Découvrez comment l'hospitality management transforme l'expérience collaborateur en intégrant des services physiques et digitaux. MerciYanis et Witco montrent la voie avec des solutions innovantes adoptées par Simmons & Simmons.

Découvrir
La gestion digitalisée de la propreté : avantages et conformité | MerciYanis
La gestion digitalisée de la propreté : avantages et conformité
13.5.2024

par

Laura Belmonte

En 2023, le secteur de la propreté a subi des inspections rigoureuses de l'inspection du Travail, particulièrement axées sur la conformité des pointages des salariés. Parallèlement, l'Urssaf a signalé des redressements record pour travail dissimulé, touchant notamment la propreté, illustrant l'importance accrue de la conformité dans ce secteur.‍

Découvrir
Comment les jeux vidéo m’aident dans mon quotidien de CEO | MerciYanis
Comment les jeux vidéo m’aident dans mon quotidien de CEO
6.5.2024

par

Guillaume Blanc

Une fois par an, chaque membre de l’équipe prend la plume pour parler d’un sujet qui lui tient à cœur. Aujourd'hui, je vous raconte comment les jeux vidéos m’aident dans mon métier de CEO. Branchez vos manettes, on va le savoir ! 🕹️

Découvrir