Recette du Logiciel Libre
Un logiciel n’est mystérieux que si vous n’avez pas accès au code qui le constitue, sa recette.
La comparaison avec la recette de cuisine nous éclaire un peu plus sur les logiciels et le Logiciel libre en particulier.
Faire des logiciels : code-source, compilation et code binaire
Pour faire un logiciel, il faut d’abord écrire du code : c’est comme une recette de cuisine. C’est le code-source, qui est écrit dans un langage compréhensible par les êtres humains, même si c’est assez loin du langage courant et qu’il y a différents langages de programmation.
Quand le programmeur a fini de fignoler son code, il lui reste à compiler le code, c’est-à-dire à le transformer en une suite d’instructions compréhensibles pour une machine informatique.
Plus aucun être humain ne peut lire ce code-là qui est fait de 0 et de 1. Mais c’est ce code binaire ou «code machine» qui permet de lancer et d’utiliser un programme : autrement dit, d’exécuter le programme. On ne peut pas faire fonctionner un programme avec juste le code-source : il faut toujours le compiler. La compilation est plus simple que d’écrire le code car c’est la machine qui fait le travail
- Le code rédigé par un programmeur est le code-source. Il est lisible et modifiable par les êtres humains ;
- Le code lisible par la machine, c’est le code binaire : il est illisible par les êtres humains. Ils ne peuvent pas non plus le modifier.
Donc, le code-source, c’est la recette de cuisine et le code binaire, c’est le plat préparé avec différents ingrédients qui ont subi une transformation (ils ont été au moins mélangés et souvent cuits, et on ajoute parfois des décorations comme sur les gâteaux). Le plat ainsi préparé est prêt à être mangé («exécuté»).
- Un logiciel privateur vous prive de tout accès à son code source car seul le code binaire vous est livré : le code binaire permet seulement d’exécuter le programme. Vous ne pouvez ni regarder ce qu’il contient ou comment il est fait, ni le modifier ;
- Un logiciel libre nous donne accès à son code source et nous donne la liberté de le copier, de le modifier. Et nous pouvons bien sûr vérifier le contenu du logiciel.
Ainsi, dans une conférence de 2003 en anglais, Richard Stallman explique le logiciel libre sous cette forme imagée :
Quand nous préparons un plat, nous utilisons souvent une recette de cuisine. C’est peut-être des amis qui nous l’ont donnée ou nous l’avons lu dans un livre ou nous la tenons d’une grand-mère.
Si nous faisons un bon plat pour un repas avec des amis, ceux-ci diront peut-être que c’est délicieux et «Est-ce que tu peux nous donner la recette ?». Nous pouvons alors copier la recette pour nos amis.
Essayez d’imaginer la recette exacte d’un plat indien sophistiqué, rien qu’en goûtant et en examinant le plat. C’est très difficile. Mais à partir de la recette détaillée, vous arriverez sans doute à faire un plat réussi.
Les avantages de la recette
Disposer de la recette de cuisine nous permet plusieurs choses :
- vérifier que tous les ingrédients nous conviennent (certains d’entre nous ne doivent pas manger de beurre, de sucre ou de sel, par exemple) ;
- modifier la recette en fonction de nos goûts, de nos régimes, d’interdits religieux, ou des ingrédients disponibles dans notre cuisine ;
- partager la recette originale ou modifiée avec nos amis, nos voisins, notre famille et avec qui nous voulons ;
- donner la liberté à notre entourage d’adapter cette recette originale ou modifiée et de la partager avec qui que ce soit.
Ainsi, la recette peut être améliorée et partagée dans différentes versions, ce qui est une bonne chose pour tout le monde.
Pour nous tous, il va de soi qu’une recette de cuisine peut être partagée et modifiée. Cela ne va pas de soi dans l’informatique. C’est le mouvement du Logiciel Libre qui nous a donné cette liberté.